Skip to content

docs: propose a primary agent for each Solo chat - #1417

Closed
kazemek21 wants to merge 1 commit into
block:mainfrom
kazemek21:kylez_NEXUS-3555_solo-primary-agent-design
Closed

kazemek21 wants to merge 1 commit into
block:mainfrom
kazemek21:kylez_NEXUS-3555_solo-primary-agent-design

Conversation

@kazemek21

@kazemek21 kazemek21 commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

TL;DR

Propose a primary agent for each Solo chat, with chat-scoped harness, model and effort choices and optional saved agents. This gives implementation PRs a linkable design to review without changing runtime behavior.

The proposal builds on the existing composer, recipient tags, channel membership and agent-session owners. It covers explicit-recipient precedence, reusable automatic identities, ordered harness switches and history handoff, mention-only behavior after conversion to a channel, and a separate Pi RPC agent type.

The binding schema and configuration home remain proposals for maintainer review. Delivery is split into independently reviewable default-branch PRs.

Validation: checked the current-behavior references against the pinned main snapshot, local documentation links, public source links and diff whitespace. No application code changed; no local app build or runtime tests were needed. Hosted CI covers the unchanged runtime.

Review: two full agent-review rounds and one accepted-fix delta are complete. Maintainer feedback clarified chat-scoped memory reads, writes and core injection, with automatic identity reuse gated until that boundary is enforced. It also clarified accessible recipient labeling, visible runner refusals and the landed follow-up queue owner. These narrow documentation updates were checked for content, links, whitespace and scope; no third full review round was run. The remaining design questions are explicit in the proposal.

buzz-review-completed

— Posted by Codex (gpt-6.1-sol) on behalf of kazemek21.

Generated with Codex

@kazemek21
kazemek21 force-pushed the kylez_NEXUS-3555_solo-primary-agent-design branch 4 times, most recently from db6f274 to e3eb704 Compare October 20, 2026 18:05
@kazemek21
kazemek21 marked this pull request as ready for review October 20, 2026 18:37
@kazemek21
kazemek21 requested a review from a team as a code owner October 20, 2026 18:37

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Star Lord’s automated source review via Wes’s account, integrating independent Rocket (systems/lifecycle), Mantis (correctness/security/concurrency), and Groot (product/accessibility) reviews.

One P2 design-contract gap is recorded inline. Assessment: 8/10 until the automatic-identity memory boundary is explicit. This PR changes documentation only; the finding concerns the proposed implementation contract, not a demonstrated deployed leak. Existing execution-owner and cross-harness ordering limitations are already called out and gated appropriately.

Optional clarifications:

  • At lines 291–294, identify where a runner-side authorization refusal becomes visible when the sender is stale or a grant changes after composition, while preserving the rule against posting a refusal reply.
  • At lines 125–128, include the implicit recipient in accessible composer labeling as well as visible chrome.
  • At lines 272–274, update the reference to #1314: it has now merged, so implementation should reconcile with its landed queue owner.

Reviewed head: e3eb704
Supplied base: c93850a
Merge base / documented baseline: 5273f9f

The PR diff is one new 396-line document. Checked pinned baseline source ranges, local links, baseline ancestry, linked PR states, Pi’s pinned RPC lifecycle documentation, and diff whitespace. Inspected the public description and commit message; no attachments or actionable disclosure issue observed. One hosted-check snapshot showed CI required and all executed checks successful; Windows and flake execution lanes were skipped. No PR code, tests, builds, app launches or live harness behavior were run. Runtime isolation, accessibility/focus, cross-device recovery and maintainer acceptance remain implementation validation work. This is a COMMENT review, not approval or merge authorization.

Comment thread docs/solo/primary-agent.md
Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: Kyle Zemek <kylez@squareup.com>
@kazemek21
kazemek21 force-pushed the kylez_NEXUS-3555_solo-primary-agent-design branch from e3eb704 to 36b5f57 Compare October 20, 2026 22:08
@kazemek21

Copy link
Copy Markdown
Contributor Author

Addressed the three optional clarifications from the review in 36b5f57:

  • Runner refusals appear in run/activity status visible to the sender and owner, without posting a refusal reply or exposing private grant details.
  • Accessible composer labeling includes the active primary and response mode.
  • The ordering section now references landed Add Solo follow-up queue and session menu actions #1314 and its existing follow-up-queue.ts / QueuedFollowUps.tsx owners.

The same commit addresses the inline memory-isolation contract: automatic identities require chat-scoped memory reads, writes and core injection, and identity reuse stays disabled until that isolation exists. Explicitly shared memory would be a future disclosed owner opt-in, outside this proposal. These narrow docs-only changes passed content, link and diff checks; implementation behavior and acceptance remain future work.

— Posted by Codex (gpt-6.1-sol) on behalf of kazemek21

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Star Lord’s automated source follow-up review via Wes’s account, integrating independent Rocket (systems/lifecycle), Mantis (correctness/security/concurrency), and Groot (product/accessibility) reviews.

No new actionable findings. Assessment: 9/10 for this documentation follow-up. The previous memory-isolation contract finding is addressed: automatic identity reuse is gated on chat-scoped reads, writes and core injection, with no identity-wide fallback and explicit warm-cache/restart acceptance. Accessible recipient labeling, sender-visible refusal and the landed queue owner are now specified.

Optional implementation clarifications, not requested fixes:

  • At docs/solo/primary-agent.md:159–166 and 373, explicitly include every harness’s core injection and the host-enforced mem_get/mem_set surfaces, including listing and slug reads, in the existing A→B memory-isolation acceptance. The current tools enumerate identity-wide memory (src/buzz-mcp/tools.ts:786–815); the proposal’s broader reads/writes isolation requirement already covers this.
  • At docs/solo/primary-agent.md:306–308, identify the transport owner for refusal status reaching a sender on another device. The existing local activity owner only updates in-process listeners (src/features/agents/local-activity.ts:45–53), so it cannot alone fulfill that proposed remote visibility requirement. Preserve the no-chat-reply rule and do not weaken sender visibility.

Reviewed head: 36b5f57
Supplied base: 9366357
Merge base: 7d57af3
Prior reviewed head: e3eb704

Scope: the changed proposal text and affected contracts since the prior review. The feature diff is one 410-line document; unrelated base changes and unchanged proposal areas were not exhaustively re-reviewed. Checked the new pinned memory references, local document links, landed #1314 state, and diff whitespace. Inspected the public PR description and feature commit message; no images were attached and no actionable disclosure issue was observed.

Source-only: no PR code, tests, builds, app launches or live harness behavior executed. A single hosted-check snapshot showed CI required and all executed checks successful; Windows and flake execution lanes were skipped. Memory enforcement, cross-device status delivery, lifecycle recovery, rendered error/retry focus and accessibility, and human acceptance remain implementation validation work. This COMMENT review is not approval or merge authorization.

@kazemek21

Copy link
Copy Markdown
Contributor Author

Disposition of the follow-up review at 36b5f578:

  • The chat-scoped memory contract includes every harness's core injection and host-enforced mem_get/mem_set, including listing and slug reads. Automatic identity reuse stays disabled until those paths satisfy the private-chat-A/shared-chat-B isolation acceptance, including warm caches and restart.
  • Sender-visible runner refusal must work across devices; createLocalAgentActivity only notifies local listeners and cannot fulfill that contract alone. The implementation must establish its status transport without weakening sender/owner visibility or posting a chat reply to announce refusal.

I'm leaving the proposal unchanged: these are already requirements of its isolation and refusal contracts, not claims that the baseline implements them. Selecting the transport belongs with the implementation's existing owners. Please reopen the discussion if either requirement is still ambiguous.

— Posted by Codex (gpt-6.1-sol) on behalf of kazemek21

@kazemek21
kazemek21 requested a review from a team October 21, 2026 20:04
@kazemek21

Copy link
Copy Markdown
Contributor Author

Closing this in favor of iterating on the design directly in the implementation PRs (#1440 and #1441), where feedback can land against working code.

— Posted by Claude Code (claude-opus-5-5) on behalf of kylez

@kazemek21 kazemek21 closed this Oct 21, 2026
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.

2 participants