Skip to content

feat(session): prompt code review reminder on multi-file mutations - #891

Merged
santhreal merged 19 commits into
mainfrom
feat/session-critique-code-mutations
Aug 25, 2026
Merged

feat(session): prompt code review reminder on multi-file mutations#891
santhreal merged 19 commits into
mainfrom
feat/session-critique-code-mutations

Conversation

@santhreal

@santhreal santhreal commented Aug 23, 2026

Copy link
Copy Markdown
Owner

What

edit.critiqueCodeMutations is an off-by-default Files setting. When enabled, a main-agent turn that changes at least two distinct code files receives one hidden review reminder before finalization. The reminder requests a cross-file correctness, maintainability, and boundary review; a concrete defect must be fixed before the session stops.

The feature has one setting key. The unused session.critiqueCodeMutations alias was removed.

Correctness audit

  • edit, write, direct ast_edit, and applied ast_edit resolutions contribute mutation evidence.
  • Successful files from a partially failed multi-file edit remain review candidates; failed and unapplied files do not.
  • Relative AST-edit paths resolve against the tool cwd. Normalized path identity prevents repeated calls or ./ variants from satisfying the two-file threshold twice.
  • Documentation, lockfiles, binary files, media, archives, and databases do not count as code-file mutations.
  • The prompt lists at most 24 paths, reports the exact omitted count, and XML-escapes hostile file names.
  • The reminder is single-shot per review set. One-file turns do not combine across unrelated user turns.
  • A question to the user defers delivery. The pending review survives the answer and fires at the next eligible settle instead of disappearing when the new user turn resets verification state.
  • Subagents remain exempt; the parent main agent is the review boundary.
  • The mutation-tool table is exhaustive in the implementation, regression suite, and benchmark. Adding a new member fails type checking until its result contract is classified.

Settings differential

Both frames were recorded from proof/scenes/code-review-reminder.sh at the same 131×36 terminal size. The off arm uses the schema default. The on arm was seeded before launch with SCENE_SETTINGS='edit.critiqueCodeMutations: true'.

Off — default is false

Post-Edit Code Review false

On — configured value is true

Post-Edit Code Review true

The frames differ byte-for-byte:

  • off: 07ae2ecd9847616141e286ed5670f65aa9e280ec12d1bd736ae4cd2c06b85dfb
  • on: 36be3b4fdcb86716317382b19d7ff799150955e08cf90c8abe8b632f3d1866e0

The pair proves the settings surface and seeded value. The committed scene continues into the two-file workflow; the executed end-to-end behavior proof is the scripted-provider simulation below. The recorder's local model service was unavailable for the later model turn, so no model-output frame is claimed as evidence.

Performance

Committed benchmark: packages/coding-agent/bench/code-review-reminder.bench.ts.

Same 32-mutation corpus, 1,000 iterations, 100 warmups:

arm total per settle
disabled baseline-compatible ledger 16.85 ms 0.016846 ms
enabled bounded selection + render 44.77 ms 0.044772 ms

Enabled delivery added 27.93 µs per settle. The disabled arm executes the same pre-existing mutation-ledger work and skips review selection/rendering.

Verification

  • Focused sandbox suite: 143 passed, 0 failed, 2,738 assertions across seven files.
  • Production session simulation proves the held reminder fires after the user answers and terminates after one continuation.
  • All three mutation tools, applied resolutions, partial failures, normalized duplicates, hostile names, path bounds, snapshot state, defaults, enabled behavior, and the subagent boundary are covered.
  • Mutation gate: 9/9 mutations caught — threshold, question deferral, path normalization, XML escaping, path cap, partial success, tool exhaustiveness, default value, and subagent exemption. Every source file was restored byte-for-byte.
  • bun run check passed TypeScript and Rust checks.
  • bun run check:tools passed.
  • CHANGELOG_BASE=origin/main bun run changelog:check passed.
  • bun run changelog:root:check passed.
  • Settings-reference generation/coherence and built-handbook contract tests passed.
  • bun scripts/verify-scene.ts code-review-reminder passed.
  • Native addon build completed for local proof execution.
  • git diff --check passed.

@santhreal

Copy link
Copy Markdown
Owner Author

/devin review

@devin-ai-integration

Copy link
Copy Markdown

Starting Devin Review.

Open in Devin Review

@coderabbitai

coderabbitai Bot commented Aug 23, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 143 files, which is 43 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 3ea0f7eb-8c10-44e3-a7d0-0d34ee6e5234

📥 Commits

Reviewing files that changed from the base of the PR and between d0729f4 and a325677.

⛔ Files ignored due to path filters (1)
  • packages/coding-agent/src/prompts/ids.generated.ts is excluded by !**/*.generated.*
📒 Files selected for processing (143)
  • CHANGELOG.md
  • docs/handbook/book/404.html
  • docs/handbook/book/acknowledgements.html
  • docs/handbook/book/appendix/glossary.html
  • docs/handbook/book/architecture/compaction.html
  • docs/handbook/book/architecture/config.html
  • docs/handbook/book/architecture/mcp.html
  • docs/handbook/book/architecture/memory.html
  • docs/handbook/book/architecture/overview.html
  • docs/handbook/book/architecture/providers.html
  • docs/handbook/book/architecture/sandbox.html
  • docs/handbook/book/architecture/secrets.html
  • docs/handbook/book/architecture/session-turn.html
  • docs/handbook/book/architecture/tui.html
  • docs/handbook/book/concepts/index.html
  • docs/handbook/book/concepts/model-contract.html
  • docs/handbook/book/concepts/permission-model.html
  • docs/handbook/book/concepts/sessions-turns-threads.html
  • docs/handbook/book/context/compaction-memory.html
  • docs/handbook/book/context/context-files.html
  • docs/handbook/book/context/goal-state.html
  • docs/handbook/book/context/reads-search.html
  • docs/handbook/book/edit/edit-repair.html
  • docs/handbook/book/edit/engine.html
  • docs/handbook/book/edit/roadmap.html
  • docs/handbook/book/features/advisor.html
  • docs/handbook/book/features/branching.html
  • docs/handbook/book/features/cockpit.html
  • docs/handbook/book/features/collab.html
  • docs/handbook/book/features/connectors.html
  • docs/handbook/book/features/cpu-limit.html
  • docs/handbook/book/features/doctor.html
  • docs/handbook/book/features/exec.html
  • docs/handbook/book/features/export-import.html
  • docs/handbook/book/features/extensions-authoring.html
  • docs/handbook/book/features/extensions.html
  • docs/handbook/book/features/feature-flags.html
  • docs/handbook/book/features/hooks-authoring.html
  • docs/handbook/book/features/hooks.html
  • docs/handbook/book/features/index.html
  • docs/handbook/book/features/keybindings.html
  • docs/handbook/book/features/lsp.html
  • docs/handbook/book/features/marketplace-authoring.html
  • docs/handbook/book/features/marketplace.html
  • docs/handbook/book/features/mcp.html
  • docs/handbook/book/features/memory.html
  • docs/handbook/book/features/personalities.html
  • docs/handbook/book/features/plan-mode.html
  • docs/handbook/book/features/plugins.html
  • docs/handbook/book/features/profiles.html
  • docs/handbook/book/features/python-repl.html
  • docs/handbook/book/features/review.html
  • docs/handbook/book/features/sandbox.html
  • docs/handbook/book/features/secrets.html
  • docs/handbook/book/features/skills-authoring.html
  • docs/handbook/book/features/skills.html
  • docs/handbook/book/features/speech.html
  • docs/handbook/book/features/subagents.html
  • docs/handbook/book/features/web-search.html
  • docs/handbook/book/foundations/architecture.html
  • docs/handbook/book/foundations/thesis.html
  • docs/handbook/book/foundations/verification.html
  • docs/handbook/book/index.html
  • docs/handbook/book/introduction.html
  • docs/handbook/book/models/prompts.html
  • docs/handbook/book/models/providers.html
  • docs/handbook/book/models/system-prompt.html
  • docs/handbook/book/observability/overview.html
  • docs/handbook/book/print.html
  • docs/handbook/book/reference/approval-mode.html
  • docs/handbook/book/reference/cli.html
  • docs/handbook/book/reference/environment-complete.html
  • docs/handbook/book/reference/environment.html
  • docs/handbook/book/reference/exit-codes.html
  • docs/handbook/book/reference/file-locations.html
  • docs/handbook/book/reference/hooks.html
  • docs/handbook/book/reference/index.html
  • docs/handbook/book/reference/keybindings-config.html
  • docs/handbook/book/reference/keybindings-ref.html
  • docs/handbook/book/reference/mcp-config.html
  • docs/handbook/book/reference/models-yml.html
  • docs/handbook/book/reference/project-trust.html
  • docs/handbook/book/reference/providers.html
  • docs/handbook/book/reference/rpc.html
  • docs/handbook/book/reference/sdk.html
  • docs/handbook/book/reference/settings-reference.html
  • docs/handbook/book/reference/settings.html
  • docs/handbook/book/reference/skills.html
  • docs/handbook/book/reference/slash-commands.html
  • docs/handbook/book/reference/theme.html
  • docs/handbook/book/reference/tools.html
  • docs/handbook/book/reference/tree-command.html
  • docs/handbook/book/repair/cascade.html
  • docs/handbook/book/repair/overview.html
  • docs/handbook/book/repair/per-model.html
  • docs/handbook/book/repair/soundness.html
  • docs/handbook/book/router/role-routing.html
  • docs/handbook/book/searcher-c2a407aa.js
  • docs/handbook/book/searchindex-0b0cf1d7.js
  • docs/handbook/book/searchindex-d6d82126.js
  • docs/handbook/book/using/authentication.html
  • docs/handbook/book/using/configuration.html
  • docs/handbook/book/using/configuring-providers.html
  • docs/handbook/book/using/custom-tools.html
  • docs/handbook/book/using/editing.html
  • docs/handbook/book/using/examples.html
  • docs/handbook/book/using/extending.html
  • docs/handbook/book/using/faq.html
  • docs/handbook/book/using/getting-started.html
  • docs/handbook/book/using/install.html
  • docs/handbook/book/using/mcp-setup.html
  • docs/handbook/book/using/migration-guide.html
  • docs/handbook/book/using/models.html
  • docs/handbook/book/using/quickstart.html
  • docs/handbook/book/using/roles-and-profiles.html
  • docs/handbook/book/using/safety.html
  • docs/handbook/book/using/sessions.html
  • docs/handbook/book/using/task-guides.html
  • docs/handbook/book/using/themes.html
  • docs/handbook/book/using/troubleshooting.html
  • docs/handbook/book/why/argot.html
  • docs/handbook/book/why/index.html
  • docs/handbook/book/why/innovations.html
  • docs/handbook/book/why/performance.html
  • docs/handbook/book/why/value.html
  • docs/handbook/src/reference/settings-reference.md
  • docs/handbook/src/reference/settings.md
  • packages/coding-agent/CHANGELOG.md
  • packages/coding-agent/bench/code-review-reminder.bench.ts
  • packages/coding-agent/src/config/settings-domains/editing.ts
  • packages/coding-agent/src/modes/components/status-line/quiet-bounds.test.ts
  • packages/coding-agent/src/prompts/session/code-review-reminder.md
  • packages/coding-agent/src/prompts/session/rows.ts
  • packages/coding-agent/src/session/agent-session.ts
  • packages/coding-agent/src/session/settle-continuation.ts
  • packages/coding-agent/src/session/verification-evidence-ledger.ts
  • packages/coding-agent/test/agent-session-verification-evidence.test.ts
  • packages/coding-agent/test/core/prompt-registry-coverage.test.ts
  • packages/coding-agent/test/multi-file-code-mutations-receive-one-review-before-finalization.test.ts
  • packages/coding-agent/test/session/a-question-to-the-user-ends-the-turn.test.ts
  • packages/simulations/src/turn-sim/who-may-rewake-the-agent.test.ts
  • packages/tui/test/latex-fuzz.test.ts
  • proof/scenes/code-review-reminder.sh

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

/devin review

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 4 potential issues.

Open in Devin Review

Comment on lines +87 to +97
"edit.critiqueCodeMutations": {
type: "boolean",
default: false,
ui: {
tab: "files",
group: "Editing",
label: "Post-Edit Code Review",
description:
"Prompt the model to review multi-file code changes for correctness, maintainability, and idioms before finalizing",
},
},

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Feature ships without required demo scene or bench

AGENTS.md requires every user-facing feature to land with a committed proof/scenes/ demo and a bench, or else state in its settings group that it cannot meet the bar and carry a backlog row. This new toggle adds neither. proof/scenes/ has no scene for it, and no exemption note is present.

Prompt for agents
AGENTS.md (section 'Proving a feature (the 10-minute rule)') mandates that a user-facing feature land with: (1) a committed demo under proof/scenes/ driving the feature off vs on, (2) a settings differential in the PR body, and (3) a committed bench with exact parity. The new edit.critiqueCodeMutations / session.critiqueCodeMutations toggle is user-facing (it appears in the Files/Editing settings group and changes turn-finalization behavior) but no proof/scenes/ scene or bench was added. Either add the demo scene and bench and the settings differential, or, if the feature cannot meet the bar, mark that in its settings group and add a backlog row for the missing proof as the rule allows.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment on lines +286 to +308
takeCodeReviewReminder(): string | undefined {
if (this.#intervenedCodeReviewThisTurn) return undefined;
const turnMutations = this.#mutations.filter(m => m.sequence > this.#turnStartedAtSequence);
if (turnMutations.length === 0) return undefined;

const distinctCodePaths: string[] = [];
const seen = new Set<string>();
for (const mutation of turnMutations) {
for (const path of mutation.paths) {
if (isCodeFile(path) && !seen.has(path)) {
seen.add(path);
distinctCodePaths.push(path);
}
}
}

if (distinctCodePaths.length < 2) return undefined;

this.#intervenedCodeReviewThisTurn = true;
return prompt.render(sessionPrompts["session/code-review-reminder"].text, {
pathsMarkdown: distinctCodePaths.map(path => `- ${path}`).join("\n"),
});
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 Info: Reminder fires once per user turn, no loop

The code-review reminder is single-shot via #intervenedCodeReviewThisTurn. startUserTurn() resets it only on user-initiated prompts (agent-session.ts:10766); the reminder's own continuation is synthetic and does not reset it, so no re-fire loop. Snapshot/restore preserve the flag.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment on lines +6332 to +6335
if (mayContinueAtSettle("code-review", settleState) && this.#enforceCodeReviewBeforeFinalize()) {
await emitAgentEndNotification();
return;
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Two sequential nudges when both apply

A turn editing >=2 code files with no proof runs the verification nudge first (agent-session.ts:6328), returns, then the code-review nudge on a later settle (agent-session.ts:6332), since each enforcer returns early. The model gets two sequential hidden continuations before finalizing. Confirm the double nudge is intended.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment on lines +48 to +56
export function isCodeFile(filePath: string): boolean {
const normalized = filePath.replace(/\\/g, "/");
const basename = normalized.split("/").pop()?.toLowerCase() ?? "";
if (NON_CODE_FILENAMES[basename]) return false;
const dotIndex = basename.lastIndexOf(".");
if (dotIndex <= 0) return true;
const ext = basename.slice(dotIndex);
return !NON_CODE_EXTENSIONS[ext];
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 Info: Config/data files count as code

isCodeFile excludes only doc extensions and a fixed lockfile/metadata name set, so tsconfig.json, config.yaml, or *.toml are treated as code. Editing two such files triggers the reminder. Likely intended given the exclusion list, but non-source config edits can trip it.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

…-code-mutations

# Conflicts:
#	docs/handbook/book/404.html
#	docs/handbook/book/acknowledgements.html
#	docs/handbook/book/appendix/glossary.html
#	docs/handbook/book/architecture/compaction.html
#	docs/handbook/book/architecture/config.html
#	docs/handbook/book/architecture/mcp.html
#	docs/handbook/book/architecture/memory.html
#	docs/handbook/book/architecture/overview.html
#	docs/handbook/book/architecture/providers.html
#	docs/handbook/book/architecture/sandbox.html
#	docs/handbook/book/architecture/secrets.html
#	docs/handbook/book/architecture/session-turn.html
#	docs/handbook/book/architecture/tui.html
#	docs/handbook/book/concepts/index.html
#	docs/handbook/book/concepts/model-contract.html
#	docs/handbook/book/concepts/permission-model.html
#	docs/handbook/book/concepts/sessions-turns-threads.html
#	docs/handbook/book/context/compaction-memory.html
#	docs/handbook/book/context/context-files.html
#	docs/handbook/book/context/goal-state.html
#	docs/handbook/book/context/reads-search.html
#	docs/handbook/book/edit/edit-repair.html
#	docs/handbook/book/edit/engine.html
#	docs/handbook/book/edit/roadmap.html
#	docs/handbook/book/features/advisor.html
#	docs/handbook/book/features/branching.html
#	docs/handbook/book/features/cockpit.html
#	docs/handbook/book/features/collab.html
#	docs/handbook/book/features/connectors.html
#	docs/handbook/book/features/cpu-limit.html
#	docs/handbook/book/features/doctor.html
#	docs/handbook/book/features/exec.html
#	docs/handbook/book/features/export-import.html
#	docs/handbook/book/features/extensions-authoring.html
#	docs/handbook/book/features/extensions.html
#	docs/handbook/book/features/feature-flags.html
#	docs/handbook/book/features/hooks-authoring.html
#	docs/handbook/book/features/hooks.html
#	docs/handbook/book/features/index.html
#	docs/handbook/book/features/keybindings.html
#	docs/handbook/book/features/lsp.html
#	docs/handbook/book/features/marketplace-authoring.html
#	docs/handbook/book/features/marketplace.html
#	docs/handbook/book/features/mcp.html
#	docs/handbook/book/features/memory.html
#	docs/handbook/book/features/personalities.html
#	docs/handbook/book/features/plan-mode.html
#	docs/handbook/book/features/plugins.html
#	docs/handbook/book/features/profiles.html
#	docs/handbook/book/features/python-repl.html
#	docs/handbook/book/features/review.html
#	docs/handbook/book/features/sandbox.html
#	docs/handbook/book/features/secrets.html
#	docs/handbook/book/features/skills-authoring.html
#	docs/handbook/book/features/skills.html
#	docs/handbook/book/features/speech.html
#	docs/handbook/book/features/subagents.html
#	docs/handbook/book/features/web-search.html
#	docs/handbook/book/foundations/architecture.html
#	docs/handbook/book/foundations/thesis.html
#	docs/handbook/book/foundations/verification.html
#	docs/handbook/book/index.html
#	docs/handbook/book/introduction.html
#	docs/handbook/book/models/prompts.html
#	docs/handbook/book/models/providers.html
#	docs/handbook/book/models/system-prompt.html
#	docs/handbook/book/observability/overview.html
#	docs/handbook/book/print.html
#	docs/handbook/book/reference/approval-mode.html
#	docs/handbook/book/reference/cli.html
#	docs/handbook/book/reference/environment-complete.html
#	docs/handbook/book/reference/environment.html
#	docs/handbook/book/reference/exit-codes.html
#	docs/handbook/book/reference/file-locations.html
#	docs/handbook/book/reference/hooks.html
#	docs/handbook/book/reference/index.html
#	docs/handbook/book/reference/keybindings-config.html
#	docs/handbook/book/reference/keybindings-ref.html
#	docs/handbook/book/reference/mcp-config.html
#	docs/handbook/book/reference/models-yml.html
#	docs/handbook/book/reference/project-trust.html
#	docs/handbook/book/reference/providers.html
#	docs/handbook/book/reference/rpc.html
#	docs/handbook/book/reference/sdk.html
#	docs/handbook/book/reference/settings-reference.html
#	docs/handbook/book/reference/settings.html
#	docs/handbook/book/reference/skills.html
#	docs/handbook/book/reference/slash-commands.html
#	docs/handbook/book/reference/theme.html
#	docs/handbook/book/reference/tools.html
#	docs/handbook/book/reference/tree-command.html
#	docs/handbook/book/repair/cascade.html
#	docs/handbook/book/repair/overview.html
#	docs/handbook/book/repair/per-model.html
#	docs/handbook/book/repair/soundness.html
#	docs/handbook/book/router/role-routing.html
#	docs/handbook/book/searcher-c2a407aa.js
#	docs/handbook/book/searchindex-abb5237d.js
#	docs/handbook/book/using/authentication.html
#	docs/handbook/book/using/configuration.html
#	docs/handbook/book/using/configuring-providers.html
#	docs/handbook/book/using/custom-tools.html
#	docs/handbook/book/using/editing.html
#	docs/handbook/book/using/examples.html
#	docs/handbook/book/using/extending.html
#	docs/handbook/book/using/faq.html
#	docs/handbook/book/using/getting-started.html
#	docs/handbook/book/using/install.html
#	docs/handbook/book/using/mcp-setup.html
#	docs/handbook/book/using/migration-guide.html
#	docs/handbook/book/using/models.html
#	docs/handbook/book/using/quickstart.html
#	docs/handbook/book/using/roles-and-profiles.html
#	docs/handbook/book/using/safety.html
#	docs/handbook/book/using/sessions.html
#	docs/handbook/book/using/task-guides.html
#	docs/handbook/book/using/themes.html
#	docs/handbook/book/using/troubleshooting.html
#	docs/handbook/book/why/argot.html
#	docs/handbook/book/why/index.html
#	docs/handbook/book/why/innovations.html
#	docs/handbook/book/why/performance.html
#	docs/handbook/book/why/value.html
…-code-mutations

# Conflicts:
#	docs/handbook/book/404.html
#	docs/handbook/book/acknowledgements.html
#	docs/handbook/book/appendix/glossary.html
#	docs/handbook/book/architecture/compaction.html
#	docs/handbook/book/architecture/config.html
#	docs/handbook/book/architecture/mcp.html
#	docs/handbook/book/architecture/memory.html
#	docs/handbook/book/architecture/overview.html
#	docs/handbook/book/architecture/providers.html
#	docs/handbook/book/architecture/sandbox.html
#	docs/handbook/book/architecture/secrets.html
#	docs/handbook/book/architecture/session-turn.html
#	docs/handbook/book/architecture/tui.html
#	docs/handbook/book/concepts/index.html
#	docs/handbook/book/concepts/model-contract.html
#	docs/handbook/book/concepts/permission-model.html
#	docs/handbook/book/concepts/sessions-turns-threads.html
#	docs/handbook/book/context/compaction-memory.html
#	docs/handbook/book/context/context-files.html
#	docs/handbook/book/context/goal-state.html
#	docs/handbook/book/context/reads-search.html
#	docs/handbook/book/edit/edit-repair.html
#	docs/handbook/book/edit/engine.html
#	docs/handbook/book/edit/roadmap.html
#	docs/handbook/book/features/advisor.html
#	docs/handbook/book/features/branching.html
#	docs/handbook/book/features/cockpit.html
#	docs/handbook/book/features/collab.html
#	docs/handbook/book/features/connectors.html
#	docs/handbook/book/features/cpu-limit.html
#	docs/handbook/book/features/doctor.html
#	docs/handbook/book/features/exec.html
#	docs/handbook/book/features/export-import.html
#	docs/handbook/book/features/extensions-authoring.html
#	docs/handbook/book/features/extensions.html
#	docs/handbook/book/features/feature-flags.html
#	docs/handbook/book/features/hooks-authoring.html
#	docs/handbook/book/features/hooks.html
#	docs/handbook/book/features/index.html
#	docs/handbook/book/features/keybindings.html
#	docs/handbook/book/features/lsp.html
#	docs/handbook/book/features/marketplace-authoring.html
#	docs/handbook/book/features/marketplace.html
#	docs/handbook/book/features/mcp.html
#	docs/handbook/book/features/memory.html
#	docs/handbook/book/features/personalities.html
#	docs/handbook/book/features/plan-mode.html
#	docs/handbook/book/features/plugins.html
#	docs/handbook/book/features/profiles.html
#	docs/handbook/book/features/python-repl.html
#	docs/handbook/book/features/review.html
#	docs/handbook/book/features/sandbox.html
#	docs/handbook/book/features/secrets.html
#	docs/handbook/book/features/skills-authoring.html
#	docs/handbook/book/features/skills.html
#	docs/handbook/book/features/speech.html
#	docs/handbook/book/features/subagents.html
#	docs/handbook/book/features/web-search.html
#	docs/handbook/book/foundations/architecture.html
#	docs/handbook/book/foundations/thesis.html
#	docs/handbook/book/foundations/verification.html
#	docs/handbook/book/index.html
#	docs/handbook/book/introduction.html
#	docs/handbook/book/models/prompts.html
#	docs/handbook/book/models/providers.html
#	docs/handbook/book/models/system-prompt.html
#	docs/handbook/book/observability/overview.html
#	docs/handbook/book/print.html
#	docs/handbook/book/reference/approval-mode.html
#	docs/handbook/book/reference/cli.html
#	docs/handbook/book/reference/environment-complete.html
#	docs/handbook/book/reference/environment.html
#	docs/handbook/book/reference/exit-codes.html
#	docs/handbook/book/reference/file-locations.html
#	docs/handbook/book/reference/hooks.html
#	docs/handbook/book/reference/index.html
#	docs/handbook/book/reference/keybindings-config.html
#	docs/handbook/book/reference/keybindings-ref.html
#	docs/handbook/book/reference/mcp-config.html
#	docs/handbook/book/reference/models-yml.html
#	docs/handbook/book/reference/project-trust.html
#	docs/handbook/book/reference/providers.html
#	docs/handbook/book/reference/rpc.html
#	docs/handbook/book/reference/sdk.html
#	docs/handbook/book/reference/settings-reference.html
#	docs/handbook/book/reference/settings.html
#	docs/handbook/book/reference/skills.html
#	docs/handbook/book/reference/slash-commands.html
#	docs/handbook/book/reference/theme.html
#	docs/handbook/book/reference/tools.html
#	docs/handbook/book/reference/tree-command.html
#	docs/handbook/book/repair/cascade.html
#	docs/handbook/book/repair/overview.html
#	docs/handbook/book/repair/per-model.html
#	docs/handbook/book/repair/soundness.html
#	docs/handbook/book/router/role-routing.html
#	docs/handbook/book/searcher-c2a407aa.js
#	docs/handbook/book/using/authentication.html
#	docs/handbook/book/using/configuration.html
#	docs/handbook/book/using/configuring-providers.html
#	docs/handbook/book/using/custom-tools.html
#	docs/handbook/book/using/editing.html
#	docs/handbook/book/using/examples.html
#	docs/handbook/book/using/extending.html
#	docs/handbook/book/using/faq.html
#	docs/handbook/book/using/getting-started.html
#	docs/handbook/book/using/install.html
#	docs/handbook/book/using/mcp-setup.html
#	docs/handbook/book/using/migration-guide.html
#	docs/handbook/book/using/models.html
#	docs/handbook/book/using/quickstart.html
#	docs/handbook/book/using/roles-and-profiles.html
#	docs/handbook/book/using/safety.html
#	docs/handbook/book/using/sessions.html
#	docs/handbook/book/using/task-guides.html
#	docs/handbook/book/using/themes.html
#	docs/handbook/book/using/troubleshooting.html
#	docs/handbook/book/why/argot.html
#	docs/handbook/book/why/index.html
#	docs/handbook/book/why/innovations.html
#	docs/handbook/book/why/performance.html
#	docs/handbook/book/why/value.html
… this turn

A pending reminder deliberately survives a user answer, so the paths it lists
can predate the turn it arrives in. Saying "applied this turn" states
something the state contradicts in exactly the case the deferral exists for.

Refs #891
…-code-mutations

# Conflicts:
#	docs/handbook/book/404.html
#	docs/handbook/book/acknowledgements.html
#	docs/handbook/book/appendix/glossary.html
#	docs/handbook/book/architecture/compaction.html
#	docs/handbook/book/architecture/config.html
#	docs/handbook/book/architecture/mcp.html
#	docs/handbook/book/architecture/memory.html
#	docs/handbook/book/architecture/overview.html
#	docs/handbook/book/architecture/providers.html
#	docs/handbook/book/architecture/sandbox.html
#	docs/handbook/book/architecture/secrets.html
#	docs/handbook/book/architecture/session-turn.html
#	docs/handbook/book/architecture/tui.html
#	docs/handbook/book/concepts/index.html
#	docs/handbook/book/concepts/model-contract.html
#	docs/handbook/book/concepts/permission-model.html
#	docs/handbook/book/concepts/sessions-turns-threads.html
#	docs/handbook/book/context/compaction-memory.html
#	docs/handbook/book/context/context-files.html
#	docs/handbook/book/context/goal-state.html
#	docs/handbook/book/context/reads-search.html
#	docs/handbook/book/edit/edit-repair.html
#	docs/handbook/book/edit/engine.html
#	docs/handbook/book/edit/roadmap.html
#	docs/handbook/book/features/advisor.html
#	docs/handbook/book/features/branching.html
#	docs/handbook/book/features/cockpit.html
#	docs/handbook/book/features/collab.html
#	docs/handbook/book/features/connectors.html
#	docs/handbook/book/features/cpu-limit.html
#	docs/handbook/book/features/doctor.html
#	docs/handbook/book/features/exec.html
#	docs/handbook/book/features/export-import.html
#	docs/handbook/book/features/extensions-authoring.html
#	docs/handbook/book/features/extensions.html
#	docs/handbook/book/features/feature-flags.html
#	docs/handbook/book/features/hooks-authoring.html
#	docs/handbook/book/features/hooks.html
#	docs/handbook/book/features/index.html
#	docs/handbook/book/features/keybindings.html
#	docs/handbook/book/features/lsp.html
#	docs/handbook/book/features/marketplace-authoring.html
#	docs/handbook/book/features/marketplace.html
#	docs/handbook/book/features/mcp.html
#	docs/handbook/book/features/memory.html
#	docs/handbook/book/features/personalities.html
#	docs/handbook/book/features/plan-mode.html
#	docs/handbook/book/features/plugins.html
#	docs/handbook/book/features/profiles.html
#	docs/handbook/book/features/python-repl.html
#	docs/handbook/book/features/review.html
#	docs/handbook/book/features/sandbox.html
#	docs/handbook/book/features/secrets.html
#	docs/handbook/book/features/skills-authoring.html
#	docs/handbook/book/features/skills.html
#	docs/handbook/book/features/speech.html
#	docs/handbook/book/features/subagents.html
#	docs/handbook/book/features/web-search.html
#	docs/handbook/book/foundations/architecture.html
#	docs/handbook/book/foundations/thesis.html
#	docs/handbook/book/foundations/verification.html
#	docs/handbook/book/index.html
#	docs/handbook/book/introduction.html
#	docs/handbook/book/models/prompts.html
#	docs/handbook/book/models/providers.html
#	docs/handbook/book/models/system-prompt.html
#	docs/handbook/book/observability/overview.html
#	docs/handbook/book/print.html
#	docs/handbook/book/reference/approval-mode.html
#	docs/handbook/book/reference/cli.html
#	docs/handbook/book/reference/environment-complete.html
#	docs/handbook/book/reference/environment.html
#	docs/handbook/book/reference/exit-codes.html
#	docs/handbook/book/reference/file-locations.html
#	docs/handbook/book/reference/hooks.html
#	docs/handbook/book/reference/index.html
#	docs/handbook/book/reference/keybindings-config.html
#	docs/handbook/book/reference/keybindings-ref.html
#	docs/handbook/book/reference/mcp-config.html
#	docs/handbook/book/reference/models-yml.html
#	docs/handbook/book/reference/project-trust.html
#	docs/handbook/book/reference/providers.html
#	docs/handbook/book/reference/rpc.html
#	docs/handbook/book/reference/sdk.html
#	docs/handbook/book/reference/settings-reference.html
#	docs/handbook/book/reference/settings.html
#	docs/handbook/book/reference/skills.html
#	docs/handbook/book/reference/slash-commands.html
#	docs/handbook/book/reference/theme.html
#	docs/handbook/book/reference/tools.html
#	docs/handbook/book/reference/tree-command.html
#	docs/handbook/book/repair/cascade.html
#	docs/handbook/book/repair/overview.html
#	docs/handbook/book/repair/per-model.html
#	docs/handbook/book/repair/soundness.html
#	docs/handbook/book/router/role-routing.html
#	docs/handbook/book/searcher-c2a407aa.js
#	docs/handbook/book/searchindex-f272b308.js
#	docs/handbook/book/using/authentication.html
#	docs/handbook/book/using/configuration.html
#	docs/handbook/book/using/configuring-providers.html
#	docs/handbook/book/using/custom-tools.html
#	docs/handbook/book/using/editing.html
#	docs/handbook/book/using/examples.html
#	docs/handbook/book/using/extending.html
#	docs/handbook/book/using/faq.html
#	docs/handbook/book/using/getting-started.html
#	docs/handbook/book/using/install.html
#	docs/handbook/book/using/mcp-setup.html
#	docs/handbook/book/using/migration-guide.html
#	docs/handbook/book/using/models.html
#	docs/handbook/book/using/quickstart.html
#	docs/handbook/book/using/roles-and-profiles.html
#	docs/handbook/book/using/safety.html
#	docs/handbook/book/using/sessions.html
#	docs/handbook/book/using/task-guides.html
#	docs/handbook/book/using/themes.html
#	docs/handbook/book/using/troubleshooting.html
#	docs/handbook/book/why/argot.html
#	docs/handbook/book/why/index.html
#	docs/handbook/book/why/innovations.html
#	docs/handbook/book/why/performance.html
#	docs/handbook/book/why/value.html
…-code-mutations

# Conflicts:
#	docs/handbook/book/404.html
#	docs/handbook/book/acknowledgements.html
#	docs/handbook/book/appendix/glossary.html
#	docs/handbook/book/architecture/compaction.html
#	docs/handbook/book/architecture/config.html
#	docs/handbook/book/architecture/mcp.html
#	docs/handbook/book/architecture/memory.html
#	docs/handbook/book/architecture/overview.html
#	docs/handbook/book/architecture/providers.html
#	docs/handbook/book/architecture/sandbox.html
#	docs/handbook/book/architecture/secrets.html
#	docs/handbook/book/architecture/session-turn.html
#	docs/handbook/book/architecture/tui.html
#	docs/handbook/book/concepts/index.html
#	docs/handbook/book/concepts/model-contract.html
#	docs/handbook/book/concepts/permission-model.html
#	docs/handbook/book/concepts/sessions-turns-threads.html
#	docs/handbook/book/context/compaction-memory.html
#	docs/handbook/book/context/context-files.html
#	docs/handbook/book/context/goal-state.html
#	docs/handbook/book/context/reads-search.html
#	docs/handbook/book/edit/edit-repair.html
#	docs/handbook/book/edit/engine.html
#	docs/handbook/book/edit/roadmap.html
#	docs/handbook/book/features/advisor.html
#	docs/handbook/book/features/branching.html
#	docs/handbook/book/features/cockpit.html
#	docs/handbook/book/features/collab.html
#	docs/handbook/book/features/connectors.html
#	docs/handbook/book/features/cpu-limit.html
#	docs/handbook/book/features/doctor.html
#	docs/handbook/book/features/exec.html
#	docs/handbook/book/features/export-import.html
#	docs/handbook/book/features/extensions-authoring.html
#	docs/handbook/book/features/extensions.html
#	docs/handbook/book/features/feature-flags.html
#	docs/handbook/book/features/hooks-authoring.html
#	docs/handbook/book/features/hooks.html
#	docs/handbook/book/features/index.html
#	docs/handbook/book/features/keybindings.html
#	docs/handbook/book/features/lsp.html
#	docs/handbook/book/features/marketplace-authoring.html
#	docs/handbook/book/features/marketplace.html
#	docs/handbook/book/features/mcp.html
#	docs/handbook/book/features/memory.html
#	docs/handbook/book/features/personalities.html
#	docs/handbook/book/features/plan-mode.html
#	docs/handbook/book/features/plugins.html
#	docs/handbook/book/features/profiles.html
#	docs/handbook/book/features/python-repl.html
#	docs/handbook/book/features/review.html
#	docs/handbook/book/features/sandbox.html
#	docs/handbook/book/features/secrets.html
#	docs/handbook/book/features/skills-authoring.html
#	docs/handbook/book/features/skills.html
#	docs/handbook/book/features/speech.html
#	docs/handbook/book/features/subagents.html
#	docs/handbook/book/features/web-search.html
#	docs/handbook/book/foundations/architecture.html
#	docs/handbook/book/foundations/thesis.html
#	docs/handbook/book/foundations/verification.html
#	docs/handbook/book/index.html
#	docs/handbook/book/introduction.html
#	docs/handbook/book/models/prompts.html
#	docs/handbook/book/models/providers.html
#	docs/handbook/book/models/system-prompt.html
#	docs/handbook/book/observability/overview.html
#	docs/handbook/book/print.html
#	docs/handbook/book/reference/approval-mode.html
#	docs/handbook/book/reference/cli.html
#	docs/handbook/book/reference/environment-complete.html
#	docs/handbook/book/reference/environment.html
#	docs/handbook/book/reference/exit-codes.html
#	docs/handbook/book/reference/file-locations.html
#	docs/handbook/book/reference/hooks.html
#	docs/handbook/book/reference/index.html
#	docs/handbook/book/reference/keybindings-config.html
#	docs/handbook/book/reference/keybindings-ref.html
#	docs/handbook/book/reference/mcp-config.html
#	docs/handbook/book/reference/models-yml.html
#	docs/handbook/book/reference/project-trust.html
#	docs/handbook/book/reference/providers.html
#	docs/handbook/book/reference/rpc.html
#	docs/handbook/book/reference/sdk.html
#	docs/handbook/book/reference/settings-reference.html
#	docs/handbook/book/reference/settings.html
#	docs/handbook/book/reference/skills.html
#	docs/handbook/book/reference/slash-commands.html
#	docs/handbook/book/reference/theme.html
#	docs/handbook/book/reference/tools.html
#	docs/handbook/book/reference/tree-command.html
#	docs/handbook/book/repair/cascade.html
#	docs/handbook/book/repair/overview.html
#	docs/handbook/book/repair/per-model.html
#	docs/handbook/book/repair/soundness.html
#	docs/handbook/book/router/role-routing.html
#	docs/handbook/book/searcher-c2a407aa.js
#	docs/handbook/book/using/authentication.html
#	docs/handbook/book/using/configuration.html
#	docs/handbook/book/using/configuring-providers.html
#	docs/handbook/book/using/custom-tools.html
#	docs/handbook/book/using/editing.html
#	docs/handbook/book/using/examples.html
#	docs/handbook/book/using/extending.html
#	docs/handbook/book/using/faq.html
#	docs/handbook/book/using/getting-started.html
#	docs/handbook/book/using/install.html
#	docs/handbook/book/using/mcp-setup.html
#	docs/handbook/book/using/migration-guide.html
#	docs/handbook/book/using/models.html
#	docs/handbook/book/using/quickstart.html
#	docs/handbook/book/using/roles-and-profiles.html
#	docs/handbook/book/using/safety.html
#	docs/handbook/book/using/sessions.html
#	docs/handbook/book/using/task-guides.html
#	docs/handbook/book/using/themes.html
#	docs/handbook/book/using/troubleshooting.html
#	docs/handbook/book/why/argot.html
#	docs/handbook/book/why/index.html
#	docs/handbook/book/why/innovations.html
#	docs/handbook/book/why/performance.html
#	docs/handbook/book/why/value.html
…out branch

The suite rendered the footline with the git segment live, so the line width
moved with the branch name of whatever checkout ran it. A 35-character branch
pushed the model segment past the 120-column budget and failed the hit-test in
CI while the same commit passed on a short-named checkout.
The 100k-deep optional-argument payload cost 6.6s isolated and timed out at 97s
on a --parallel=4 --smol runner, where the guard had been linear the whole time.
A wall-clock ceiling cannot separate linear from quadratic anyway: a quadratic
parser stays inside any generous ceiling at a depth small enough to finish.

Measure 4k and 8k instead and bound the ratio at 3, the geometric midpoint of
the linear 2.34 and the quadratic 4.01. Reinjecting the pre-fix defect (a fresh
child parser in #optionalArgument) drives the ratio to 4.01 and the test red.

Measured smallest-arm-first on purpose: cost(8_000) / cost(4_000) evaluates the
numerator first, charges JIT tier-up to the large arm, and passes at ratio 2
against a quadratic parser.

The test drops from 5.5s to 2.3s. Shallow optional-argument math moves to its
own case, since it defends a different contract and needs no timing.
…-code-mutations

# Conflicts:
#	docs/handbook/book/404.html
#	docs/handbook/book/acknowledgements.html
#	docs/handbook/book/appendix/glossary.html
#	docs/handbook/book/architecture/compaction.html
#	docs/handbook/book/architecture/config.html
#	docs/handbook/book/architecture/mcp.html
#	docs/handbook/book/architecture/memory.html
#	docs/handbook/book/architecture/overview.html
#	docs/handbook/book/architecture/providers.html
#	docs/handbook/book/architecture/sandbox.html
#	docs/handbook/book/architecture/secrets.html
#	docs/handbook/book/architecture/session-turn.html
#	docs/handbook/book/architecture/tui.html
#	docs/handbook/book/concepts/index.html
#	docs/handbook/book/concepts/model-contract.html
#	docs/handbook/book/concepts/permission-model.html
#	docs/handbook/book/concepts/sessions-turns-threads.html
#	docs/handbook/book/context/compaction-memory.html
#	docs/handbook/book/context/context-files.html
#	docs/handbook/book/context/goal-state.html
#	docs/handbook/book/context/reads-search.html
#	docs/handbook/book/edit/edit-repair.html
#	docs/handbook/book/edit/engine.html
#	docs/handbook/book/edit/roadmap.html
#	docs/handbook/book/features/advisor.html
#	docs/handbook/book/features/branching.html
#	docs/handbook/book/features/cockpit.html
#	docs/handbook/book/features/collab.html
#	docs/handbook/book/features/connectors.html
#	docs/handbook/book/features/cpu-limit.html
#	docs/handbook/book/features/doctor.html
#	docs/handbook/book/features/exec.html
#	docs/handbook/book/features/export-import.html
#	docs/handbook/book/features/extensions-authoring.html
#	docs/handbook/book/features/extensions.html
#	docs/handbook/book/features/feature-flags.html
#	docs/handbook/book/features/hooks-authoring.html
#	docs/handbook/book/features/hooks.html
#	docs/handbook/book/features/index.html
#	docs/handbook/book/features/keybindings.html
#	docs/handbook/book/features/lsp.html
#	docs/handbook/book/features/marketplace-authoring.html
#	docs/handbook/book/features/marketplace.html
#	docs/handbook/book/features/mcp.html
#	docs/handbook/book/features/memory.html
#	docs/handbook/book/features/personalities.html
#	docs/handbook/book/features/plan-mode.html
#	docs/handbook/book/features/plugins.html
#	docs/handbook/book/features/profiles.html
#	docs/handbook/book/features/python-repl.html
#	docs/handbook/book/features/review.html
#	docs/handbook/book/features/sandbox.html
#	docs/handbook/book/features/secrets.html
#	docs/handbook/book/features/skills-authoring.html
#	docs/handbook/book/features/skills.html
#	docs/handbook/book/features/speech.html
#	docs/handbook/book/features/subagents.html
#	docs/handbook/book/features/web-search.html
#	docs/handbook/book/foundations/architecture.html
#	docs/handbook/book/foundations/thesis.html
#	docs/handbook/book/foundations/verification.html
#	docs/handbook/book/index.html
#	docs/handbook/book/introduction.html
#	docs/handbook/book/models/prompts.html
#	docs/handbook/book/models/providers.html
#	docs/handbook/book/models/system-prompt.html
#	docs/handbook/book/observability/overview.html
#	docs/handbook/book/print.html
#	docs/handbook/book/reference/approval-mode.html
#	docs/handbook/book/reference/cli.html
#	docs/handbook/book/reference/environment-complete.html
#	docs/handbook/book/reference/environment.html
#	docs/handbook/book/reference/exit-codes.html
#	docs/handbook/book/reference/file-locations.html
#	docs/handbook/book/reference/hooks.html
#	docs/handbook/book/reference/index.html
#	docs/handbook/book/reference/keybindings-config.html
#	docs/handbook/book/reference/keybindings-ref.html
#	docs/handbook/book/reference/mcp-config.html
#	docs/handbook/book/reference/models-yml.html
#	docs/handbook/book/reference/project-trust.html
#	docs/handbook/book/reference/providers.html
#	docs/handbook/book/reference/rpc.html
#	docs/handbook/book/reference/sdk.html
#	docs/handbook/book/reference/settings-reference.html
#	docs/handbook/book/reference/settings.html
#	docs/handbook/book/reference/skills.html
#	docs/handbook/book/reference/slash-commands.html
#	docs/handbook/book/reference/theme.html
#	docs/handbook/book/reference/tools.html
#	docs/handbook/book/reference/tree-command.html
#	docs/handbook/book/repair/cascade.html
#	docs/handbook/book/repair/overview.html
#	docs/handbook/book/repair/per-model.html
#	docs/handbook/book/repair/soundness.html
#	docs/handbook/book/router/role-routing.html
#	docs/handbook/book/searcher-c2a407aa.js
#	docs/handbook/book/using/authentication.html
#	docs/handbook/book/using/configuration.html
#	docs/handbook/book/using/configuring-providers.html
#	docs/handbook/book/using/custom-tools.html
#	docs/handbook/book/using/editing.html
#	docs/handbook/book/using/examples.html
#	docs/handbook/book/using/extending.html
#	docs/handbook/book/using/faq.html
#	docs/handbook/book/using/getting-started.html
#	docs/handbook/book/using/install.html
#	docs/handbook/book/using/mcp-setup.html
#	docs/handbook/book/using/migration-guide.html
#	docs/handbook/book/using/models.html
#	docs/handbook/book/using/quickstart.html
#	docs/handbook/book/using/roles-and-profiles.html
#	docs/handbook/book/using/safety.html
#	docs/handbook/book/using/sessions.html
#	docs/handbook/book/using/task-guides.html
#	docs/handbook/book/using/themes.html
#	docs/handbook/book/using/troubleshooting.html
#	docs/handbook/book/why/argot.html
#	docs/handbook/book/why/index.html
#	docs/handbook/book/why/innovations.html
#	docs/handbook/book/why/performance.html
#	docs/handbook/book/why/value.html
@santhreal
santhreal merged commit 452bbb8 into main Aug 25, 2026
40 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant