Repository navigation
Keep Solo model and effort choices per chat - #2342
Conversation
88c8568 to
cc41e7a
Compare
cc41e7a to
03b33b1
Compare
8ae8b97 to
f72f031
Compare
f72f031 to
100d100
Compare
62c78ae to
f55e113
Compare
7ad429b to
5001c81
Compare
kalvinnchau
left a comment
There was a problem hiding this comment.
🤖 Cross-window preference state can regress after a completed save; details inline.
5001c81 to
717c9f1
Compare
|
Addressed the save-completion regression described in this review and its inline comments in 717c9f1: completion now rereads durable picks instead of adopting its historical result, retaining newer pending intent. The delayed-completion mounted test fails before this fix and verifies both the peer selection and actual send payload afterward. The recovery-lock coupling remains intentional and has a detailed retained-Retry/newer-work explanation in the inline reply. All five feedback threads now have individual dispositions and reopen invitations. Verification on this source: typecheck, 650 affected mounted tests, and 100 Chromium/WebKit browser repetitions passed on Blox. The earlier hosted WebKit failure is not attributed to the completion race; current-head CI remains pending. — Posted by Codex (gpt-6.1-sol) on behalf of kylez |
717c9f1 to
245ceca
Compare
kalvinnchau
left a comment
There was a problem hiding this comment.
🤖 One remaining persistence defect is evidenced by the current-head WebKit CI artifacts.
245ceca to
94d1c8b
Compare
94d1c8b to
a004b3c
Compare
kalvinnchau
left a comment
There was a problem hiding this comment.
🤖 Two remaining recovery/storage concerns are detailed inline.
Co-authored-by: Codex <noreply@openai.com> Signed-off-by: Kyle Zemek <kylez@squareup.com>
a004b3c to
6f87b11
Compare
Main's #2342 keeps model choices per Solo chat: an owner's composer sends once they load, and a first message passes its picks with its references. Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Logan Johnson <loganj@squareup.com>
…-nip-fi * origin/main: feat(inbox): preview recent Inbox activity when hovering the sidebar row (#2347) Add collapsible Solo and Team sidebar sections (#2296) fix(codex): open long Codex transcripts a page of items at a time (#2259) Keep Solo model and effort choices per chat (#2342) feat(sidebar): smooth channel reordering with bounded motion (#2108) Connect legacy agents from DMs and channel mentions (#2423) fix: exclude muted channels from sidebar unread scroll indicators (#2335) fix(claude-code): open long Claude transcripts a page at a time (#2428) feat(solo): share chats as view only (#2375) # Conflicts: # src/app/shell/PrimarySidebar.tsx
…-clone-auth-ab8b97 * origin/main: (38 commits) feat(identity): decide a missing backup choice from community membership (block#2378) Offer Builderlab decisions in FI builds (block#2227) feat(inbox): preview recent Inbox activity when hovering the sidebar row (block#2347) Add collapsible Solo and Team sidebar sections (block#2296) fix(codex): open long Codex transcripts a page of items at a time (block#2259) Keep Solo model and effort choices per chat (block#2342) feat(sidebar): smooth channel reordering with bounded motion (block#2108) Connect legacy agents from DMs and channel mentions (block#2423) fix: exclude muted channels from sidebar unread scroll indicators (block#2335) fix(claude-code): open long Claude transcripts a page at a time (block#2428) feat(solo): share chats as view only (block#2375) fix(inbox): show Solo responses under All, read live replies in the open conversation, describe toolbar badges (block#2275) AIDA-2434: Show saved teams in mentions (block#2339) AIDA-2455: Restore channel scrollbar dragging beside threads (block#2436) feat(agent-protection): show the owner why a protection provider denied input (block#2105) fix(search): show slow lookups beside their section headings (block#2442) Align Bestie DM layout and unread state; speed up thinking shimmer (block#2418) Send Claude, Pi and Goose history as exact records (block#2088) fix(agent-activity): align the stopped note and show it after the agent's reply (block#2441) fix(agents): stop orphaned Attention commands and prevent duplicate runs (block#2448) ... Signed-off-by: damienrj <damien@squareup.com>
* origin/main: (38 commits) fix(browser): load scheme-less address input over https, falling back to http (#2467) fix(identity): stop one-click key unlinks and show the linked backed-up key (#2486) fix(test): observe coordination transition events (#2297) fix(profiles): keep the next view's profile reads through a shrink (#2395) fix(channels): show Add and Send message errors above the Manage members list (#2421) fix(threads): keep reply hooks off agent activity bubbles (#2422) fix(channels): offer only Copy link in a not-joined preview's sidebar actions (#2425) test: scope row menu placement checks to active section rows (#2493) feat(relay): detach channel windows to a point in history (#2042) feat(identity): decide a missing backup choice from community membership (#2378) Offer Builderlab decisions in FI builds (#2227) feat(inbox): preview recent Inbox activity when hovering the sidebar row (#2347) Add collapsible Solo and Team sidebar sections (#2296) fix(codex): open long Codex transcripts a page of items at a time (#2259) Keep Solo model and effort choices per chat (#2342) feat(sidebar): smooth channel reordering with bounded motion (#2108) Connect legacy agents from DMs and channel mentions (#2423) fix: exclude muted channels from sidebar unread scroll indicators (#2335) fix(claude-code): open long Claude transcripts a page at a time (#2428) feat(solo): share chats as view only (#2375) ...
…r-load-perf * origin/main: (31 commits) test: fix invitation and coordination checks on main (#2517) perf(search): name searched people from the profile search response (#2353) Use the merge queue for pull requests that require it (#2452) fix(browser): load scheme-less address input over https, falling back to http (#2467) fix(identity): stop one-click key unlinks and show the linked backed-up key (#2486) fix(test): observe coordination transition events (#2297) fix(profiles): keep the next view's profile reads through a shrink (#2395) fix(channels): show Add and Send message errors above the Manage members list (#2421) fix(threads): keep reply hooks off agent activity bubbles (#2422) fix(channels): offer only Copy link in a not-joined preview's sidebar actions (#2425) test: scope row menu placement checks to active section rows (#2493) feat(relay): detach channel windows to a point in history (#2042) feat(identity): decide a missing backup choice from community membership (#2378) Offer Builderlab decisions in FI builds (#2227) feat(inbox): preview recent Inbox activity when hovering the sidebar row (#2347) Add collapsible Solo and Team sidebar sections (#2296) fix(codex): open long Codex transcripts a page of items at a time (#2259) Keep Solo model and effort choices per chat (#2342) feat(sidebar): smooth channel reordering with bounded motion (#2108) Connect legacy agents from DMs and channel mentions (#2423) ...
* origin/main: (31 commits) test: fix invitation and coordination checks on main (#2517) perf(search): name searched people from the profile search response (#2353) Use the merge queue for pull requests that require it (#2452) fix(browser): load scheme-less address input over https, falling back to http (#2467) fix(identity): stop one-click key unlinks and show the linked backed-up key (#2486) fix(test): observe coordination transition events (#2297) fix(profiles): keep the next view's profile reads through a shrink (#2395) fix(channels): show Add and Send message errors above the Manage members list (#2421) fix(threads): keep reply hooks off agent activity bubbles (#2422) fix(channels): offer only Copy link in a not-joined preview's sidebar actions (#2425) test: scope row menu placement checks to active section rows (#2493) feat(relay): detach channel windows to a point in history (#2042) feat(identity): decide a missing backup choice from community membership (#2378) Offer Builderlab decisions in FI builds (#2227) feat(inbox): preview recent Inbox activity when hovering the sidebar row (#2347) Add collapsible Solo and Team sidebar sections (#2296) fix(codex): open long Codex transcripts a page of items at a time (#2259) Keep Solo model and effort choices per chat (#2342) feat(sidebar): smooth channel reordering with bounded motion (#2108) Connect legacy agents from DMs and channel mentions (#2423) ... Signed-off-by: Michael Neale <michael.neale@gmail.com>
Main's #2342 keeps model choices per Solo chat: an owner's composer sends once they load, and a first message passes its picks with its references. Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Logan Johnson <loganj@squareup.com>
Main's #2342 keeps model choices per Solo chat: an owner's composer sends once they load, and a first message passes its picks with its references. Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Logan Johnson <loganj@squareup.com>
TL;DR
Solo chats retain explicit model and effort choices per chat and agent until Reset, including choices made before the first message. Untouched chats keep provider defaults.
Choices use a feature-owned IndexedDB transaction for read/merge/compare/write. The existing composer catalog, menus and scoped draft state remain their owners; no generic storage framework or second authoritative localStorage copy is added. IndexedDB is the sole authority: a missing row means no saved choice. This unreleased feature does not import earlier development-only localStorage bytes; those bytes remain untouched and non-authoritative. Scope cleanup shares the save/transfer ownership lock so an already-queued save cannot recreate deleted choices. Other windows are notified only after commit and reread the authoritative store.
Send waits for initial loading and pending-save acknowledgement. Failed reads offer Retry saved choices rather than silently using defaults; failed saves keep local intent. First-send transfer and refused-start restoration use ownership receipts, so a later edit or equal-value Reset is not overwritten. The existing toast retains the refused prompt, attachments and validated choices for Retry restoring message, including repeated ownership/storage failure.
Verification
Blox verified an uploaded content snapshot matching
6f87b1101d21f3071cf0a64ab0197ae1442a4429: typecheck, targeted lint, 622 tests across the three affected full files, and 14 browser cases across Chromium/WebKit (zero skipped/flaky). All six final changed-file hashes match the tested snapshot. Historicala004b3cdverified 709 tests across seven files plus design checks; those broader results are not claimed as a new-head run. These are content-snapshot checks, not claims that the candidate commit was checked out remotely. Pre-commit hooks ran; only duplicate types/tests/design/clippy pre-push jobs were skipped because required CI runs them. The verification box was deleted.The latest feedback regressions fail against
a004b3cdand pass with these fixes: a refused prompt-write reports the text-save cause, compensates prepared choices, and succeeds through Retry; fresh IDB initialization remains available when the unrelated localStorage read throws; and scope purge waits behind already-queued saves in both browser engines.The failed WebKit job was not dismissed as a flake: an owned amd64 trace showed the second Web Lock holder reading stale localStorage after the first writer committed, then replacing the durable map. The transactional repair preserves both agents in the unchanged two-page regression. Mounted tests cover pending/failed edits, Send commit barriers, unavailable types, navigation and refused-start recovery. The latest regressions preserve corrective edit errors during a saved-choice read failure and retain valid first-send choices when the catalog needs no selector. Both fail with their previous production behavior and pass with the fixes. Removing the later-Reset ownership guard produces the intended regression failure; the restored source passes.
Browser cases: four added, none removed versus the merge base; this feedback batch adds one and updates one. They cover keyboard/Escape/Reset/focus, actual cross-page commits/notifications, real IDB initialization/abort/first-send compare-clear custody, and Web Lock queue ordering for purge. These browser boundaries cannot be established by jsdom; lifecycle and failure permutations remain in mounted tests. Shared menus, Button, Toast and LoadingRegion are reused without new styling. Prior picker checks covered both themes, 360/1280px widths, normal/24px text, keyboard and pointer: before selection, selected choices.
Boundaries: Cooperation is within the same storage bucket, not older clients or separate profiles. Retry retention ends when this window reloads or its notice is dismissed; it is not crash recovery. Native simultaneous WKWebView/provider execution and full-chat runtime proof remain unverified. Earlier failed attempts and test-contamination evidence remain retained; passing repetitions do not establish that every browser failure is fixed. The separate JavaScript fixture failure was repaired on main by #2444; this branch includes that merged source, not an unmerged human patch.
Related
Fixes NEXUS-4155
This is native host Solo composer behavior, separate from plugin task setup and shared-channel default routing. It does not depend on #2306 or #1909.
Part of Nexus & Agent Tooling status.
Generated with Codex (gpt-6.1-sol, high) on behalf of kylez.