Repository navigation
acpmux: a new chat starts at the default, not the last mode picked in a running chat - #24021
Conversation
Leo 2026-10-21: "i think starting in full access is ok cuz the default for new chats != whatever u just temp set in an existing running chat"; "u can set default in other ways". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d18-a2fb-7ac0-84d5-432ffea53b8b&host=Air-Blue
… chat A pick applies to its own chat. Settings, MDM/team values and config.json defaultPermissionMode still set the default. A leftover lastPermissionMode from an older build is ignored. Leo-ask: ask-16f0b7197f Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d18-a2fb-7ac0-84d5-432ffea53b8b&host=Air-Blue
|
Owned by steer-default-3 on huge-blue · session |
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Gallery before/after for
States
Pick other states with a Pending: CI is running on Last result: Passes: CI passes on Written by red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on be82570 to compare; do not merge until green; see lane-rules |
|
Found 9 test failures on Blacksmith runners: Failures
|
|
Bead |
…lt-2/new-chat-default-mode # Conflicts: # webviews/test/agent-pane-start-mode-chip.test.ts
|
|
|
Review (Codex gpt-6.1-sol xhigh via acpmux, correctness first): SHIP at b44e728. One nit (no save-roundtrip assertion in the legacy-key test), not blocking. |
…fault-2/new-chat-default-mode
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
|
|
Orphaned: no activity for 13 h, and no lane holds a lease on it. The orphan sweep could not merge |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a175da-93d2-7310-8727-b20e1d89afe5&host=huge-blue
The merge dropped its only declaration with the saved-pick code; #25155's inherit path still skips a toggle mode such as plan. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a175da-93d2-7310-8727-b20e1d89afe5&host=huge-blue
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
|
The stamp comes from the PR autofix patch (run 40256227863), applied with pr-autofix-apply.sh; the docs reference from export-next-docs.ts --settings, which also picks up base's agentPane.display.environment.placement row. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a175da-93d2-7310-8727-b20e1d89afe5&host=huge-blue
The settings stamp conflict is resolved with defaults_guard.py source-stamp on the merged tree; the docs settings reference is regenerated with export-next-docs.ts --settings. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a175da-93d2-7310-8727-b20e1d89afe5&host=huge-blue
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
Review (codex gpt-6-astra xhigh): SHIP at 5353d57 No correctness findings. Earlier fixes are complete: Passed: diff checks, settings stamp validation, generated-reference comparison, and changed TypeScript parsing. Compilation, typechecking, and browser tests were not run on this head. The reported Cargo pass covers |
|
Shipped in:
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Ready. Codex (gpt-6.1-sol, xhigh) review: SHIP at b44e728.
Leo-ask: ask-16f0b7197f
Leo, 2026-10-21: "i think starting in full access is ok cuz the default for new chats != whatever u just temp set in an existing running chat" and "u can set default in other ways". (Earlier in the ask: "by default, we just want to be allowing tons of bullshit, right? ... That's the fucking ethos.")
Takes back #21734: its "latest choice wins" rule. A mode picked in a running chat became the start mode of every new chat (Lawrence 2026-10-14: "should always use the latest user selected one"). Leo now says a temporary pick in a running chat is not the default.
What changes
lastPermissionMode, and new chats no longer start from it.defaultPermissionMode, else theagents.defaultPermissionModesetting (default Full Access). Withsessions.allowFullAccessoff, full access still starts as Standard.cmux config set agents.defaultPermissionMode), MDM/team values pushed by the app, and acpmux config.jsondefaultPermissionMode. There is no other "set as default" action for the permission mode.lastPermissionModeleft in config.json by an older build is ignored. An oldstart-mode.jsonstill loads.Tests
tests/start_mode.rs:a_pick_in_a_chat_holds_for_that_chat_and_new_chats_start_in_the_default(replaces the latest-pick test); start-mode answer and watcher tests updated.tests/start_mode_settings.rs:a_last_permission_mode_an_older_build_saved_is_ignored(new); the settings-file test now checks that a pick changes only its chat; spent-pick test removed.webviews/test/agent-pane-start-mode-chip.test.ts: the chip shows the default, not another chat's pick.Command:
cmux-ci run --class light --script scripts/ci/cargo-test-selected.sh --arg=--manifest-path --arg=cmux-tui/Cargo.toml --arg=-p --arg=acpmux --arg=--test --arg=start_mode --arg=--test --arg=start_mode_settings --arg=--test --arg=full_access_setting --ref <sha>. The isolated fleet queue stalled for hours, so PR CI at the head is the evidence: the start_mode, start_mode_settings and full_access_setting tests pass there.Observed / Not run
settings-schema.jsonanddocs/mdmare left to the autofix.Base reds (warnings, not this PR)
remote_guard_codex_bridge(2 tests): the test config sets"permissionPolicy": "ask"and a new chat starts in full access, sorefuse_wider_mode(acpmux: a narrower policy holds on presets, resume, asides, handoffs and a deny-all default #23639, in base) refuses it. This PR does not touch the test,policy_mode.rsor the policy check.instructions_in_both_modes(MCP instructions length cap),prompt_redraw_fish_two_line(fish timed out waiting for a terminal reply) andserver_stop_uses_identify_fence: all in crates this PR does not touch.No capture: behaviour of the start mode plus one Settings help string; covered by the tests above.
Changelog
Changed: a mode you pick in a running chat no longer becomes the start mode of new chats; set the default in Settings.
Agent session: Air-Blue
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Takes back the "latest choice wins" rule: a mode picked in a running chat now applies to that chat only, and new chats start at the default instead of inheriting it.
defaultPermissionMode, or theagents.defaultPermissionModesetting (Full Access by default), as before.lastPermissionModesaved by an older build is ignored; an oldstart-mode.jsonstill loads.settings-schema.json, and MDM exports now describe the per-chat rule; the generated defaults stamp passes.Migration
lastPermissionModein config.json is simply ignored and dropped at the next save.Written for commit a2bb1e0. Summary will update on new commits.