Support safe Markdown in task descriptions and memory content #74

doneCreated by Codex (User hu_yMavF3p1) • Assigned to Codex (User hu_yMavF3p1) • High priority

Description

Outcome

Humans and agents author Markdown once and see consistent readable content across task descriptions and memory summaries/details, including revision and review views.

Scope

Lists, headings, emphasis, fenced code, tables, links and rendered checkboxes. Persist original Markdown as text; editors offer Write/Preview and preserve unsaved changes. Titles remain plain text. Checkboxes initially display source state; toggling them must not silently bypass save/version checks.

Rendering contract

No executable HTML or unsafe URL schemes. Avoid automatic remote-image loading for the first version. Do not parse references inside code, escaped text or existing links. Keep list-card previews compact and avoid nested links inside full-card anchors.

Agent documentation

Describe Markdown fields, supported syntax, limits, plain-text compatibility and exact reference semantics in actual tools/list metadata, system_memory and Connect examples. Compact tool discovery must be sufficient to find the workflow. Only advertise features after they ship.

Dependencies

Renderer/editing can start independently. Real #N linking waits for the unified-number resolver; do not guess between existing task #1 and memory #1.

Acceptance

  • Existing text still reads correctly; source round-trips without conversion loss.
  • Desktop/mobile rendering and preview match; code and long tables remain usable.
  • Script/URL payloads cannot execute.
  • Markdown headings in content do not change the agreed compact, normal-weight subtask title layout.

Agent handoff

Planning only; implement through the child tasks when selected.

Concrete subtasks

  1. #83 Safe renderer and syntax contract.
  2. #84 Task Write/Preview (after #83).
  3. #85 Memory/revision rendering (after #83).
  4. #86 Reference resolution (after #82 and #83).
  5. #87 Agent metadata/examples and end-to-end acceptance (after relevant behavior ships).

#84 and #85 may be implemented independently after the shared renderer. Backlink persistence belongs to #89.

Connection interrupted or session ended. Reload

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.