Commit Graph
12947 Commits
Author SHA1 Message Date
can1357 20bd4ab97b chore(changelog): normalized [Unreleased] sections after merges and added missing entries
- Repaired union-merge artifacts in packages/coding-agent/CHANGELOG.md (duplicated 17.3.6/17.3.7 blocks; promoted the new entries back to [Unreleased])
- Added missing [Unreleased] entries for PRs #8833, #8866, #8879, #8903, #8905, #8915, #8916, #8917, #8920, #8923, #8928, #8929, #8937
2026-08-19 01:42:50 +02:00
can1357 e61775a470 fix(coding-agent): mention oauth exemption in apiKey validation error; add validation tests 2026-08-19 01:39:18 +02:00
can1357 539d841b10 Merge PR #8937: fix(coding-agent): allow auth oauth without apiKey in models.yml (@usr-bin-roygbiv) 2026-08-19 01:39:18 +02:00
can1357 17e47b3eb7 Merge PR #8920: fix(compaction): bound summarization input and stop retrying overflow (@PaleRoses)
# Conflicts:
#	packages/agent/src/compaction/compaction.ts
2026-08-19 01:39:07 +02:00
can1357 130cc9c0a3 fix(tui): also accept legacy CSI ~ Shift+Enter form in /tree selector
Mirrors the composer's raw-sequence fallback (editor.ts:1466) so
\x1b[13;2~ triggers summarize-and-switch instead of being dropped as
shift+f3, completing the parity requested in issue #8821.
2026-08-19 01:38:35 +02:00
can1357 f60e32f9b8 Merge PR #8916: fix(tui): treat bare LF as Shift+Enter in the /tree selector (@re2zero) 2026-08-19 01:38:35 +02:00
can1357 fc24a491fb Merge PR #8915: fix(session): only advertise --resume when the session is on disk (@re2zero) 2026-08-19 01:38:35 +02:00
can1357 74366ee996 Merge PR #8911: fix(session): generate titles from /skill invocation args (@qiyi71w) 2026-08-19 01:38:34 +02:00
can1357 195033a432 Merge PR #8909: fix(coding-agent): condition think prelude guidance for subagents (@olegpulatov) 2026-08-19 01:38:34 +02:00
can1357 c57d710a67 Merge PR #8905: Advisor blocker advisories wake a new turn instead of parking in the immune window (@STRML) 2026-08-19 01:38:34 +02:00
can1357 12cfaceef1 Merge PR #8903: fix(discovery): expand extension-package MCP env placeholders (@drycode) 2026-08-19 01:38:34 +02:00
can1357 22439b6be2 Merge PR #8896: fix(settings): hide excluded search providers from summary (@poorpaper) 2026-08-19 01:38:34 +02:00
can1357 0e8c451f66 Merge PR #8889: fix(cursor): answer interactionQuery and resume idle-stall MCP turns (@bnivanov) 2026-08-19 01:37:01 +02:00
can1357 9975e5c70e docs(coding-agent): fix stale worker-cwd comment in js eval process entry
resolveWorkerSpawnCmd no longer pins the host-entry worker cwd to the
install dir; the subprocess inherits the agent cwd (or the package root
under the bun-test fallback). Update the chdir rationale accordingly.
2026-08-19 01:37:01 +02:00
can1357 cad0cdad48 Merge PR #8883: fix(coding-agent): stop pinning worker subprocess cwd to the install dir (@chuzui) 2026-08-19 01:37:01 +02:00
can1357 0128b2e9fc Merge PR #8879: fix(web-search): abort-protect browser fallback setup and teardown (@kimono381) 2026-08-19 01:37:01 +02:00
can1357 cc5068bd17 Merge PR #8872: fix(tui): render xdev tool images inline (@daandden) 2026-08-19 01:37:01 +02:00
can1357 52cc0f43b3 Merge PR #8866: Preserve MCP tools across PlanYolo handoff (@nick-maderight) 2026-08-19 01:37:00 +02:00
can1357 8a74892c3b Merge PR #8864: fix(task): refresh model roles before agent discovery (@z80dev) 2026-08-19 01:37:00 +02:00
can1357 e972bdb4d1 Merge PR #8857: fix(discovery): honor Claude Code enabledPlugins for marketplace plugins (@drycode) 2026-08-19 01:37:00 +02:00
can1357 60079ffaea Merge PR #8849: perf(read): materialize a local file once per read (@alphastorm) 2026-08-19 01:36:59 +02:00
can1357 d6f59e6807 Merge PR #8842: test(lsp): isolate config tests from the developer's user settings (@pedropaulovc) 2026-08-19 01:36:59 +02:00
can1357 edc4f9ecb4 fix: make provider-lock catalog check case-insensitive
The matcher compares selector ids case-insensitively, but the lock's
bundled-catalog lookup was exact-case: Anthropic/Claude-Opus-5 exact-
matched OpenRouter's flat id while getBundledModel("Anthropic", ...)
missed, silently re-enabling the aggregator shadow the lock exists to
prevent. Scan the named provider's bundled ids case-insensitively.
2026-08-19 01:36:59 +02:00
can1357 a4a54a0ff5 Merge PR #8833: fix: provider-qualified model selectors fail closed instead of shadowing to OpenRouter (@STRML) 2026-08-19 01:36:59 +02:00
can1357 9cf0ab1e8a Merge PR #8826: fix: resolve workspace-member imports in installed git-dep monorepo plugins (@sjawhar) 2026-08-19 01:36:59 +02:00
can1357 b3f48dbf6c Merge PR #8806: fix(tests): isolate TUI scrollback tests from terminal multiplexers (@Huang-404-Q) 2026-08-19 01:36:58 +02:00
can1357 dbae69dace Merge PR #8799: fix(tests): stop the checkout location and system zshrc from failing tests (@Huang-404-Q) 2026-08-19 01:36:58 +02:00
can1357 0e66255ee3 Merge PR #8797: fix(tui): show subagent role and generate real HUD labels (@atacolak) 2026-08-19 01:36:58 +02:00
can1357 9b87aee56e Merge PR #8795: fix(tests): stop ANTHROPIC_BASE_URL from failing the Anthropic suites (@Huang-404-Q) 2026-08-19 01:36:58 +02:00
can1357 8b741e5bc8 Merge PR #8785: fix(update): surface actionable message for unsupported proxy schemes (@roboomp) 2026-08-19 01:36:57 +02:00
can1357 71296b3bd4 Merge PR #8781: fix(discovery): expand OpenCode {env:} and {file:} config tokens (@roboomp) 2026-08-19 01:36:57 +02:00
can1357 5bd6af6a0e Merge PR #8776: fix(nix): install writable home-manager config instead of store symlink (@roboomp) 2026-08-19 01:36:57 +02:00
can1357 b1afa289ba Merge PR #8770: fix(tui): prefer macOS file URL over Finder icon bitmap on image paste (@roboomp) 2026-08-19 01:36:57 +02:00
can1357 d4059fe81f Merge PR #8761: fix(coding-agent): keep thinking-loop retries on the same model (@roboomp) 2026-08-19 01:36:56 +02:00
can1357 db2ce42e8e Merge PR #8753: fix(coding-agent): classify destructive rm with long options as critical (@ghosty-11) 2026-08-19 01:36:56 +02:00
can1357 a34fe0b676 Merge PR #8752: fix(tiny): match title stop string against generated tokens only (@alphastorm)
# Conflicts:
#	packages/coding-agent/test/tiny-title-generator.test.ts
2026-08-19 01:36:56 +02:00
can1357 c4b2eddc4e Merge PR #8750: fix(memory): separate extraction instructions from user input (@alphastorm) 2026-08-19 01:36:32 +02:00
can1357 0167a60de5 Merge PR #8741: fix(biome): add .css to default fileTypes for CSS language support (@re2zero) 2026-08-19 01:36:05 +02:00
can1357 2b35d690b0 docs(coding-agent): align resolveUpdateTarget docstring with symlink-gated manager probes 2026-08-19 01:36:05 +02:00
can1357 b4db9c84e7 Merge PR #8734: fix(coding-agent): resolve update target from the running binary, not the PATH launcher (@roboomp) 2026-08-19 01:36:04 +02:00
can1357 b0bfe7e457 Merge PR #8733: fix(tui): consolidate live tool spinner timers into one shared ticker (@roboomp) 2026-08-19 01:36:04 +02:00
can1357 c41f65ec89 Merge PR #8723: fix(launch): scope daemon prune to the daemons container (@roboomp) 2026-08-19 01:36:03 +02:00
can1357 e88fb70afe Merge PR #8720: fix(compaction): honor /clear reset boundary in prepareCompaction (@roboomp) 2026-08-19 01:36:03 +02:00
can1357 a3fc18fd16 Merge PR #8704: fix(cli): exit cleanly after printing shell completions (@czchen) 2026-08-19 01:36:03 +02:00
can1357 43fcfb4475 Merge PR #8688: fix(mcp): preserve image tool results (@roboomp) 2026-08-19 01:36:02 +02:00
can1357 565d53515b feat(coding-agent): added providers.cacheRetention setting for prompt caching
- Add the `providers.cacheRetention` setting to control prompt-cache retention options per request.
- Forward configured cache retention preferences through the settings-aware stream function.
- Update documentation and test coverage for long cache retention behaviors.
2026-08-19 00:56:50 +02:00
usr-bin-roygbiv 2a8ad4ad9a fix(coding-agent): allow auth oauth without apiKey in models.yml 2026-08-18 21:44:23 +00:00
Samuel Reed 761abf5777 style: biome safe-fixes for model-resolver import order and formatting
organizeImports sorts the type GeneratedProvider specifier ahead of the named imports, and the formatter collapses the preferred-match arrow chain to one line. Both are biome safe fixes; no behavior change. Resolves the two biome errors that were leaving the 8833 branch's check gate red.
2026-08-18 16:19:04 -04:00
PaleRoses 753c86ea72 fix(compaction): bound summarization input and stop retrying overflow
A session that crossed a provider boundary compacted 90 times in three days
without ever succeeding: every attempt asked the summarizer to read the whole
re-expanded span in one call (2.33M tokens on 08-15, 3.03M by 08-17, against a
1M cap), and every rejection was retried ten times.

Three independent defects:

1. `generateSummary` serialized the entire span into one prompt with no budget
   check. It now plans windows that fit the summarizer's context and folds them
   with the update prompt that iterative compaction already uses, so a stranded
   boundary is recovered instead of rejected. A provider that rejects a window
   the catalog said would fit (claude-sonnet-4-5 advertises 1M but is
   beta-gated to 200k on OAuth credentials) halves what was actually sent and
   re-plans, because only the rejection knows the real cap.

2. `TRANSIENT_TRANSPORT_PATTERN` matched bare status codes, so the random id in
   the `raw-http-request=.../1787022540720-3o503gxo48bvb.json` pointer omp
   appends to its own errors classified a deterministic 400 as a transient 503.
   Statuses are now word-boundaried, matching AUTH_FAILURE_PATTERN.

3. Neither retry layer vetoed ContextOverflow, so one failure became up to 30
   identical calls (10 outer x 3 oneshot). A oneshot replays a fixed prompt, so
   an input that does not fit never fits; both layers now fail fast to the next
   candidate.

The boundary scan that decides which compaction entry a model can actually read
is extracted as `findReadableCompactionIndex`, since the fold and
`prepareCompaction` both need it.

Verified by replaying the session that failed: 7,096 messages summarize in 3
calls with a largest prompt of 773,705 tokens under the real 1M cap, and in 15
calls with a largest prompt of 196,148 tokens under a simulated 200k cap.
2026-08-18 12:25:13 -07:00
re2zero 73e0366121 fix(tui): treat bare LF as Shift+Enter in the /tree selector
The composer accepts three encodings for Shift+Enter (kitty CSI-u, the
legacy \x1b[13;2~ form, and a bare LF from the iTerm2 mapping e.g. Claude
Code's /terminal-setup). The /tree selector only handled the kitty form and
silently routed a bare LF into the plain-Enter branch, so summarize-and-
switch never fired for those terminals.

Mirror the composer: fall through a bare LF to summarize-and-switch while
plain CR (or the decoded Enter key) still does a plain switch.

Fixes #8821
2026-08-19 02:33:40 +08:00