Commit Graph
9965 Commits
Author SHA1 Message Date
roboomp 05668faa5f fix(task): surfaced actionable shape error for batch calls
The flat single-spawn task wire schema carries arktype `"+": "delete"`, so a
batch `{ context, tasks[] }` payload sent while `task.batch` is disabled has
those keys stripped and is then rejected as `task must be a string (was
missing)` in the agent loop. That preempts the tool's own actionable checks
(validateShapeParams / validateSpawnParams), so the model only ever saw the
misleading arktype error instead of "task.batch is disabled…".

Mark TaskTool with lenientArgValidation so the agent loop forwards the raw
args to execute() on any arktype failure, letting the tool's shape checks
surface the real reason. Valid calls still normalize through arktype; the
success path is unchanged. Mirrors the existing yield-tool pattern.

Fixes #6039
2026-07-21 20:41:14 +00:00
can1357 9fd6e97113 chore: bump version to 17.0.5 2026-07-18 23:51:40 +02:00
can1357 546dce7638 chore: update changelogs 2026-07-18 23:51:15 +02:00
roboomp 5b6e8db2d7 fix(launch): hid daemon broker window on Windows
Applied the console-aware launch policy in the original OMP process before spawning the broker. The broker now inherits the caller's console state instead of probing a detached console it created itself.
2026-07-18 21:42:58 +00:00
roboomp 382f932d53 fix(launch): hid Windows daemon console windows
Applied console-aware spawn options to both non-PTY daemon paths. Windows children now stay attached when the host has a console and use CREATE_NO_WINDOW only for headless hosts.

Fixes #6018
2026-07-18 21:35:04 +00:00
can1357 29aefbca4a test: restored read-tool context-expansion contract tests
The exact-bounds rewrite matched reverted PR #5812; the ±context expansion
(1 leading + 3 trailing line) around explicit selectors is intended behavior
so edit anchors at range boundaries stay fresh.
2026-07-18 22:05:14 +02:00
can1357 8f2cd23e39 Revert "Merge PR #5812: fix(read): honor exact line selector bounds (@roboomp)"
This reverts commit 58c71d5b50, reversing
changes made to 7c7227bc8e.
2026-07-18 22:04:43 +02:00
can1357 32dc282517 test: aligned read-tool and logout tests with landed contracts
- tools.test.ts still asserted the pre-#5812 ±context expansion for offset/
  limit and archive-entry reads; updated to the exact-bounds contract.
- selector-controller-logout.test.ts mocked the old modelRegistry.refresh;
  #5786 switched logout to a provider-scoped refreshProvider(id, 'online'),
  so the mock never resolved and the test timed out.
2026-07-18 21:58:03 +02:00
can1357 4a6fab5530 Merge PR #6012: fix(tui): preserve history across tmux pane growth (@roboomp) 2026-07-18 21:32:20 +02:00
can1357 f33465a977 feat(tui): added shift+enter summarize-and-switch to the session tree selector
- Shift+Enter on a tree entry forks with a branch summary directly, skipping
  the summary prompt and ignoring the branchSummary.enabled gate.
- Plain Enter keeps existing behavior: direct switch, with the summary prompt
  only for users who enabled branchSummary.enabled.
- Updated the selector help line and added controller-level regression tests.

Fixes #5152
2026-07-18 21:27:12 +02:00
roboomp 642c9e2eba fix(tui): preserved history across tmux pane growth
Rebased the committed-row seam when multiplexer reflow exposes native scrollback inside an enlarged viewport.

Added production transcript coverage for a finalized prefix above a live response and verified no ED3 is emitted.

Fixes #6011
2026-07-18 19:17:48 +00:00
can1357 7c769a3d55 chore: fix prompt regressions 2026-07-18 21:16:42 +02:00
can1357 c3b9e5415d chore: normalized changelog sections after merges 2026-07-18 21:04:24 +02:00
can1357 4617d71ba7 fix(browser): keep raw AbortSignal identity through run facade
Native combinators (AbortSignal.any, fetch) brand-check internal slots
that a Proxy cannot forward; return signals unwrapped from
bindBrowserRunFacade so tab.signal composes with native cancellation.
2026-07-18 21:04:16 +02:00
can1357 707932e786 Merge PR #5588: fix(browser): observe raw promises before target close (@serverinspector)
# Conflicts:
#	packages/coding-agent/src/tools/browser/tab-worker.ts
#	packages/coding-agent/test/tools/browser-tab-evaluate.test.ts
2026-07-18 21:04:16 +02:00
can1357 30ef04940f Merge PR #5424: fix(github): add dedicated repository file reads (@roboomp)
# Conflicts:
#	packages/coding-agent/src/prompts/tools/bash.md
#	packages/coding-agent/src/prompts/tools/read.md
2026-07-18 21:03:24 +02:00
can1357 ffab5689a0 Merge PR #5497: fix(catalog): prune unsupported Codex account models (@roboomp)
# Conflicts:
#	packages/catalog/src/discovery/codex.ts
#	packages/catalog/src/models.json
#	packages/catalog/test/codex-discovery.test.ts
2026-07-18 21:02:46 +02:00
can1357 ba385a2946 fix(coding-agent): port no-preparation dead-end rescue to the tiered #rescueCompactionDeadEnd API
Main renamed/refactored #tryShakeRescueForDeadEnd + #emitShakeRescueNotice into
the tiered #rescueCompactionDeadEnd (elide, then image drop, notices emitted
internally), so a textually-clean merge of this branch left calls to undefined
private methods. Re-express the !preparation rescue through the new API:
progress = prepareCompaction succeeding on the rewritten branch, skipElide when
falling through from a shake pass (the image tier still gets a chance), and
historyRewritten flagged whenever a tier freed content even without progress.

Restore the baseline dead-end remedy text (image drop is automated now, so the
manual /shake images suggestion is stale) and align the rescue-refit regression
test with main's continuation gating (auto-continue after compaction now
requires an active goal or queued work).
2026-07-18 21:01:58 +02:00
can1357 401fca701b Merge PR #5448: fix(coding-agent): rescue snapcompact dead-end when nothing is summarizable (@roboomp) 2026-07-18 21:01:41 +02:00
can1357 633b8b091d docs(changelog): move #5060 entry to Unreleased, drop stray Fixed header in released 16.5.2 2026-07-18 21:01:41 +02:00
can1357 046d92ec81 Merge PR #5062: fix(tui): show async task job model badges (@roboomp) 2026-07-18 21:01:41 +02:00
can1357 449e402a16 style: formatted merge resolutions with biome 2026-07-18 20:14:30 +02:00
can1357 cbd6164e3a chore: normalized changelog sections after merges 2026-07-18 20:14:18 +02:00
evalandcan1357 3a33b2bb53 fix(coding-agent): restore cache-omitted headers in registry startup loaders and preserve unrelated runtime discoveries in scoped refresh
The v10 model cache never persists request headers (#5780). The registry's
startup cache readers (#loadCachedStandardProviderModels /
#loadCachedDiscoverableModels) read cache.models directly, so cached rows
replaced bundled models (github-copilot, kimi-code, nanogpt) with header-less
copies for the cache TTL after every restart. Restore bundled static headers,
drop unrestorable rows so bundled fallbacks win the merge, and mark
discoverable providers stale when header-bearing models were excluded.

refreshProvider's #reloadStaticModels could also evict models discovered by
other runtime providers; re-merge them from cache with online-if-uncached.
2026-07-18 20:14:11 +02:00
can1357 157e940d5e Merge PR #5786: fix(auth): scoped post-login model refresh and stripped cache credentials (@roboomp)
# Conflicts:
#	packages/catalog/src/model-cache.ts
2026-07-18 20:14:11 +02:00
can1357 31f7aa6d58 Merge PR #5778: fix(browser): reject non-string tab selectors with a named error (@roboomp)
# Conflicts:
#	packages/coding-agent/src/prompts/tools/browser.md
#	packages/coding-agent/src/tools/browser/aria/aria-snapshot.ts
2026-07-18 20:13:44 +02:00
can1357 c6602de1cf Merge PR #5687: feat(config): add PI_CONFIG_FILES settings overlay env var (@roboomp) 2026-07-18 20:12:48 +02:00
can1357 ad9d272efe Merge PR #5757: fix(task): inherit default fallback for single-model subagents (@jeffscottward) 2026-07-18 20:12:48 +02:00
can1357 e38389a01e fix: match terminal.showImages schema path in settings side-effect switch
SettingsSelector dispatches schema settings by full path (terminal.showImages),
so the showImages case never fired from the /settings flow. Add the full-path
case label and cover both ids in the side-effect test.
2026-07-18 20:12:48 +02:00
can1357 8a25d9e517 Merge PR #5767: fix(coding-agent): clear inline images when disabled (@derekszen) 2026-07-18 20:12:48 +02:00
can1357 17212e22e3 Merge PR #5779: fix(tui): prevent vibe_wait TV-wall scrollback stacking (@roboomp) 2026-07-18 20:12:47 +02:00
can1357 376e71d7ca Merge PR #5784: fix(auth): isolate import tests from ambient broker config (@roboomp) 2026-07-18 20:12:47 +02:00
can1357 22b2a1d8f0 Merge PR #5789: fix(browser): support authenticated cmux TCP relays (@roboomp) 2026-07-18 20:12:47 +02:00
can1357 a762379363 Merge PR #5792: fix(session): resume stalled Cursor tool turns (@roboomp) 2026-07-18 20:12:47 +02:00
can1357 f560db8cfe Merge PR #5810: fix(lsp): raise timeout ceiling to 300 seconds (@roboomp) 2026-07-18 20:12:46 +02:00
can1357 58c71d5b50 Merge PR #5812: fix(read): honor exact line selector bounds (@roboomp) 2026-07-18 20:12:46 +02:00
can1357 7c7227bc8e Merge PR #5822: fix(extensions): disambiguate .agent dirs provider tab label (@roboomp) 2026-07-18 20:12:46 +02:00
can1357 69ce192c0b Merge PR #5832: fix(coding-agent): show loop state in status line (@wolfiesch) 2026-07-18 20:12:46 +02:00
can1357 1a2858d414 fix(coding-agent): remove unconditional delivery promise from spawn receipts
Fold the settled-snapshot caveat into the spawn lead-in per #5869 item 6
and the blocking review on #5871.
2026-07-18 20:12:45 +02:00
can1357 311baa43cc Merge PR #5871: docs(coding-agent): clarify async job lifecycle contract (@roboomp) 2026-07-18 20:12:00 +02:00
can1357 eefbb12923 chore: normalized changelog sections after merges 2026-07-18 19:58:30 +02:00
can1357 5c9b5f7b64 Merge PR #5890: fix(ai): allow custom OAuth fingerprint header overrides (@roboomp) 2026-07-18 19:57:45 +02:00
can1357 cac8ac2fe5 chore(changelog): drop duplicate #5578 entry already documented on main 2026-07-18 19:57:45 +02:00
can1357 b5268042be Merge PR #5894: fix(mcp): process-group kill and SIGKILL escalate on stdio transport close (@Mathews-Tom) 2026-07-18 19:57:45 +02:00
can1357 735a345086 Merge PR #5902: fix(advisor): keep advise when Cursor emits ungranted native tools (@roboomp) 2026-07-18 19:57:44 +02:00
can1357 5aa850078e Merge PR #5904: fix(rpc): claim stdin before extension discovery (@roboomp) 2026-07-18 19:57:44 +02:00
can1357 6c8b0f4a2f Merge PR #5906: fix(browser): bound scroll renderer acknowledgement wait (@roboomp) 2026-07-18 19:57:44 +02:00
can1357 3863a1fac6 Merge PR #5911: fix(subagent): skip session title generation for headless subagents (@roboomp) 2026-07-18 19:57:44 +02:00
can1357 ea147d9d05 Merge PR #5915: docs(advisor): clarify concern delivery after a self-ended yield (@roboomp) 2026-07-18 19:57:43 +02:00
can1357 e7adbb1093 Merge PR #5935: perf(coding-agent): coalesce subagent recent-output reconstruction to emit boundaries (@metaphorics) 2026-07-18 19:57:43 +02:00