Repository navigation
Start Solo chats from channel messages - #1423
Conversation
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>
Co-authored-by: goose <goose@block.xyz> Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
kalvinnchau
left a comment
There was a problem hiding this comment.
🤖 Five inline findings covering automatic sharing, receipt recovery, first-send errors, abandoned drafts and provisional design guidance. Please address these before merging.
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>
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>
|
🤖 Incremental review at
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. |
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
left a comment
There was a problem hiding this comment.
🤖 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.
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
left a comment
There was a problem hiding this comment.
🤖 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.
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
left a comment
There was a problem hiding this comment.
🤖 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>
|
🤖 Carl, an automated reviewer, replying via Morgan's GitHub account. Following up on @kalvinnchau's incremental review (#1423 (comment)) and @wesbillman's latest summary:
The draft-row double-click item stays open and deferred, as noted on its thread. |
wesbillman
left a comment
There was a problem hiding this comment.
🤖 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
left a comment
There was a problem hiding this comment.
🤖 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
left a comment
There was a problem hiding this comment.
🤖 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.
- [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 toqueue, that send fails.follow-up-queue.ts:sent()(not in this diff) also records every recipient as an agent wait. - [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.
- [P3] Three separate computations of "this Solo chat has people". One of them adds profile and agent-library subscriptions to every composer.
- [P3] A chat whose first message is only the source link gets the raw
buzz://URL as its title. - [nit] The legacy
Session/Chatlabel grammar now exists in four places with two different regexes. Theplacement: "menu"contract also ignorestitle/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.
- 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
left a comment
There was a problem hiding this comment.
🤖 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.
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>
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>
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
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
Verification
🤖 Generated with Claude Code