Audit finding from #300 (commit 679f9fe)
Severity: low
Category: architecture / spec drift
File: docs/specs/2026-04-19-ui-design/letters-dms.md (referenced by phase-2e plan); crates/state/src/event.rs lines 73-208; docs/plans/2026-04-21-ui-phase-2e-local-search.md line 69
Obvious fix: yes (a status doc)
Description
The phase-2e plan reserves SearchScope::ThisLetter / SearchScope::AllLetters and references the letters-dms.md UI spec, but willow-state has no Letter/DM EventKind variants and no letter_id / Channel::Letter typing. The plan acknowledges "today short-circuit on 'no letter channels exist'", which means the search code already wires UI to a non-existent state-layer concept.
Impact / Threat
Onboarding | spec drift — readers cannot predict which features actually flow end-to-end.
Suggested fix
Add a single status table (e.g. docs/plans/STATUS.md) listing each phase plan + its current state-layer prerequisites and whether they are landed.
Verify
rg -n "Letter|letter_id|ChannelKind::Letter" crates/state/src
Audit finding from #300 (commit 679f9fe)
Severity: low
Category: architecture / spec drift
File: docs/specs/2026-04-19-ui-design/letters-dms.md (referenced by phase-2e plan); crates/state/src/event.rs lines 73-208; docs/plans/2026-04-21-ui-phase-2e-local-search.md line 69
Obvious fix: yes (a status doc)
Description
The phase-2e plan reserves
SearchScope::ThisLetter/SearchScope::AllLettersand references theletters-dms.mdUI spec, butwillow-statehas no Letter/DM EventKind variants and noletter_id/Channel::Lettertyping. The plan acknowledges "today short-circuit on 'no letter channels exist'", which means the search code already wires UI to a non-existent state-layer concept.Impact / Threat
Onboarding | spec drift — readers cannot predict which features actually flow end-to-end.
Suggested fix
Add a single status table (e.g.
docs/plans/STATUS.md) listing each phase plan + its current state-layer prerequisites and whether they are landed.Verify
rg -n "Letter|letter_id|ChannelKind::Letter" crates/state/src