Support safe Markdown in task descriptions and memory content #74
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
- #83 Safe renderer and syntax contract.
- #84 Task Write/Preview (after #83).
- #85 Memory/revision rendering (after #83).
- #86 Reference resolution (after #82 and #83).
- #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.