hephaestus/crates
Erich Blume ef56c5d5f2 feat(core,hephd): frontmatter projection — render on read, strip on write (§8.3)
The store-side half of the frontmatter edit surface:
- heph-core `frontmatter::strip` runs in `update_node` before the yrs
  diff, so frontmatter never enters the body or CRDT. Conservative (only
  a leading `---` block whose first line is a YAML key; a prose hrule
  survives) and idempotent → read→write round-trip is a no-op.
- hephd `frontmatter::render` (local-tz dates via new `datespec::fmt_iso`)
  behind `node.get {frontmatter: true}`: id/kind/title/tags, and for a
  task or its canonical-context doc the owning task's scalars + a `task:`
  ref. Subject-task + project-name resolution in dispatch.

Safe against any client (inbound frontmatter always stripped). Tests:
strip unit (incl. hrule/idempotency), render unit, socket round-trip +
task-context-doc projection. The heph.nvim diff-into-RPCs layer is next.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 11:32:59 -07:00
..
heph feat(core): tags — canonical tag nodes + OR-set tagging (§4, §8.3) 2026-06-03 11:18:51 -07:00
heph-core feat(core,hephd): frontmatter projection — render on read, strip on write (§8.3) 2026-06-03 11:32:59 -07:00
heph-tui feat(tui): s sort toggle — default vs project-grouped (§8.1) 2026-06-03 11:01:51 -07:00
hephd feat(core,hephd): frontmatter projection — render on read, strip on write (§8.3) 2026-06-03 11:32:59 -07:00