hephaestus/docs/explanation/explanation.md
Erich Blume b33cafe2e0
All checks were successful
Build / validate (pull_request) Successful in 9m34s
feat(core)!: reject manual creation of derived/internal link types
A hand-made `wiki` link row looked like it worked, then silently
vanished on the next body write — the links table's wiki rows are an
index derived from `[[…]]` in the body, and `sync_wiki_links` diffs
them against it. Store::add_link now rejects `wiki` (with a pointer at
the body as the durable path) plus the `canonical-context` / `log-of`
task internals. Body materialization uses the internal path and is
unaffected; `link.add` ops arriving over sync still apply.

Drops the wiki-links explanation card — it existed to document the
footgun, and the footgun is gone.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-09 11:24:36 -07:00

514 B
Raw Blame History

title modified tags
Explanation 2026-03-03
explanation
meta

Explanation

Background context and design decisions.

  • design — Hephaestus design document: vision, data model, architecture, sync, and roadmap
  • task-lifecycle — the two-axis task model (lifecycle state × attention), drop vs delete, and where each task shows up
  • hub-spoke-data-evolution — why op-based sync lets most new features skip migrations, and when a coordinated SQLite migration is actually required