CR-2026-144 — Move Assertion to Another Engagement
Version. 0.1 · Date. 2026-07-04
Status. Drafted, not staged for build. Number 144 confirmed free at staging (highest prior: CR-2026-143). Base: engine main @ 542e09c, OL main @ 9938628. Queued behind correction-recognition (in progress) — not built yet.
Repos. loomworks-engine, loomworks.
What this fixes
A Memory-list entry sometimes belongs to a different engagement than the one it was captured in (e.g. a generic receipt captured while in the Houseplant engagement, but the Operator's own filing sense says it belongs in Personal or elsewhere). Today there is no way to move it — only Confirm/Dismiss/View source exist.
Fix
Add a "Move to..." action on Memory-list entries. The Operator picks any engagement they are authorized for (a searchable picker, not a dropdown — the Operator may have many engagements). The entry moves to the selected engagement's Memory.
Scope for first version
Held assertions only. Moving a committed (authoritative) assertion is a bigger act — reassigning settled memory to a different room — and is deliberately deferred to a later CR.
Open design questions (for Step-0, not resolved here)
- Data-level mechanism. Re-key the assertion's engagement_id directly, or retract-in-source + create-in-target with a linking record? Engagement_id is deeply cross-referenced (CR-2026-142 showed how much can depend on an engagement pointer) — this needs real investigation before any UI work.
- Provenance. Per "corrections preserved, not smoothed," a move must be recorded, not silent — walkable history showing it moved, by whom, when.
- "Personal" is not special. It is one engagement among the Operator's authorized set (e.g. E0030) — the picker is "any engagement I'm a member of," with Personal likely pinned at top as the most common target.
- UI at scale. Searchable/type-to-filter picker, not a dropdown. Per "only show what is available," hide the action entirely if the Operator has only one engagement.
Seed check
No conflict. Touches the Memory-scope principle (an engagement's own accumulated knowledge) but the seed does not specify assertion-movement mechanics — specification-level. Operator-authority is satisfied: this is an explicit manual action, never automatic.
Out of scope
Committed-assertion moves (deferred). Automatic/AI-driven routing at capture time (a separate, already-recorded finding — content-to-engagement routing, part of the semantic-meaning foundation work).