Commit Graph
7764 Commits
Author SHA1 Message Date
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 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 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
Sunil Srivatsa b8dbf68613 fix(tiny): match title stop string against generated tokens only
StopOnTextCriteria decoded the last STOP_DECODE_WINDOW_TOKENS of the whole
sequence, so prompt tokens were eligible for matching. A prompt that itself
contains the stop string stops generation at the first generated token and
yields an empty title.

Anchor the window to the generation boundary by recording the first
generated index per batch entry. Existing local title models are
unaffected: with the assistant-prefill prompt shape, the example `</title>`
tags sit outside the 32-token window for normal messages, so no shipping
model changes behavior. The bug becomes reachable with any chat-level
few-shot prompt that places the stop string near the generation boundary.
2026-08-17 15:19:06 -07:00
Sunil Srivatsa 49415712f2 fix(memory): separate extraction instructions from user input
The memory-extraction prompt concatenated its instructions, few-shot
examples, and the user message into a single user turn, so a small local
model could not distinguish instructions from input and frequently echoed
the Globex/weather examples instead of extracting facts.

Send the instructions as a real system turn and the raw text as the user
turn. The tiny worker protocol gains a systemPrompt field, and Mnemopi
completion input carries task metadata so the backend selects the right
prompt per call.

Drop the code-built MEMORY_EXTRACTION_TEMPLATE rather than porting it:
prompt text belongs in .md files, and resolveMemoryCompletionInput already
overrides that template for every extraction call, so Mnemopi rendered it
only for the result to be discarded.

Measured on ONNX q4 CPU, LFM2.5-1.2B memory extraction improved from 1/8
to 5/8 once the roles were separated.
2026-08-17 15:06:37 -07:00
can1357 644ad30d6e chore: bump version to 17.3.7
Retry: fixed changelog bundle probe asserting latest release equals VERSION (fails on releases with no coding-agent changelog content); widened issue-4593 watchdog test budgets from 5ms to 50ms against CI runner scheduling noise.
2026-08-17 23:55:09 +03:00
can1357 bf8537015e Merge branch 'main' into pr-8772 2026-08-17 15:55:20 +03:00
can1357 9913c58ec1 Merge branch 'main' into pr-8052 2026-08-17 11:00:58 +03:00
Anatoli Tsinovoy 16ad301117 fix(stats): restore configurable dashboard bind host 2026-08-17 09:46:49 +03:00
ChangZhuo Chen (陳昌倬) a7dc534598 fix(cli): exit cleanly after printing shell completions
Force process termination via `postmortem.quit(0)` in
`Completions.run()` after writing completion scripts to stdout. Loading
all command modules during completion generation leaves open event loop
handles (sockets, timers) that prevent natural process exit, causing
tools like chezmoi to hang.
2026-08-17 10:09:06 +08:00
Yang Yang 848f7fb0fd feat(catalog): default paid xAI and SuperGrok to grok-4.6
Point xai and xai-oauth at grok-4.6, already in the bundled catalog.
Tests pin the default id in models.json and load picker fixtures from
the catalog so the next bump does not rot hardcoded name or cost.
2026-08-16 16:29:14 -07:00
roboomp ead0a4ceb4 fix(coding-agent): resolved update target from running binary, not PATH launcher
resolveUpdateTargetFromPath gated the symlink->realpath resolution on
allowPackageManagers, so binary-only releases (a major bump or an explicit
omp.dist: "binary") wrote to the raw PATH symlink instead of the binary it
resolves to. On an admin shared install where /usr/local/bin/omp is a
root-owned symlink into a group-writable dir this either failed with EACCES
(writing <link>.new into the root-owned dir) or replaced the symlink with a
full copy, stranding the shared install behind a split-brain second binary.

Target selection no longer depends on the release's distribution channel: a
foreign symlink (a non-manager alias, an admin symlink into a shared install)
resolves to its real binary and the launcher is left intact in every channel.
A package-manager launcher (bun/npm) keeps its deliberate in-place takeover on
a binary-only release, detected by re-classifying the launcher as if managers
were allowed rather than by the channel flag. The manager bin dirs are probed
in the binary channel only when the launcher is a symlink, so plain-file
installs stay probe-free.

Fixes #8732
2026-08-16 15:00:23 +00:00
roboomp 49f22987d5 fix(tui): consolidate live tool spinner timers into one shared ticker
Every live tool block (streaming args, a running partial tool, or a task
subagent) armed its own 80ms setInterval driving requestComponentRender,
so N concurrent live blocks created N unsynchronized repaint timers that
kept the 30fps render scheduler awake near-continuously during
multi-subagent / workflowz / orchestrate work.

Replaced the per-component intervals with a single shared spinner ticker
that advances the already-phase-locked glyph once per step and repaints
every registered live block in one coalesced frame, independent of block
count. Verified 3 live blocks now share 1 timer instead of 3.

Fixes #8731
2026-08-16 14:58:57 +00:00
roboomp 74e73debaf fix(launch): scope daemon prune to the daemons container
smokeTestDaemonBroker mkdtemp'd its runtime dir directly under
os.tmpdir(), and the broker's startup sweep pruneDeadDaemonRuntimeDirs
reclaims path.dirname(runtimeDir). On a default session that is /tmp, so
--smoke-test recursively deleted every aged sibling with no live
broker/clients (tmux/ssh sockets, editor state, build trees) while still
exiting 0.

- client.ts: keep the smoke broker's project and runtime dirs under a
  single private mkdtemp parent the process owns.
- presence.ts: refuse any prune root that is not the daemons container
  and only prune entries named like a 16-hex daemon scope key, so a
  relocated runtime dir can never rm -rf unrelated neighbours.

Fixes #8721
2026-08-16 11:50:00 +00:00
can1357 02cd22dc9b feat: added live tracking and stale status warnings for agent activity snapshots
- Added live tracking and stale status warnings for agent activity snapshots.
- Fixed text wrapping with ANSI escape sequences to defer style open sequences after whitespace.
- Added VirtualRenderScheduler for deterministic virtual-clock rendering tests.
2026-08-16 10:18:56 +03:00
can1357andCan Bölük 906f5b1463 style(coding-agent/registry): formatted persisted mid-spawn test writes as template literals
- Replaced `join("\\n") + "\\n"` concatenations with template-literal interpolation in mid-spawn registry fixtures.
- Updated the three Bun.write calls in `persisted-mid-spawn-stub.test.ts` to use the template form.
2026-08-16 09:19:30 +03:00
Can Bölük f05abb0ab4 Merge remote-tracking branch 'origin/farm/38b90f8c/fix-biome-json-reporter-schema' 2026-08-16 09:13:21 +03:00
can1357 8fdb6a4197 fix(edit): dropped compact seen-line retry tokens (#8461)
Reverted the retry-token continuation flow (merge 34628528bf and prompt
follow-up 446e745bf4): seen-line rejections resend the full patch again.
2026-08-16 07:58:55 +02:00
roboomp 3d1bad9c88 fix(coding-agent): map biome 2.x json reporter schema
BiomeClient#parseJsonOutput expected a stale --reporter=json shape
(location.path.file, byte-offset span, description), so the shape guard
dropped every diagnostic against Biome 2.x output and lint() returned []
with no warning. Parse the current schema instead: string location.path,
1-indexed location.start/end {line,column}, and message. Drop the now-dead
offsetsToPositions helper and warn when a non-empty diagnostics array has
no recognizable location, so future schema drift surfaces instead of
silently reporting "no lint issues".

Fixes #8694
2026-08-16 05:39:14 +00:00
can1357 f474b43880 chore(changelog): normalized changelogs after merged fixes 2026-08-16 02:59:03 +02:00
can1357 f045ae0d07 fix(collab): replicated discarded branch markers 2026-08-16 02:57:16 +02:00
can1357 9d21956d35 Merge PR #8491: fix(agent): remove capped empty stop tails (@roboomp)
# Conflicts:
#	packages/coding-agent/src/session/agent-session.ts
#	packages/coding-agent/src/session/session-manager.ts
#	packages/coding-agent/test/agent-session-empty-stop-guard.test.ts
#	packages/coding-agent/test/session-manager-immediate-persist.test.ts
2026-08-16 02:56:08 +02:00
roboomp d421944598 fix(mcp): preserved image tool results
- Forwarded MCP image blocks to the agent and TUI without copying their base64 payloads.

- Retained existing text and resource formatting around image blocks.

- Added regression coverage for mixed text and image tool results.

Fixes #8687
2026-08-16 00:52:19 +00:00
can1357 c162a82169 fix(vibe): deferred IRC wakes during mode exit 2026-08-16 02:49:32 +02:00
can1357 5420b29364 Merge PR #8327: fix(vibe): cancel active turn on mode exit (@roboomp)
# Conflicts:
#	packages/coding-agent/test/interactive-mode-vibe-toggle.test.ts
2026-08-16 02:49:32 +02:00
can1357 c78444541b Merge PR #8560: fix(coding-agent): stop invalid Anthropic thinking fallback (@roboomp)
# Conflicts:
#	packages/coding-agent/src/session/turn-recovery.ts
2026-08-16 02:49:03 +02:00
can1357 c7ecc3ef66 Merge PR #8598: fix(session): repair torn JSONL appends (@roboomp)
# Conflicts:
#	packages/coding-agent/src/session/session-loader.ts
#	packages/coding-agent/src/session/session-manager.ts
#	packages/coding-agent/test/session-loader-stream.test.ts
2026-08-16 02:48:12 +02:00
can1357 d57a0ff233 fix(extensions): preserved drafts before custom presentation 2026-08-16 02:45:04 +02:00
can1357 5b24971163 fix(extensions): charged custom dialog setup to timeout 2026-08-16 02:45:04 +02:00
can1357 06793c72bb Merge PR #8441: fix(extensions): pause tool-call timeout during human dialogs (@Seljuke)
# Conflicts:
#	packages/coding-agent/test/extensions-runner.test.ts
2026-08-16 02:45:04 +02:00
Muhammad Mustaqeemandcan1357 87cfda9368 test(lsp): restored idle suite and completed the fake process shape 2026-08-16 02:43:35 +02:00
Muhammad Mustaqeemandcan1357 776c9b9c4d test(lsp): localized the native/unit failure with a temporary probe 2026-08-16 02:43:35 +02:00
Muhammad Mustaqeemandcan1357 815ba44173 test(lsp): drove every idle assertion from a single clock read 2026-08-16 02:43:35 +02:00
Muhammad Mustaqeemandcan1357 d62a986689 fix(lsp): stopped reaping clients with in-flight requests (#8390) 2026-08-16 02:43:34 +02:00
can1357 c404f370e7 test(coding-agent): covered parked id respawn 2026-08-16 02:43:34 +02:00
can1357 45e4fa7884 Merge PR #8492: fix(coding-agent): reclaim dead parked agent corpses on respawn (@roboomp) 2026-08-16 02:43:34 +02:00
can1357 44e50af907 fix(agent): excluded reasoning from empty-stop diagnosis 2026-08-16 02:43:34 +02:00
can1357 14813330f5 Merge PR #8512: fix(agent): name billed output tokens on capped empty stops (@roboomp) 2026-08-16 02:43:34 +02:00
can1357 e224493fe2 Merge PR #8553: fix(discovery): honor non-recursive glob in loadFilesFromDir (@roboomp) 2026-08-16 02:43:33 +02:00
can1357 7d6eb0e070 Merge PR #8556: fix(coding-agent): classify user-invoked /skill turns under auto thinking (@roboomp) 2026-08-16 02:43:33 +02:00
can1357 7af249b190 fix(coding-agent): preserved tool-search history on disk 2026-08-16 02:43:33 +02:00
can1357 b200f938b7 fix(browser): bypassed proxies for relay probes 2026-08-16 02:43:33 +02:00
can1357 f95e523462 Merge PR #8569: fix(browser): probe CDP endpoints over raw TCP to bypass HTTP_PROXY (@roboomp) 2026-08-16 02:43:33 +02:00
can1357 91591acae6 fix(lsp): preserved rust-analyzer reload params 2026-08-16 02:43:33 +02:00
can1357 c9da0718ba Merge PR #8572: fix(lsp): gate rust-analyzer/reloadWorkspace behind rust-analyzer check (@roboomp) 2026-08-16 02:43:33 +02:00