Commit Graph

8146 Commits

Author SHA1 Message Date
can1357 b4a3abe445 feat: added hasProvider method to detect known model providers
- Implemented ModelRegistry.hasProvider to return true when a provider has live models, is discoverable, or is registered at runtime.
- Replaced AgentSession's internal provider check with #isKnownProvider that delegates to the new hasProvider method, updating related fallback logic.
2026-07-23 11:17:00 +02:00
can1357 7504d4c24d fix(coding-agent): kept setup wizard selection visible on short terminals
- Provider sign-in, theme, and web-search lists now shrink their visible row window to fit available height.
- Decorative chrome (sign-in hint, theme mock preview) yields to the list when space is tight.
- SelectList and OAuthSelector expose `setMaxVisible`/`setMaxHeight` so hosts can refit lists after construction.
2026-07-23 03:36:20 +02:00
can1357 52ad6516ef feat(diff): implemented native UTF-16 diff processing and removed jsdiff
- Implemented native UTF-16 text processing in Rust diff module with support for unpaired surrogates.
- Removed `similar` crate from Rust workspace and `diff` npm package from coding-agent, hashline, and natives.
- Removed jsdiff fallback wrappers and `isWellFormed()` guards from TypeScript diff implementations.
- Added comprehensive test suite for native diff functions covering random inputs and edge cases including surrogates and emoji.
- Renamed model `codex-auto-review` to `gpt-5.3-codex-spark` with updated pricing and context window.
2026-07-23 01:35:31 +02:00
can1357 2f5a67694a test(dap): made tcp transport tests deterministic
- Replaced the subprocess-based delayed-banner test with in-process
  tests of the exported waitForTcpServerListening gate (banner split
  across chunks, stdout end without banner).
- Dropped wall-clock elapsed assertions from the ghost-socket tests;
  the connection-closed rejection message already distinguishes the
  wake path from a request timeout.
2026-07-23 01:22:24 +02:00
can1357 b6e68fd243 fix(coding-agent): updated mentions of explore -> scout 2026-07-23 00:12:07 +02:00
can1357 242bcbef8c revert #6130: doesn't really work well 2026-07-22 23:54:15 +02:00
can1357 59877a01bd fix(update): fetch musl release asset on musl hosts and align musl release test
- omp update's getBinaryName now detects a musl Linux host (Alpine release file or /lib/ld-musl-* loader, mirroring scripts/install.sh) and downloads omp-linux-musl-<arch>, so self-update no longer replaces a musl install with the glibc build.
- Updated musl-release dry-run assertions to the Bun.build output format the binaries script now emits; promoted the musl changelog entry to [Unreleased].
2026-07-22 23:12:24 +02:00
can1357 08a0af909c fix(session): keep content-less overflow rejections out of persisted terminal error turns
- #6253's dead-end persist now skips context-overflow errors so the auto-compaction progress guard's contract (live-UI-only overflow rejections) still holds; non-overflow terminal provider errors keep persisting per #6249/#6250.
2026-07-22 21:40:05 +02:00
can1357 8a9aa0342d chore: format evaluator fix commits and suppress intentional DAP placeholder lint 2026-07-22 21:16:38 +02:00
can1357 9a0a154e53 Merge PR #6279: perf(coding-agent): compute edit and word diffs natively (@wolfiesch) 2026-07-22 21:13:23 +02:00
can1357 b39b49a2c4 docs(coding-agent): fix grammar in resolveSpawnItems doc comment 2026-07-22 21:13:23 +02:00
can1357 9c6c53435b Merge PR #6130: feat(coding-agent): add capture-only apply control to the task tool (@korri123) 2026-07-22 21:13:23 +02:00
can1357 741aaa301d Merge PR #5895: feat(tui): allow re-answering a past ask from the session tree (@Mathews-Tom) 2026-07-22 21:13:23 +02:00
can1357 9720c091ff Merge PR #6235: fix(coding-agent): show changelog in standalone binaries (@roboomp) 2026-07-22 21:13:22 +02:00
can1357 17a571472e Merge PR #6182: fix(coding-agent): avoid stack overflow in deeply nested HTML exports (@jiwangyihao) 2026-07-22 21:13:22 +02:00
can1357 9c54d25a4e Merge PR #6298: fix(cli): dispose model-listing extensions (@roboomp) 2026-07-22 21:13:22 +02:00
can1357 8ac9d121c6 Merge PR #6212: fix(dap): close tcp connect race and wake pending requests on transport end (@roboomp) 2026-07-22 21:13:22 +02:00
can1357 a07d72f638 fix(git): report missing cwd distinctly from missing git binary
A deleted/nonexistent cwd also makes Bun.spawn throw ENOENT; only claim
'git is not installed.' when the working directory actually exists, else
name the missing directory. Addresses the Codex P2 review on #6237.
2026-07-22 21:13:21 +02:00
can1357 a4bd7a4df3 Merge PR #6237: fix(git): degrade gracefully when git binary is missing (@roboomp) 2026-07-22 21:13:21 +02:00
can1357 b9072f1991 fix(extensibility): validate Type.Unsafe against the draft-2020-12 upgraded schema
Aligns the shim's runtime safeParse/__validator with the wire/tool-call
path, so legacy draft-07 documents (tuple items) accept the same values
validateToolArguments does. Adds a regression test.
2026-07-22 21:13:21 +02:00
can1357 d6cbf9a6aa Merge PR #6241: fix(extensibility): add Type.Unsafe to typebox shim (@roboomp) 2026-07-22 21:13:21 +02:00
can1357 9995325ad5 fix(sdk): carry strict through the custom-tool definition bridge
customToolToDefinition rebuilt ToolDefinition without strict, so the
Task proxies' (and startup MCP tools') explicit strict:false was dropped
before RegisteredToolAdapter and the OpenAI-family serializers saw it.
Declare strict on ToolDefinition, copy it in the bridge, and cover the
proxy -> definition -> registered adapter path in the parity test.
2026-07-22 21:13:21 +02:00
can1357 9952adbc82 Merge PR #6242: fix(mcp): route task proxies through source tool and mark tools non-strict (@roboomp) 2026-07-22 21:13:21 +02:00
can1357 59db75d6d4 Merge PR #6205: fix(task): surface actionable shape error for batch calls (@roboomp) 2026-07-22 21:13:20 +02:00
can1357 c5489fa5c5 Merge PR #6222: fix(write): reject unknown URI-like targets (@roboomp) 2026-07-22 21:13:20 +02:00
can1357 13e7f29bc4 Merge PR #6296: fix(tools): cap per-tool default timeout with tools.maxTimeout (@roboomp) 2026-07-22 21:13:20 +02:00
can1357 d4219e6d0b Merge PR #6207: fix(usage): align multi-account /usage columns across windows (@roboomp) 2026-07-22 21:13:19 +02:00
can1357 95bf32cc31 Merge PR #6215: fix(prompting): preserve absolute working directory (@roboomp) 2026-07-22 21:13:19 +02:00
can1357 1a09f5cfd6 fix(auth): reject image smart-paste while a modal prompt owns focus
The new global smart-paste listener reused handleImagePaste(), whose
image branches insert [Image #N] into the hidden main editor when a
login/API-key prompt is focused. Mirror the enhanced-paste behavior:
show 'Image paste is not supported in this prompt' and skip image-path
detection so only clipboard text reaches the focused prompt.
2026-07-22 21:13:19 +02:00
can1357 829d2dcea9 Merge PR #6201: fix(auth): route smart paste into focused prompts (@roboomp) 2026-07-22 21:13:19 +02:00
can1357 680cb38436 Merge PR #6220: fix(tts): prioritize playback interruption on Esc (@roboomp) 2026-07-22 21:13:19 +02:00
can1357 cfe296220d Merge PR #6305: fix(coding-agent/launch): wake ready waits on sticky marker not live state (@roboomp) 2026-07-22 21:13:19 +02:00
can1357 5477e74bb3 Merge PR #6307: fix(coding-agent): align bundled task prewalk display (@roboomp) 2026-07-22 21:13:18 +02:00
can1357 a1bdf4a352 Merge PR #6214: fix(tui): refresh prewalked subagent model (@roboomp) 2026-07-22 21:13:18 +02:00
can1357 1fecdb84fd Merge PR #6240: fix(tui): lock plan review overlay after a choice commits (@roboomp) 2026-07-22 21:13:18 +02:00
can1357 2393f3fd1e Merge PR #6217: fix(tui): surface provider errors above plan review (@roboomp) 2026-07-22 21:13:17 +02:00
can1357 e7f3fde12b fix(tui): prune settled-component cache to rendered messages on rebuild
Session entries keep AgentMessage objects strongly reachable for the whole
session, so WeakMap entries for compacted-away history pinned their
components' rendered layout caches forever. Rebuild now retains only
components for messages the new transcript context actually renders.
2026-07-22 21:13:17 +02:00
can1357 e1173b8aeb Merge PR #6199: fix(tui): reuse settled components after compaction (@roboomp) 2026-07-22 21:13:17 +02:00
can1357 6389f4628a Merge PR #6313: fix(tui): collapse synthetic advisor inputs in the transcript viewer (@roboomp) 2026-07-22 21:13:17 +02:00
can1357 6039f1a377 Merge PR #6270: fix(agent): bound OpenRouter thinking stream retries (@riverpilot) 2026-07-22 21:13:17 +02:00
can1357 ca1deb7aec Merge PR #6227: fix(coding-agent): replay committed tasks over dirty parent (@roboomp) 2026-07-22 21:13:16 +02:00
can1357 b6e9d387d7 fix(mnemopi): derive legacy retention cursor conservatively
Pre-fix resumed sessions wrote cumulative transcript rows under the
incremental ${sessionId}-<ts> source_id shape, so summing every prefixed
legacy row could overshoot the real retained prefix and permanently skip
unseen turns. Use per-row max instead: it can only under-count, which at
worst re-stores one suffix before an explicit cursor row takes over.
Adds a regression seeding a legacy bank with two incremental rows plus a
cumulative resumed row and asserting turns 7-8 still get retained.
2026-07-22 21:13:16 +02:00
can1357 576ee28434 Merge PR #6202: fix(mnemopi): retain only unretained turns on consolidation (@roboomp) 2026-07-22 21:13:16 +02:00
can1357 75b06747aa Merge PR #6225: fix(coding-agent): make hindsight request timeouts per-op and configurable (@roboomp) 2026-07-22 21:13:16 +02:00
can1357 d723de46f9 Merge PR #6206: fix(session): skip titles for local extension commands (@roboomp) 2026-07-22 21:13:16 +02:00
can1357 1ed10c5cef Merge PR #6197: fix(todo): prevent stale batch state replay (@roboomp) 2026-07-22 21:13:15 +02:00
can1357 29a94ac49c Merge PR #6200: fix(session): retry past synthetic tool results after mid-tool-call stall (@roboomp) 2026-07-22 21:13:15 +02:00
can1357 e05419a354 Merge PR #6234: fix(session): log provider turn errors at warn with error fields (@roboomp) 2026-07-22 21:13:15 +02:00
can1357 e912efaa79 Merge PR #6226: fix(session): skip stop hooks during aborts (@roboomp) 2026-07-22 21:13:15 +02:00
can1357 6542641ad8 Merge PR #6253: fix(session): persist terminal empty error turns ending the run (@roboomp) 2026-07-22 21:13:14 +02:00