Skip to content

I3284 — Every reference the 2026-10-18 import wrote is pinned to the upstream message it meant

Rewrite each positional workspace reference in tracked records to the upstream message id, matching position in the 2026-10-18 flattening together with the message's time and a hash of its text, and refuse to pin any reference that matches zero or more than one message.

BLOCKED wave 6 · p2 · implementation profile · parallel safe

Part of a-promoted-record-opens-its-message — Every record promoted from a workspace cites the message it came from, and the UI opens it for the operator who holds it.

Blocked. This issue cannot start until I3278, I3279, I3281, I1304 are done. The status is derived from that, not declared.

Objective

Rewrite each positional workspace reference in tracked records to the upstream message id, matching position in the 2026-10-18 flattening together with the message's time and a hash of its text, and refuse to pin any reference that matches zero or more than one message.

Why

Positions in a flattened conversation move when a message is edited or regenerated upstream; a pin by time and text hash keeps every source the import wrote pointing at what was read. Critique 2026-10-18: the zero-positional criterion must count typed entries and the prose detector, or it passes vacuously; and the export premise is unverified, so the browser re-read is the planned fallback route. Proposed in ADR 0211 (A record promoted from a workspace cites the message it came from by a typed reference that validates in every checkout and resolves only where the store is held) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c267#0.

Current state

The corpus keeps no message id (role, time, text only).

Desired state

No positional reference remains; an ambiguous one is listed for a person.

Scope

  • .ai/repo/adrs/0211-a-record-promoted-from-a-workspace-cites-the-message-it-came-fro.md
  • apps/majordomus-cli/src/plan.rs
  • apps/majordomus-cli/src/capability/builtin/knowledge_base.rs

Dependencies

What waits on this

Acceptance criteria

  • After the run plan validate reports zero positional workspace references
  • An ambiguous match is refused and named, never guessed
  • Where the export lacks Project conversations, pins come from an I1304 re-read that keeps upstream message ids
  • Zero positional workspace references remain in provenance.derived_from, and the prose detector of I3281 reports zero untyped references
  • The promotion script writes typed provenance.derived_from entries, never prose-only sources

Validation

  • majordomus plan validate
  • bin/majordomus knowledge check

Evidence required

  • case_positional_references_are_pinned

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Timeline

started
—
verified
—
completed
—

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I3284.yaml. Read it back with majordomus plan show I3284.

Searches the titles and descriptions of every page this site publishes.