Fix supersedes relation round trips and expose superseded guidance in recall #214
Description
Observed during WordsApp memory maintenance on 2026-09-13: seven relation_create calls using kind=supersedes from memory 34 to memories 1, 2, 6, 14, 17, 18 and 19 returned 'Relation saved.' Subsequent relation_list calls for source 34 and target 18 returned only Markdown references, and recall still showed old release wording without a superseded marker. Root cause is not yet diagnosed.
Implementation idea:
- Reproduce with isolated fixtures containing both a Markdown reference and explicit supersedes between the same endpoints; inspect persistence, deduplication, authorization and read projection.
- Preserve explicit relation kind and provenance in both directions; return success only for persisted operations.
- Label superseded guidance in recall and link to its authorized replacement, while preserving historical reports. Bound chain traversal.
Acceptance criteria:
- Create/read/retry/remove round trips work for mixed relation kinds; cycles and duplicate edges are prevented.
- Superseded guidance is not shown as unqualified current truth.
- Inaccessible successors leak no private content; define archived-successor behavior.
- Add focused service/MCP tests and coordinate with recall evaluation task #98.