Commit Graph
9801 Commits
Author SHA1 Message Date
roboomp 122ab2a4ef fix(coding-agent): resolve restored vibe workers against session model
#vibeParentSession() omitted getActiveModelString, so on resume/switch
#reconcileModeFromSession -> VibeSessionRegistry.rehydrate() ->
#resolveWorker() fell back to the settings default model. A reopened or
switched-to session whose active model came from the journal or a
non-default launch therefore resolved the good (pi/task) worker on the
wrong model. Wire getActiveModelString from the session's active model,
matching the spawn-path ToolSession and sdk's dispose-path helper.

Fixes #5303
2026-07-15 00:19:36 +00:00
roboomp 709066b7a1 fix(coding-agent): preserve target tools when switching out of vibe
#clearTransientModeState's vibe branch runs only from
#reconcileModeFromSession, after switchSession has already loaded and
restored the target session's active tools. It called
deactivateVibeTools(#vibeModePreviousTools), which SETS the active tool
set to that snapshot — but the snapshot belongs to the SOURCE session,
so switching to a non-vibe (or different vibe) target clobbered the
target's tools. Add AgentSession.removeVibeToolsPreservingActive(), which
strips only the transient vibe tools and keeps the current active set,
and use it on the switch path. The live-exit path (#exitVibeMode) still
restores its own snapshot.

Fixes #5303
2026-07-14 23:58:30 +00:00
Mathews-Tom 17aad95abc fix(advisor): scrub colliding secret labels 2026-07-15 05:19:45 +05:30
roboomp febf3eb73d fix(coding-agent): bounded cancelled vibe teardown
vibe_kill and Vibe-mode exit / session-switch suspension awaited every
cancelled turn's job promise unconditionally. When a provider or tool
ignores the abort signal the promise never settles, so teardown hung
indefinitely. Give cancelled jobs a 250ms unref'd settlement grace, then
log and detach any still-pending job while preserving cancelled state.

Ported from @RensTillmann's fix (65446c4).

Fixes #5303
2026-07-14 23:42:18 +00:00
Mathews-Tom 9a01a77c4a Merge remote-tracking branch 'upstream/main' into feat/secret-friendly-names 2026-07-15 04:48:00 +05:30
Mathews-Tom 4452465f57 Merge remote-tracking branch 'upstream/main' into feat/error-notify 2026-07-15 04:47:26 +05:30
can1357 425e583ae0 feat(coding-agent): added support for task-agent field and model resolution
- Added schema and type updates for task-agent fields and model resolver settings.
- Extended discovery helper logic to carry resolved task-agent metadata through execution setup.
- Updated task/agent registration and execution paths to use the new capability/field data.
- Expanded test coverage for agent-field parsing, model resolution, and executor prewalk behavior.
2026-07-15 00:50:55 +02:00
roboomp ea320d745b fix(bash): resolved nested internal URLs
- Tracked quote context independently inside command substitutions.
- Covered unquoted skill URLs nested under outer double quotes.

Fixes #5535
2026-07-14 22:21:53 +00:00
can1357 55f5ebec49 chore: reformat 2026-07-15 00:08:50 +02:00
can1357 a9c038818d feat(tools): removed separate selector args from read and grep APIs
- Removed `selector`/`sel` arguments from read and grep tool schemas and related execution arg handling.
- Reworked read and grep path processing to parse line selectors from `path` suffixes instead of separate fields, including inline range propagation.
- Updated delegation and execution call paths (including JS/Python preludes and executor tests) to pass selectors embedded in `path`.
- Updated read/grep prompt docs and changelog for the breaking inline-selector API, and removed obsolete selector-specific tests and expectations.
2026-07-15 00:04:02 +02:00
can1357 4114d280bd fix(coding-agent/advisor): treated zero-content advisor stop turns as valid review completions
- Replaced the advisor turn validation to raise errors only when a turn has no assistant response at all, instead of treating a content-less `stop` as a failure.
- Kept zero-content silent reviews from entering the retry/rollback/warn path by no longer raising "Advisor unavailable" for completed empty-stop turns.
- Updated advisor runtime tests and changelog language to assert and document that consecutive zero-usage silent turns now succeed without notifications.
2026-07-14 23:36:08 +02:00
can1357 62d0377780 test: hardened dynamic-border and plugin-install tests for full-suite runs 2026-07-14 23:19:45 +02:00
can1357 984a97fa51 style: formatted evaluator test additions 2026-07-14 23:11:49 +02:00
can1357 1ca48393da Merge PR #5503: fix(session): land tree navigation on /skill: injection node (@roboomp) 2026-07-14 23:11:12 +02:00
can1357 ad396fb8fe Merge PR #5529: fix(tools): strip stray leading colon from tool paths (@roboomp) 2026-07-14 23:11:12 +02:00
can1357 5447312c5f Merge PR #5498: fix(tools): accept empty GitHub search date placeholders (@roboomp) 2026-07-14 23:11:12 +02:00
can1357 37b1263a26 Merge PR #5494: fix(eval): delegate Python URI reads to host resolver (@roboomp) 2026-07-14 23:11:12 +02:00
can1357 cda994a435 Merge PR #5504: fix(prompt): restore non-Linux CPU model metadata (@roboomp) 2026-07-14 23:11:11 +02:00
can1357 46e80058ca Merge PR #5440: fix(session): fall back to LLM compaction on manual /compact for text-only models (@roboomp) 2026-07-14 23:11:11 +02:00
can1357 966d467476 Merge PR #5495: fix(tui): guard DynamicBorder against uninitialized module-level theme (@roboomp) 2026-07-14 23:11:10 +02:00
can1357 7de519eabc Merge PR #5499: fix(plugins): preserve native CommonJS helper loading (@roboomp) 2026-07-14 23:11:10 +02:00
can1357 86e0fdf9c3 Merge PR #5492: fix(tui): hand editor tap state to agent hub on double-left open (@roboomp) 2026-07-14 23:11:10 +02:00
can1357 1121a0018d Merge PR #5516: fix(auth): route OSC 5522 paste into login prompts (@roboomp) 2026-07-14 23:11:09 +02:00
can1357 9837e1f88c Merge PR #5491: fix(models): preserve auto role thinking across restart (@roboomp) 2026-07-14 23:11:09 +02:00
can1357 f3a935c3d4 Merge PR #5511: fix(tui): anchor Kitty images through tmux (@roboomp) 2026-07-14 23:11:09 +02:00
can1357 3a772de879 Merge PR #5518: fix(agent): strip images for non-vision models mid-session (@roboomp) 2026-07-14 23:11:08 +02:00
can1357 a3b4f28078 Merge PR #5506: fix(session): auto-retry bare "Request was aborted" error-stop turns (@roboomp) 2026-07-14 23:11:08 +02:00
can1357 5e8cc40fbe Merge PR #5514: fix(bash): abort isolated shells on cancellation (@roboomp) 2026-07-14 23:11:08 +02:00
can1357 55ad1ff1bc Merge PR #5505: fix(plugins): refresh stale Bun git cache before reinstall (@roboomp) 2026-07-14 23:11:07 +02:00
can1357 6cdefd83e0 Merge PR #5523: fix(coding-agent): accept silent advisor stops with output tokens (@roboomp) 2026-07-14 23:11:07 +02:00
can1357 b76f7aeecf fix(launch): scope batch validation to PTYs 2026-07-14 23:11:07 +02:00
can1357 330744bfeb Merge PR #5520: fix(launch): pass Windows PTY arguments directly (@roboomp) 2026-07-14 23:11:07 +02:00
can1357 6b381eb765 Merge PR #5451: fix(eval): honor timeout zero and classify session deadlines (@roboomp) 2026-07-14 22:58:49 +02:00
can1357 3663963b76 Merge PR #5466: fix(tools): gate generate_image behind setting and tool whitelist (@roboomp) 2026-07-14 22:58:48 +02:00
can1357 6f7b2483da fix(internal-urls): ignore non-directory artifact candidates 2026-07-14 22:58:48 +02:00
can1357 ba5c915777 Merge PR #5455: fix(internal-urls): serve history:// transcripts from disk fallback (@roboomp) 2026-07-14 22:58:48 +02:00
can1357 88ab942d9f Merge PR #5478: fix(web-search): stop Perplexity OAuth token leaking to the API-key endpoint (@roboomp) 2026-07-14 22:58:48 +02:00
can1357 1e1569d58e Merge PR #5465: fix(extensions): let tool_result rewrite thrown failure content (@roboomp) 2026-07-14 22:58:48 +02:00
can1357 6f8a3ab94a Merge PR #5458: fix(browser): bound headless browser close to unblock tab cleanup (@roboomp) 2026-07-14 22:58:47 +02:00
can1357 ebe79d6f53 fix(mcp): retain DCR metadata fallback 2026-07-14 22:58:47 +02:00
can1357 80f9329e31 Merge PR #5456: fix(mcp): preserve discovered registration endpoint (@roboomp) 2026-07-14 22:58:47 +02:00
can1357 77cdf1e753 Merge PR #5454: fix(tui): trigger internal-url autocomplete inside slash args (@roboomp) 2026-07-14 22:58:47 +02:00
can1357 413949ccf4 Merge PR #5450: fix(todo): signal removal intent so agent stops rebuilding cleared todos (@roboomp) 2026-07-14 22:58:47 +02:00
can1357 e755fcf983 Merge PR #5469: fix(tui): handle Kitty vim navigation sequences (@roboomp) 2026-07-14 22:58:46 +02:00
can1357 9f17927ee7 Merge PR #5467: fix(cli): flush config JSON output before exit (@roboomp) 2026-07-14 22:58:46 +02:00
can1357 c897f54a07 Merge PR #5459: fix(coding-agent): reject prose thinking session titles (@roboomp) 2026-07-14 22:58:46 +02:00
can1357 c8628d5416 Merge PR #5471: fix(coding-agent): route /guided-goal oneshot through Codex websocket transport (@roboomp) 2026-07-14 22:58:46 +02:00
can1357 52f0d3f9e6 fix(discovery): tolerate malformed plugin cwd 2026-07-14 22:58:46 +02:00
can1357 263eeead04 Merge PR #5481: fix(discovery): resolve relative plugin MCP command/cwd against config dir (@roboomp) 2026-07-14 22:58:45 +02:00
roboomp 5ec402fc10 fix(catalog): force codex refresh for authoritative pruning
Built-in discovery skipped the OAuth refresh whenever a fresh authoritative cache existed, so an openai-codex user with an expired access token never got the model manager constructed and stale bundled models (e.g. gpt-5.4-nano) stayed selectable for the full cache TTL. Force the refresh for authoritative providers and forward the registry fetch through the Codex manager so discovery honors the configured transport.

Fixes #5364
2026-07-14 20:47:46 +00:00