Cleared Anthropic thinking signatures when literal thinking-envelope normalization changes provider bytes, preventing same-model replay from pairing stale signatures with rewritten text.
Extended the wrapped-thinking regression test to verify replay demotes the rewritten block instead of sending an invalid signed thinking block.
Fixes#2695
- SetAdvisorEnabled now used settings.override for advisor.enabled when enabling or disabling, keeping advisor toggles session-local.
- /advisor on|off handlers now called refreshStatusLine after each toggle, and the status line updates immediately in the UI.
- A regression test was added to assert setAdvisorEnabled invokes override with both values and does not call set.
Normalized Anthropic thinking deltas that arrive wrapped in literal thinking tags before finalizing the parsed thinking block.
Added a stream regression test covering nested provider thinking wrappers so advisor raw dumps do not render duplicated tags.
Fixes#2695
- Passed USER_INTERRUPT_LABEL through abort paths in collab, ACP, RPC, runtime, and SDK flows.
- Added userInitiated to synthetic continue inputs and session prompt calls.
- Suppressed advisor auto-resume during user aborts and preserved queued concerns.
- Cleared suppression on user prompts and reclaimed parked advisor cards on abort settle.
- Added the missing `ui.group` property to the `plan.defaultOnStartup` setting schema entry.
- Recorded the fix in the coding-agent changelog under the Fixed section.
- Added a list-mode flag to job rendering and used it to keep background job listing behavior distinct.
- Filtered non-partial poll call results to exclude running jobs and return no output when only running jobs remain.
- Added tests covering partial rendering, poll-based filtering, and list/cancel paths for the updated preview behavior.
Checked structured classifier refusals before the interrupted-output retry guard so provider refusals with explanatory content still use the configured fallback path.
Fixes#2683
Re-throw ToolAbortError from soft-expired issue and PR synchronous refreshes instead of falling back to stale cached content.
Cover the abort path in github-cache tests.
Fixes#2684
- Added an includeToolIntent option to session history formatting to control intent comments.
- Updated tool call rendering to prefix call lines with a leading comment when the tool argument contains a non-empty intent field.
- Enabled intent rendering in advisor history updates and added tests for intent-on and intent-off output paths.
Refresh soft-expired issue and PR view cache rows synchronously before returning content, while keeping PR diff rows on stale-first refresh semantics.
Add stale fallback warnings when a live refresh fails and cover the cache/protocol behavior in tests.
Fixes#2684
- Added awaited `onTurnEnd` and `setOnTurnEnd` wiring for turn-end callbacks.
- Added `advisor.syncBacklog` settings (off/1/3/5) and documented 30-second catch-up caps.
- Fixed advisor runtime backlog handling with failure counters, waiters, and retry requeue.
- Updated agent sessions to enqueue advisor updates on turn end and removed direct `turn_end` branch logic.
Prevented auto-retry from regenerating write calls after a provider stream timeout has already exposed assistant content or tool-call arguments.
Fixes#2683
- Added discovery of local, user, and ancestor `WATCHDOG.md` files via `discoverWatchdogFiles`.
- Appended discovered watchdog prompts to advisor system prompts during session setup.
- Added protocol startup defaults that force `advisor.enabled` and `advisor.subagents` false.
- Handled `maintainContext` failures and drained pending updates before token estimation.
- Removed the collapsed-mode truncation branch that forced advisor message cards to restrict bodies to two lines.
- Added a regression test covering long collapsed advisor notes to ensure they wrap at narrow widths instead of being cut short.
- Updated the package changelog to document the collapsed advisor note wrapping fix.
- Added advisor context maintenance hook and token estimation before prompting for auto-upkeep.
- Added re-prime replay handling to reset advisor context and recover deferred prompts.
- Implemented session-level context compaction with model promotion and snapcompact-first fallback summarization.
- Surfaced advisor settings in the model tab and updated advisor system guidance text.
- Created AdvisorRuntime and AdviseTool to drive a read-only advisor agent that delivers severity-tagged advice (nit, concern, blocker) with interruption policy and transcript delta rendering.
- Added /advisor slash command with on/off/status/dump subcommands to control advisor lifecycle and inspect advisor metrics (model, messages, tokens, cost).
- Added advisor.enabled and advisor.subagents settings to enable passive advisor review on main agent and spawned task/eval subagents.
- Implemented advisor message rendering with severity-color badges (blocker=error, concern=warning, nit=muted) in chat log and status line indicator (++ badge).
- Extended yield-queue and session-history-format to support advisor batching and optional thinking block inclusion.
- Updated the assistant-message thinking animation to cycle through rising block glyph frames.
- Updated the accompanying comment to describe the new block-based pulse motion.
- Added a token-first four-phase design-system workflow (analyze, build-if-missing, compose-with-tokens, verify) to the designer agent so visual work references design tokens instead of hardcoded magic numbers.
- Added an evidence standard to the reviewer agent: a finding is not real until you can name the exact input that triggers it, and passing tests are not proof of correctness.
- Added an evidence-bound completion requirement to the task agent: name the exact check run and its observable result before returning.
- Dialect scanners for DeepSeek, Gemini, Gemma, GLM, Kimi, Pi, and Qwen3 now emit thinkingEnd on final chunks when a thinking state is still open.
- Markup healing was changed to return event streams with synthesized tool-call events removed, and OpenAI/Ollama streaming now uses this path when tool_calls are already structured.
- OpenAI completions streaming now suppresses healed thinking output when explicit reasoning content is present, with new tests covering unterminated and duplicate-thinking scenarios.