Repository navigation
fix(mobile): show shared chats under Solo - #9348
Conversation
|
@codex review |
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Codex Review: Didn't find any major issues. Hooray! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
🔐 Codex Security Review
Review SummaryOverall Risk: NONE
FindingsNo concrete security, correctness, or reliability findings were identified. Notes
Generated by Codex Security Review | |
f32cebd to
8c31e9a
Compare
brow
left a comment
There was a problem hiding this comment.
🤖 Tom's pre-review recommends landing this with one small fix, #9419 shared Solo while filing loads: without it, a shared or agent-created Solo chat is listed and badged nowhere whenever the Solo organization record is still loading or unavailable, where before it stayed reachable under Team. Please merge the fix into your branch (it needs no approval there, since block/buzz's review rules cover only main and the mobile release branches), and this PR is then approved and merged on Tom's go-ahead. Report: buzz://message?channel=e71f9a2a-ac46-473d-a24e-5e16fd8cb7b1&id=2c64ba8b20782b7c512bd8002b104d12ee08a3955f72eaed0f96db8a2f766e03
## Summary Fix for a blocking review finding on #9348 ([review thread](buzz://message?channel=95213a25-483a-458b-9bc3-71891fa5aef6&id=8ad087852227b50d614760eb4778734e306faf70df77e0ecd16cb5816b865bbc)). **Wait, what?** #9348 removes shared and agent-created Solo chats from Team as soon as the channel list loads, but the Solo list and its unread badges waited for the separate encrypted filing record. With no usable record (fresh install or sign-in before it arrives, offline without a Me cache), those chats were listed and badged nowhere. Before #9348 they were reachable under Team. **Now:** Solo builds its chat list and unread set from the channel list alone. While the filing record loads or fails, its spinner or "Try again" shows as the first item above an unfiled "Chats" list, with no project sections and no "No chats yet" empty state. Legacy (pre-label) chats and project filing join when the record arrives. New chat / New project stay disabled until then, and nothing is written from the unavailable state. **Nothing gets worse:** with the record loaded, the page renders exactly as before. The only visible change is in the loading/error state, where the status moves from replacing the list to sitting above it. ### Testing Added tests: - `me_page_test`: Home with an ordinary chat and a labelled shared chat, filing record failing or still loading. The shared chat is listed under Solo, the ordinary one under Team, and the status (retry or spinner) is shown. Both fail on #9348's head. - `me_unread_test`: a labelled shared chat with a new message is counted before the record loads, and a legacy id joins once it arrives. Fails on #9348's head. The existing "unavailable preferences show retry instead of empty state" test still passes. Full mobile suite and `mobile-check` pass locally. Signed-off-by: Tom Brow <[email protected]> Co-authored-by: Tom Brow <[email protected]> Co-authored-by: studio <dc2fc481343672df31a689840c09299972e704dac592e0da6f18486646a7ee3e@buzz.block.builderlab.xyz>
Use Solo metadata for list placement and unread state while keeping creator checks for owner-only composing and sending. Co-authored-by: coder <e509b66797ba43fd355dc12801a0c1ba376b06924147c65abdafa7ababcf8e2e@buzz.block.builderlab.xyz> Signed-off-by: Evan Broderick <[email protected]>
## Summary Fix for a blocking review finding on #9348 ([review thread](buzz://message?channel=95213a25-483a-458b-9bc3-71891fa5aef6&id=8ad087852227b50d614760eb4778734e306faf70df77e0ecd16cb5816b865bbc)). **Wait, what?** #9348 removes shared and agent-created Solo chats from Team as soon as the channel list loads, but the Solo list and its unread badges waited for the separate encrypted filing record. With no usable record (fresh install or sign-in before it arrives, offline without a Me cache), those chats were listed and badged nowhere. Before #9348 they were reachable under Team. **Now:** Solo builds its chat list and unread set from the channel list alone. While the filing record loads or fails, its spinner or "Try again" shows as the first item above an unfiled "Chats" list, with no project sections and no "No chats yet" empty state. Legacy (pre-label) chats and project filing join when the record arrives. New chat / New project stay disabled until then, and nothing is written from the unavailable state. **Nothing gets worse:** with the record loaded, the page renders exactly as before. The only visible change is in the loading/error state, where the status moves from replacing the list to sitting above it. ### Testing Added tests: - `me_page_test`: Home with an ordinary chat and a labelled shared chat, filing record failing or still loading. The shared chat is listed under Solo, the ordinary one under Team, and the status (retry or spinner) is shown. Both fail on #9348's head. - `me_unread_test`: a labelled shared chat with a new message is counted before the record loads, and a legacy id joins once it arrives. Fails on #9348's head. The existing "unavailable preferences show retry instead of empty state" test still passes. Full mobile suite and `mobile-check` pass locally. Signed-off-by: Tom Brow <[email protected]> Co-authored-by: Tom Brow <[email protected]> Co-authored-by: studio <dc2fc481343672df31a689840c09299972e704dac592e0da6f18486646a7ee3e@buzz.block.builderlab.xyz> Signed-off-by: Evan Broderick <[email protected]> Co-authored-by: coder <e509b66797ba43fd355dc12801a0c1ba376b06924147c65abdafa7ababcf8e2e@buzz.block.builderlab.xyz>
40223c4 to
1bf3b18
Compare
Co-authored-by: mboston.Engineer <932d3b6ebea6cc83e091551ae46d1c7e7f8f7d0fa8e9cef5e6facc8544af413b@buzz.block.builderlab.xyz> * origin/main: fix(mobile): require Builderlab consent for existing identities (#8823) feat(mobile): use HTTP/2 on iOS through app-wide URLSessions (#8897) fix(relay): publish a git push only when refs changed; check the protocol by refinement (#9425) fix(mobile): show shared chats under Solo (#9348) chore(release): release Buzz Desktop version 0.5.29 (#9456) feat(mobile): render messages with gpt_markdown 1.3.4 plusparse (#8945) fix(acp): bound observer retention by bytes (#7987) (#9436) Tune release codegen for faster/smaller binaries (#9434) feat(desktop): add dismissible banner pointing to the new buzz app (#9379) fix(mobile): keep publishing presence while the app is open (#9441) feat(mobile): share into Buzz from the iOS share sheet (#9433) fix(mobile): qualify every namesake mention and keep authored mention casing (#9325) fix(mobile): match browser GIF timing in the iOS reaction sheet (#9437) fix(mobile): play short-delay animation frames at browser speed (#9432) buzz-search: read profile names without the profile_name_fields function (#9397) buzz-db: build the community deletion lock key in Rust (#9396) fix(cli): pair for the active community, skip stopped desktops, accept a bare relay host (#9417) test(mobile): run push tests without a gateway dart-define (#9423) fix(mobile): never pop Home when archiving from channel settings (#9387) perf(acp): reduce observer CPU and lock overhead (#9381) Signed-off-by: Matthew Boston <[email protected]>
…count-backfill Co-authored-by: mboston.Engineer <932d3b6ebea6cc83e091551ae46d1c7e7f8f7d0fa8e9cef5e6facc8544af413b@buzz.block.builderlab.xyz> * bostonaholic--agent-reply-count: fix(mobile): require Builderlab consent for existing identities (#8823) feat(mobile): use HTTP/2 on iOS through app-wide URLSessions (#8897) fix(relay): publish a git push only when refs changed; check the protocol by refinement (#9425) fix(mobile): show shared chats under Solo (#9348) chore(release): release Buzz Desktop version 0.5.29 (#9456) feat(mobile): render messages with gpt_markdown 1.3.4 plusparse (#8945) fix(acp): bound observer retention by bytes (#7987) (#9436) Tune release codegen for faster/smaller binaries (#9434) feat(desktop): add dismissible banner pointing to the new buzz app (#9379) fix(mobile): keep publishing presence while the app is open (#9441) feat(mobile): share into Buzz from the iOS share sheet (#9433) fix(mobile): qualify every namesake mention and keep authored mention casing (#9325) fix(mobile): match browser GIF timing in the iOS reaction sheet (#9437) fix(mobile): play short-delay animation frames at browser speed (#9432) buzz-search: read profile names without the profile_name_fields function (#9397) buzz-db: build the community deletion lock key in Rust (#9396) fix(cli): pair for the active community, skip stopped desktops, accept a bare relay host (#9417) test(mobile): run push tests without a gateway dart-define (#9423) fix(mobile): never pop Home when archiving from channel settings (#9387) perf(acp): reduce observer CPU and lock overhead (#9381) Signed-off-by: Matthew Boston <[email protected]>
Summary
Mobile puts agent-created and shared Solo chats under Team because it checks who created the chat. Show unarchived Solo chats the viewer belongs to under Solo and exclude them from Team. Preserve membership checks, guest read-only access, legacy chats, and owner-only composing. This changes mobile classification; it needs no relay changes or data migration.
Desktop:

Mobile (missing solo chats created by agents):
Code Changes
Separate Solo list and unread classification from owner-only composing. Add regression coverage for shared and agent-created chats, Team exclusion, membership/archive filters, legacy chats, and ordinary sending from Solo.
Related issue
Related: #8963 adds mobile access controls and Solo sharing. This PR fixes the separate Solo/Team placement mismatch. No duplicate found in searches for mobile Solo issues and PRs.
Testing
Independent agent review found no blockers.
Device testing could not be completed. Android emulators stalled at launch, iOS Simulator sign-in was blocked, and iPhone installation required capabilities unavailable to the Personal Team. Shared Solo placement and sending remain unverified in an authenticated app; before/after screenshots remain pending.
Remaining manual checks:
Generated with Codex