Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 23 additions & 12 deletions docs/src/content/docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,12 +101,22 @@ configures the default backing for `create_subagent`; set `model = "disabled"`
| `subagents.progress_wake_minutes` | Minutes a primary parked on running subagents may go without a report before it is woken with their progress alone; default 20, `0` disables. Config file only |
| `voice_auto_send` | `off` (default), `two_seconds`, `four_seconds`, `six_seconds`, or `eight_seconds`; submit a recognized voice prompt after that much detected silence |

In an active primary session, model and reasoning-effort entries in `/mjconfig`
and the `/model` and `/effort` commands update the current ACP session without
a restart when the connected agent advertises the corresponding selectors;
changes made during a turn apply after it finishes. Team and ACP routing changes
still apply to a new session. A `max_parallel` above 16 is a configuration
error, not a silently clamped value.
Session settings follow one rule: a change made anywhere in mj applies to the
session it was made in, and only `/mjconfig` also changes the defaults that
new sessions start from. Concretely:

- `/model`, `/effort`, and the session-options picker update the current ACP
session in place (when the connected agent advertises the corresponding
selectors; changes made during a turn apply after it finishes). They are
session-local: nothing is written to the config file, and neither other
running sessions nor future sessions are affected.
- Saving `/mjconfig` updates the session it was opened from the same way, and
persists the chosen models and session options as the defaults for every
session started afterwards. Other running sessions are never touched.
- Team and ACP routing changes still apply to a new session.

A `max_parallel` above 16 is a configuration error, not a silently clamped
value.

Onboarding, the **Team** tab in `/mjconfig`, and **Shift+Tab** during a session
all offer the same four configurations:
Expand Down Expand Up @@ -254,12 +264,13 @@ between completed turns; disable them under **Appearance** or set

The **Agent**, **Reviewer**, and **Subagents** tabs list the selectable session
options advertised by that role's selected ACP source. Each role stores its
defaults separately. Compatible primary changes are also sent to the running
primary session when `/mjconfig` is saved; the UI calls out the active value
when it differs from the selected default. Team, reviewer, and subagent changes
apply only to sessions started later, never to ones that are already running. A
saved value that a newly selected adapter no longer advertises stays intact and
is shown as unavailable until you select a compatible value.
defaults separately. Saving `/mjconfig` sends compatible changes to the session
the panel was opened from — primary options directly, reviewer and subagent
routes via a reload — and the UI calls out the active value when it differs
from the selected default. Other running sessions keep the settings they have;
the saved defaults reach them only as new sessions start. A saved value that a
newly selected adapter no longer advertises stays intact and is shown as
unavailable until you select a compatible value.

The same role-scoped defaults can be written directly in TOML:

Expand Down
5 changes: 3 additions & 2 deletions mj-agents/src/subagent.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1086,7 +1086,6 @@ fn spawn_subagent_runtime(
mj_core::config::load_saved_session_config(
&mj_core::config::default_config_path(),
&role.adapter_source_id,
&role.model_id,
match config.usage_seat {
Seat::Primary => mj_core::config::SessionConfigSeat::Primary,
Seat::Subagent => mj_core::config::SessionConfigSeat::Subagent,
Expand Down Expand Up @@ -1114,8 +1113,10 @@ fn spawn_subagent_runtime(
fs_max_text_bytes: context.fs_max_text_bytes,
access_mode: context.access_mode,
agent_source_id,
config_path: Some(mj_core::config::default_config_path()),
saved_session_config,
// Delegated lanes are one-shot runtimes: every launch reloads the
// saved defaults above, and clear/new is never sent to them.
saved_session_config_reload: None,
role_config,
subagents: None,
memory,
Expand Down
Loading