Skip to content

Start Solo chats from channel messages - #1423

Merged
morgmart merged 23 commits into
mainfrom
morganm/linked-shared-chats
Oct 21, 2026
Merged

morgmart merged 23 commits into
mainfrom
morganm/linked-shared-chats

Conversation

@morgmart

@morgmart morgmart commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

What this does

Adds Start Solo chat to the channel and message menus. It opens a private Solo draft with the source link already in the editor and the default agent tagged. The link is ordinary editable message content. The chat stays private until it is shared through the existing Share flow.

Shared chat cards now use the chat's starting title (from the first prompt) instead of a short ID when the chat has no chosen name yet. A leading source link is skipped when titling the chat.

Every Solo chat you're a member of lists under Solo: your own and any shared with you, whether you were added directly or through a link's access grant. A shared chat starts in Chats, and you can file it in one of your own workspaces. It never lists under Team. Opening a chat without membership adds nothing to the sidebar.

Tags follow company. Alone with agents, a send must tag a person or agent. Once another member has a loaded, non-agent profile, people can talk without a tag, and the composer reads "Message this conversation" instead of "Message your agents". A member whose profile is missing or still loading keeps the tag requirement, and an untagged send rechecks the fresh roster before it goes out. Agents still answer only when tagged, and the existing agent rules are unchanged: in your own Solo chat you can tag the chat's people and your own available agents. Channel sharing skips known-archived members instead of failing.

Start and share here and the Share and send / Send link only prompt moved to the stacked follow-up PR, #1444.

How it works

  • Source links are ordinary editable message content, not chat metadata. No relay change is needed.
  • Chat cards use Chat: and a chat icon, with a chevron for readable chats and a lock for unavailable ones. Legacy Session: cards remain compatible.
  • Thread/reply icons are distinct; tabbed chats no longer repeat their title beneath the tab.
  • The message action uses a new placement: "menu" option on the conversation contribution contract (a FOUNDATION file), so it renders as an ordinary item inside the host menu.

Known follow-ups

  • Remove the now-unused guest auto-recipient module and its tests.
  • An empty workspace shows two "New chat" rows while a draft is open.
  • DESIGN.md icon guidance contradicts itself on chat vs. reply icons.

Verification

  • Focused Vitest/RTL suites for Solo, sharing, channels, composer, conversation and inbox pass, with regressions for each review fix. Type checking passes.
  • Targeted browser journeys pass locally in Chromium and WebKit. CI is the authoritative check.
  • No screenshots yet: capturing them needs the app running, which has not been started for this change.

🤖 Generated with Claude Code

morgmart and others added 7 commits October 19, 2026 17:29
Checkpoint the shortcut through Solo creation and existing sharing, including source links, channel-or-thread card placement, and exact retry recovery. Native/live and visual acceptance remain deferred.

Co-authored-by: Carl (AI agent) <goose@block.xyz>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: goose <goose@block.xyz>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: goose <goose@block.xyz>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Replace automatic share-back with creation-time source metadata, Back to source, and agent context. Add an opt-in development-only local source fallback for UX iteration against existing relays.

Co-authored-by: goose <goose@block.xyz>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Replace the origin-field experiment with editable source links and private/share-here starts. Keep automatic sharing quiet, omit unfiled shared chats from recipient navigation, and skip archived channel members during sharing.

Co-authored-by: goose <goose@block.xyz>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Keep chat cards compatible with legacy Session labels, distinguish threads and chats, remove duplicate tab headings, and permit existing human members as explicit Solo recipients.

Co-authored-by: goose <goose@block.xyz>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: goose <goose@block.xyz>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
@morgmart
morgmart marked this pull request as ready for review October 20, 2026 20:38
@morgmart
morgmart requested a review from a team as a code owner October 20, 2026 20:38
Co-authored-by: goose <goose@block.xyz>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>

@kalvinnchau kalvinnchau left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🤖 Five inline findings covering automatic sharing, receipt recovery, first-send errors, abandoned drafts and provisional design guidance. Please address these before merging.

Comment thread src/bundled/channels/SoloHeading.tsx Outdated
Comment thread src/bundled/channels/SoloHeading.tsx Outdated
Comment thread src/features/solo/SoloDraft.tsx
Comment thread src/bundled/channels/StartLinkedChat.tsx Outdated
Comment thread src/shared/design-system/DESIGN.md Outdated
morgmart and others added 2 commits October 20, 2026 14:35
Start Solo chat now opens a private linked draft from a single menu item.
Automatic share-back to the source thread and the send-time Share and
send prompt move to a follow-up PR.

Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Unnamed Solo chats already carry a starting title from their first
prompt; cards now use it instead of a short ID. A leading source link,
as from Start Solo chat, is skipped when titling the chat.

Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@morgmart morgmart changed the title Start linked Solo chats and share them back to team discussions Start Solo chats from channel messages Oct 20, 2026
morgmart and others added 3 commits October 20, 2026 15:40
Starting a Solo chat again from the same message or channel reopens its
unsent draft instead of stranding it under a fresh key. The conversation
identity icon guidance is marked proposed pending designer sign-off.

Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A saved Solo chat's mention picker offered every channel member, including
agents outside the owner's inventory. It now lists the chat's people and the
owner's available agents, matching the send policy.

Browser journeys follow the PR's Solo rules: shared Solo chats reach Team
navigation once filed, Solo sends tag a recipient, and tests settle the
sidebar after the "New chat" row retires.

Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kalvinnchau

Copy link
Copy Markdown
Contributor

🤖 Incremental review at 6da363a7abebc50f20a526dc21aa038bea820562: two new P2 findings remain.

  1. [P2] Repeating a completed linked start drops its source — SoloDraft.tsx:319. Start from a channel/message, send successfully, then start again from the same source. The deterministic draft key reuses :new-draft = "", so MessageComposer.tsx:441 does not fall back to the initial source link. The second draft contains only the default agent tag, silently losing the selected context. Reproduced in Chromium and WebKit after delivery/reload and independently in a component probe. Retire completed linked composer storage (use the absent/null state) while preserving unsent edits; add send → same-source start coverage.

  2. [P2] Saved Solo mention admission excludes existing member agents — MessageComposer.tsx:293–309. Sharing a Solo chat to a channel can admit a colleague’s agent as a chat member. The new roster excludes that member once its agent profile loads unless it is also selectable by the owner. Suggestions disappear and inserted/pasted mentions are rejected, although prepareRecipients at lines 1198–1213 admits existing members and docs/agents.md:279 promises “Chat members, plus your agents.” This is a statically traced contract mismatch; the exact shared-member scenario was not browser-reproduced. Preserve member agents in admission, or explicitly align the documented policy and send validation with the restriction and test it.

The previous three share-back findings are outside this reduced branch after removal of automatic sharing; this does not validate #1444. Unsent same-source draft recovery and proposed icon wording are addressed. Distinct-source drafts remain absent from the Drafts list.

Validation: 628 focused tests passed, TypeScript and lint passed; isolated production-app/broker checks used Chromium and WebKit with modeled upstream membership. No new security finding. No current-head full Vitest pass, real-relay ACL/multi-user validation, or native integration validation is established. Recommend addressing the two P2s before merge.

morgmart and others added 3 commits October 20, 2026 18:26
A Solo chat someone shares with you now lists under Solo with your own
chats, starting in Chats, and you can file it in your own workspaces. It
never lists under Team. Opening a chat without membership adds nothing.

A tag is required only while you're alone with agents. Once another person
is a member, people can talk without tagging an agent.

Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Alone with agents, the composer still reads "Message your agents". Once
another person is a member it reads "Message this conversation". Member
profiles load in the background so agents are recognized, and browser
fixture agents carry owner attestations like real agent profiles.

Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keeps main's compaction send state with the Solo recipient hint, and its
inline Solo rename with the PR's settled-sidebar test step. A viewer's
own chat stays listed even when read-only.

Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@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.

Reviewed head 8466e19 against base b2a272b. Assessment: 8/10; three source-demonstrated correctness/lifecycle issues are detailed inline. These are non-blocking review comments; humans decide merge readiness.

I also reconfirmed the two existing findings in #1423 (comment): restarting a completed source retains an empty composer draft instead of seeding the source link, and saved-chat mention admission excludes existing member agents outside the owner's selectable inventory. Refer to that discussion for repairs; no duplicate inline comments added.

Optional documentation correction: the PR description still promises no automatic shared-chat sidebar entry and explicit tags for every saved-chat send. The current source, later commits, and README model instead list shared chats under Solo and allow untagged human conversation. README's later recipient paragraph also contradicts its model. Align the prose with the intended current behavior; this review does not recommend reverting those product changes.

Validation: immutable-source inspection of the feature diff and relevant callers, policies, tests and failure/retry paths; diff whitespace check passed. Public PR description and feature commit messages inspected; no attached images or new disclosure finding observed. Shared Menu/NavigationItem/EmptyState owners are reused; icon guidance remains explicitly proposed. No tests, builds, app launch or PR-code execution performed. One hosted-check snapshot showed completed checks successful, multiple JS/browser/flake lanes still running, and Windows skipped. Native/live relay behavior, cold/warm performance, rendered focus recovery, accessibility, both themes, narrow layouts/enlarged text and human acceptance remain unverified.

Comment thread src/features/solo/people.ts
Comment thread src/features/messages/MessageComposer.tsx
Comment thread src/bundled/channels/StartLinkedChat.tsx
Leaving a new chat retires its "New chat" row, which shifts the list under
a double-click. The journey now opens Alpha first, as its sibling journeys
do, so the rename lands on Alpha.

Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@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/coverage), and Groot (product/focus) reviews.

Reviewed head f3f2f24 against base b2a272b. Follow-up comparison against previously reviewed 8466e19 contains only four added lines in tests/browser/solo-rename.spec.mjs; production source is identical. The conversion test keeps its existing assertions and adds a useful Alpha-name check. New evidence in this test adjustment exposes one product interaction defect, detailed inline. Assessment: 8/10 until target stability and the previously reported product defects are addressed.

The three findings in #1423 (review) remain unresolved in the unchanged production source: unknown-member recipient classification, removed default-tag restoration, and stale shortcut navigation. That review also links the earlier source-link/mention-admission findings. I have not duplicated those comments. The previously noted description/README mismatch remains optional documentation feedback.

Validation: pinned-source follow-up, relevant callers and failure/focus paths inspected; diff whitespace check passed. Public PR description and new commit message inspected; no attached images or new disclosure finding observed. No tests, builds, app launches or PR-code execution. A single current-head check snapshot contained successful Semgrep, zizmor and DCO checks; it did not establish browser or full CI validation. Actual double-click dispatch/timing in Chromium/WebKit, native behavior, rendering/accessibility, performance and human acceptance remain unverified. This is a non-blocking COMMENT review, not approval or merge authorization.

Comment thread src/bundled/channels/SoloWorkspaces.tsx Outdated
morgmart and others added 2 commits October 20, 2026 20:46
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- A shared Solo chat drops its tag requirement only for a member with a
  loaded, non-agent profile, and an untagged send rechecks the fresh roster
  and agent inventory before it goes out.
- Reopening a linked draft restores its saved recipients instead of
  re-adding the default agent the person removed.
- Start Solo chat drops its draft and errors when another navigation wins
  while its draft id is computed.

Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@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/failure and retry focus) reviews.

Reviewed head 3ac5c4e against base 6d0035a, including the merge and fixes since f3f2f24. No new actionable defect found in the latest fixes. Source inspection supports the repairs for unknown-member recipient classification, restoring a removed default tag, and stale shortcut navigation.

Three previously reported issues remain in the current source; please address the existing feedback rather than treating this as a clean bill of health:

  • Repeating a completed same-source start loses its source link, and the saved-chat mention roster excludes existing member agents outside the owner's selectable inventory: #1423 (comment). Current anchors are SoloDraft.tsx:317–320 / MessageComposer.tsx:459–465 and MessageComposer.tsx:299–313 respectively.
  • The draft row still precedes saved rows, so leaving a draft can move the intended double-click rename target: #1423 (comment). The current insertion is SoloWorkspaces.tsx:481–492.

No duplicate inline comments added. Assessment remains 8/10 while those product issues remain. The previously noted optional documentation correction also remains: align the PR description and README's later recipient paragraph with shared chats appearing under Solo and untagged conversation being allowed only when another member has loaded non-agent profile evidence. The conservative unknown-profile behavior is intentional; this review does not request reverting it.

Validation: immutable source, relevant callers, regression-test source and merge integration inspected; diff whitespace check passed. Public description and new commit messages inspected; no attached images or new disclosure finding observed. Existing Menu/NavigationItem/EmptyState owners are reused. One current-head hosted-check snapshot showed CI required and all other listed checks successful except Windows native validation, which was skipped. No tests, builds, app launches or PR-code execution were performed by this review. Native/live relay and cross-account behavior, runtime performance, rendered focus/accessibility, themes, narrow layouts/enlarged text and human acceptance remain unverified. This is a non-blocking COMMENT review, not approval or merge authorization.

A sent linked draft left its reused composer storage as an empty draft, so
starting again from the same source restored a blank draft without the link.
It now clears to absent, and the next start seeds the link and default agent.
The Solo README describes the shared-chat recipient rules.

Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@morgmart

Copy link
Copy Markdown
Contributor Author

🤖 Carl, an automated reviewer, replying via Morgan's GitHub account.

Following up on @kalvinnchau's incremental review (#1423 (comment)) and @wesbillman's latest summary:

  1. Repeating a completed linked start drops its source. Fixed in a2935a0. A sent linked draft now clears its reused composer storage to absent rather than an empty draft. The next start from the same source seeds the link and the default agent again. A new SoloDraft regression sends a linked draft, starts again from the same source, and asserts both the link and the tag. It fails without the fix.
  2. Saved Solo mention admission excludes existing member agents. Intentional, per Morgan: this PR doesn't change agent rules. On main, your own Solo chat offers and admits only your available agents (DraftMentionRoster is choices.selectable), and the existing browser journey asserts an outside member agent is never offered. This PR adds the chat's people to that roster for shared chats and leaves agent admission unchanged. The docs/agents.md table row predates this PR; any update to it belongs to a separate change.
  3. Documentation. The Solo README and the PR description now describe shared chats listing under Solo, filing into your own workspaces, and untagged conversation only when another member has a loaded, non-agent profile.

The draft-row double-click item stays open and deferred, as noted on its thread.

@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) follow-up reviews.

Reviewed head a2935a0 against base 6d0035a. This follow-up checks the four-file delta since 3ac5c4e and its supported callers. No new actionable defect found. Source inspection supports the same-source restart repair: completed linked drafts now restore their source link and default agent, while edited drafts retain explicit tag removals. The added regression test covers restart/remount in source; it was not run by this review.

The previously reported rename-target defect remains unchanged at src/bundled/channels/SoloWorkspaces.tsx:481–492: leaving a draft removes the row above saved chats during a double-click. Please address the existing finding at #1423 (comment) by keeping saved-row targets stable through the gesture. No duplicate inline comment added. Overall assessment remains 8/10 because of that outstanding interaction defect; the narrow restart fix itself meets the 9/10 source-review bar.

The saved-chat agent roster at MessageComposer.tsx:299–313 is also unchanged. The updated README and description now explicitly document the available-agent restriction. That clarifies the stated behavior, but is not a code repair of the earlier admission observation; this review does not infer a human policy decision or add another finding about it.

Validation: immutable source, persistence helpers, route/remount callers, test source, error/retry paths and public PR material inspected; diff whitespace check passed. No attached images or new disclosure finding observed. Existing shared composer/Menu/navigation owners remain in use. No tests, builds, app launches or PR-code execution. One hosted-check snapshot showed JavaScript and completed checks successful, browser/Rust/flake lanes still running, and Windows skipped. Live relay/native behavior, cross-window and navigation timing, performance, rendered focus/accessibility, themes, narrow layouts/enlarged text and human acceptance remain unverified. Non-blocking COMMENT only; no approval or merge authorization.

Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@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) follow-up reviews.

Reviewed head 5e6e3ad against base 1791ea0. This follow-up checks the main-branch merge since a2935a0. Range-diff preserves all 17 feature commits. No new actionable merge regression found in the overlapping sidebar/conversation integration, composer profile/media inputs, recipient admission or linked-draft lifecycle.

The existing rename-target P2 remains: SoloWorkspaces.tsx:481–491 inserts the temporary draft row before saved rows, while SoloInventory.tsx:361–378 navigates immediately on the first wide-layout click. Leaving the draft can therefore move the intended row between double-clicks. Please keep saved-row targets stable through that gesture and retain a direct-from-draft rename regression. Existing finding: #1423 (comment). No duplicate inline comment added. Overall assessment remains 8/10 for this outstanding defect; no new change request is introduced by this merge review.

Previously repaired unknown-member classification, removed-default-tag restoration, stale shortcut completion and same-source restart paths remain intact in source. The documented available-agent roster restriction is unchanged; this review does not reinterpret that documentation as a new human policy decision.

Validation: pinned-source and merge comparison, supported callers, failure/retry paths and relevant product/design contracts inspected; diff whitespace check passed. Existing shared NavigationItem/Menu/composer owners are preserved. Public PR description and merge commit metadata inspected; no attached images or new disclosure finding observed. No tests, builds, app launches or PR-code execution. One hosted-check snapshot showed JavaScript and completed validation checks successful, several browser/flake/Rust lanes still running, and Windows skipped. Live/native relay behavior, plugin lifecycle timing, cold/warm performance, rendered focus/accessibility, double-click timing, themes/narrow layouts/enlarged text and human acceptance remain unverified. Non-blocking COMMENT only; no approval or merge authorization.

@loganj loganj left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🤖 Independent review by Rbot and Larry at 5e6e3ad7, synthesized by Larry. Source review only: we did not run tests or the live UI. Hosted checks were green at this head.

Verdict: one P2 must-fix, plus four smaller items (P3/nit). Details are inline.

  1. [P2] Queued follow-ups reject or stall human recipients (inline on MessageComposer.tsx). The new roster lets the owner tag a person in a shared Solo chat. With the Solo follow-up preference set to queue, that send fails. follow-up-queue.ts:sent() (not in this diff) also records every recipient as an agent wait.
  2. [P3] The owner's own key is in the Solo mention roster. A self-tag satisfies the tag requirement when no one else is in the chat.
  3. [P3] Three separate computations of "this Solo chat has people". One of them adds profile and agent-library subscriptions to every composer.
  4. [P3] A chat whose first message is only the source link gets the raw buzz:// URL as its title.
  5. [nit] The legacy Session/Chat label grammar now exists in four places with two different regexes. The placement: "menu" contract also ignores title/icon.

We also checked these areas and found no other blocker: source-link draft storage and recovery, linked-route validation, menu contribution wiring, Solo/Team inventory split, sidebar destination, card title and legacy label compatibility, archived-member filtering in channel share.

Comment thread src/features/messages/MessageComposer.tsx
Comment thread src/features/messages/MessageComposer.tsx Outdated
Comment thread src/features/messages/MessageComposer.tsx Outdated
Comment thread src/features/solo/chat-title.ts
Comment thread src/features/messages/session-cards.ts
Comment thread src/features/conversation/contracts.ts
- With queued follow-ups, only a send addressed solely to the owner's
  agents queues and waits. Sends to people, mixed sends and untagged
  conversation go out now instead of failing or stalling the queue.
- The saved Solo roster never offers the viewer, so a self-tag can't stand
  in for a recipient.
- Composers derive "this chat has people" from the one Solo hook, which
  subscribes only for saved Solo chats.
- A link-only first prompt is titled from its cards, then "Chat", never
  the raw link.

Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@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) follow-up reviews.

Reviewed head a0aee2c against base 1791ea0, focusing on the six-file change since reviewed head 5e6e3ad. One new P2 is detailed inline: incomplete agent choices can make an agent-only follow-up publish immediately despite the saved queue preference. The person/mixed-recipient fix, viewer exclusion and link-only title fallback otherwise match the stated intent.

The existing rename-target P2 remains unchanged: SoloWorkspaces.tsx:481–491 inserts the temporary draft row before saved rows, while features/channel-navigation/SoloInventory.tsx:361–378 navigates on the first wide-layout click. Leaving the draft can move the intended row between clicks. Keep saved-row targets stable through that gesture; existing finding: #1423 (comment). No duplicate inline comment added. Overall assessment: 8/10 until the queue-preference regression and existing rename issue are addressed.

Validation: pinned source, supported callers, regression-test source, admission and failure/retry paths inspected; diff whitespace check passed. Shared Menu, NavigationItem and composer owners are retained. Public PR description and new commit metadata inspected; no attached images or new disclosure finding observed. No tests, builds, app launches or PR-code execution; CI was not assessed in this cycle. Live/native relay behavior, actual steering/interruption, runtime performance, rendered focus/accessibility, themes/narrow layouts/enlarged text and human acceptance remain unverified. Non-blocking COMMENT only; no approval or merge authorization.

Comment thread src/features/messages/MessageComposer.tsx Outdated
A tagged agent missing from incomplete agent choices made a queued
follow-up publish immediately. A send now skips the queue only when it
addresses a confirmed person (a loaded, non-agent profile); unknown
recipients keep the owner's queue preference.

Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@morgmart
morgmart merged commit 727ecbf into main Oct 21, 2026
42 checks passed
@morgmart
morgmart deleted the morganm/linked-shared-chats branch October 21, 2026 19:48
morgmart added a commit that referenced this pull request Oct 22, 2026
Carry #1423's channel-share archived-member skip into the unified access
dialog, keep main's linked-draft tests, and ignore infinite animations when
browser specs wait for the dialog to settle.

Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.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.

4 participants