Skip to content

Add contextual references to Workstream Board discussions - #6373

Draft
loganj wants to merge 9 commits into
workstream-board/07-blocker-message-linksfrom
workstream-board/08-context-references
Draft

Add contextual references to Workstream Board discussions#6373
loganj wants to merge 9 commits into
workstream-board/07-blocker-message-linksfrom
workstream-board/08-context-references

Conversation

@loganj

@loganj loganj commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

🤖 Larry

Summary

People and agents need to discuss specific objects on the Workstream Board without losing what they meant when the Board later changes. This adds an ordered reference tray to Board discussions: references travel with the message through the represented workstream, and reopening that message restores the referenced context.

Replayed references show whether each object is still live, has changed since it was sent, or is now historical. Removed or unavailable objects remain visible as non-interactive placeholders rather than disappearing or redirecting to unrelated state.

This PR is stacked on #6357.

Details

  • Human-authored and orchestrator-authored messages use the same typed, self-describing reference format and validation rules across Desktop, the Rust SDK, and ACP agent context.
  • Malformed, oversized, cross-workstream, or otherwise unauthorized reference data fails closed while the surrounding message remains usable. Raw transport tags are not exposed to agents.
  • Discussion mode supports ordered multi-object selection within one workstream, message replay, keyboard stepping between references, and confirmation before discarding an unsent draft or tray.
  • The current replay target has a visible non-color marker. Unavailable cards cannot mutate the tray.
  • The send destination is derived from the resulting non-empty tray. Removing the final reference clears the destination, so selecting a reference from another workstream sends only through that new workstream.

Related issue

Testing

Verified at exact published head 5316a93d4230c4ee59233e937e3c9c1842ad5c31:

  • Desktop unit suite: 5,141/5,141 passed across 75 suites
  • Desktop check and typecheck: passed
  • Checked-in Workstream Board context-reference smoke spec: 3/3 passed, covering persisted replay, live/changed/historical rendering, draft preservation, unavailable-card guarding, and the empty-tray A → B destination transition
  • Rust buzz-sdk: 267/267 passed, including documentation tests
  • Rust buzz-acp: 803/803 passed, plus 9/9 lifecycle tests and documentation tests
  • Branch-skew and file-size publication gates: passed

The repository-wide smoke command enumerated 1,085 tests but did not complete within the 10-minute command window, so it is not counted as passing evidence. The complete checked-in smoke spec affected by this change passed 3/3.

loganj and others added 9 commits August 19, 2026 21:38
Co-authored-by: Larry <loganj+sbot-larry@squareup.com>
Signed-off-by: Logan Johnson <loganj@squareup.com>
Co-authored-by: Larry <loganj+sbot-larry@squareup.com>
Signed-off-by: Logan Johnson <loganj@squareup.com>
Co-authored-by: Larry <loganj+sbot-larry@squareup.com>
Signed-off-by: Logan Johnson <loganj@squareup.com>
Co-authored-by: Larry <loganj+sbot-larry@squareup.com>
Signed-off-by: Logan Johnson <loganj@squareup.com>
Co-authored-by: Larry <larry@buzz.local>
Signed-off-by: Logan Johnson <loganj@squareup.com>
Co-authored-by: Larry <larry@buzz.local>
Signed-off-by: Logan Johnson <loganj@squareup.com>
Co-authored-by: Larry <larry@buzz.local>
Signed-off-by: Logan Johnson <loganj@squareup.com>
Co-authored-by: Larry <larry@buzz.local>
Signed-off-by: Logan Johnson <loganj@squareup.com>
Co-authored-by: Larry <larry@buzz.local>
Signed-off-by: Logan Johnson <loganj@squareup.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant