Commit Graph

10208 Commits

Author SHA1 Message Date
can1357 6754d2e718 Merge PR #8604: fix: stop mid-run compaction from hanging the live loop (@Thytu) 2026-08-16 02:13:37 +02:00
can1357 210cce26bd Merge PR #8516: fix(session): resume Cursor turns after HTTP/2 stream reset (@joseotaviorf) 2026-08-16 02:03:17 +02:00
can1357 7e4fd9a686 Merge PR #8428: fix(tui): welcome banner shows stale model name after model changes (@jacobleft) 2026-08-16 02:03:17 +02:00
can1357 7f2da16cdb fix(hub): preserved concurrent live scan claims 2026-08-16 02:03:17 +02:00
can1357 2096740027 Merge PR #8453: fix(hub): skip mid-spawn stubs in persisted scan (@tahsinrahman) 2026-08-16 02:03:16 +02:00
can1357 8de929c393 Merge PR #8285: fix(tui): preserve scrollback after hidden tool snapshots (@dannyboy-ai) 2026-08-16 02:03:16 +02:00
can1357 65ee481aa2 fix(agent): delivered checkpoint reminder to active loop 2026-08-16 02:03:16 +02:00
can1357 958a88b25a Merge PR #8503: fix(agent): optimize checkpoint/rewind prompt rendering (@szavadsky) 2026-08-16 02:03:16 +02:00
can1357 a58e73de12 Merge PR #8626: fix(tui): refresh token usage rows when toggled (@notnotype) 2026-08-16 02:03:16 +02:00
can1357 5cc9aa74bc fix(ask): used full dialog width for wrapped labels 2026-08-16 02:03:15 +02:00
can1357 565a21bfb4 Merge PR #8654: fix(ask): wrap long option labels in the rich ask dialog instead of truncating (@szavadsky) 2026-08-16 02:03:15 +02:00
can1357 0e76766f9a Merge PR #8550: fix(vibe): distinguish wait abort from timeout (@Capslockb) 2026-08-16 02:03:15 +02:00
can1357 8dddee7578 Merge PR #8664: fix(coding-agent): preserve artifacts in CLI forks (@anatoli-tsinovoy) 2026-08-16 02:03:15 +02:00
can1357 1f2fc72812 Merge PR #8665: perf(coding-agent): bound completed diff rendering (@lemonleks) 2026-08-16 02:03:15 +02:00
can1357 ca297741cb Merge PR #8538: fix(coding-agent): keep the system prompt byte-stable across date/cwd changes (@MertSoylu) 2026-08-16 02:03:14 +02:00
Anatoli Tsinovoy 62f59c86eb fix(coding-agent): guard fork artifact paths 2026-08-15 21:18:23 +03:00
Aleksandr Khaustov 006c5371ea perf(coding-agent): bound completed diff rendering 2026-08-15 20:39:36 +04:00
Anatoli Tsinovoy ea93012be4 fix(coding-agent): preserve artifacts in CLI forks 2026-08-15 19:24:54 +03:00
MertSoylu 98ef44bdb6 Merge remote-tracking branch 'upstream/main' into prompt-merge-test 2026-08-15 17:50:40 +03:00
Slava Zavadsky 00043ef3ba fix(ask): wrap long option labels in the rich ask dialog instead of truncating
The rich AskDialogComponent (merged in PR #4375) hard-truncated every
option row via truncateToWidth(firstLine, width, Ellipsis.Unicode),
clipping the disambiguating tail of long labels with no way to read it.
The legacy HookSelector dialog has wrapped labels since June 1
(3c7d50d292), so the rich dialog was the remaining truncation path.

renderRowLabel now wraps the label with wrapTextWithAnsi, indenting
continuation lines under the radio/checkbox marker so the cursor stays
visually anchored; the body ScrollView carries vertical overflow. The
note marker is reserved on the first line. Fixes #1243, #8594.
2026-08-15 09:11:32 -04:00
notnotype da29b12112 fix(tui): refresh token usage rows when toggled 2026-08-15 15:39:42 +08:00
Yang Yang d14c028aee fix(ai): allow explicit xai-oauth selectors with XAI_API_KEY
Keep hasAuth() dedicated so SuperGrok is not auto-selected from a paid
key. Explicit preflight uses hasResolvableAuth() so xai-oauth/grok-4.5
can still borrow XAI_API_KEY.
2026-08-14 22:03:12 -07:00
Valentin De Matos e4ec9f7cc8 Keep auto_compaction_start awaited on the mid-run path
Only the post-commit end/session_compact fan-out is detached.
The start emit still waits so input during that yield lands
in the compaction queue, matching the existing comment.
2026-08-14 19:54:28 -07:00
Valentin De Matos eb8c854c70 docs: add JSDoc on detached compaction lifecycle emit
Private helpers in this file carry a short block comment; the
new emit helper was the exception.
2026-08-14 19:52:20 -07:00
Valentin De Matos 8344a0e823 fix: stop mid-run compaction from awaiting lifecycle emits
Detached auto-compaction start/end (and shake) so a hung
auto_compaction_end handler cannot pin the next provider call.
2026-08-14 19:45:33 -07:00
can1357 a3c15d2dec feat(coding-agent/tools): implemented pdf page screenshot rendering
- Add `renderPdfPageScreenshot` to render PDF pages via headless Chromium.
- Update `ReadTool` to intercept legacy PDF image paths and return page screenshots.
- Ensure daemon clients are closed on read command exit.
2026-08-14 14:37:56 +02:00
can1357 85acb9ab70 fix(rpc): surface drained stderr when startup fails under load
- RpcClient: when stdout closes before ready, race child.exited (which settles only after ptree drains the stderr tail for nonzero exits) for 250ms before rejecting, so the earlier-registered exit watcher rejects with the real stderr text instead of an empty 'Stderr:'.
- mock-rpc-agent fixture: await the stderr pipe write callback before process.exit so failure text cannot be dropped unflushed.
- sdk-tool-activation: restore the default extension-handler budget once the intentionally stalled activation times out, so full-suite machine load cannot also time out the genuine recovery registration.
Both tests flaked only under concurrent full-suite chunk load; 10 concurrent stress runs pass post-fix.
2026-08-14 14:23:15 +02:00
can1357 56efdfc4db Merge PR #8546: fix(coding-agent): restore Windows external editor launch (@roboomp) 2026-08-14 14:12:00 +02:00
can1357 aae72bd5ef Merge PR #8531: docs: correct /hotkeys Ctrl+D copy to match save-draft-and-exit (@roboomp) 2026-08-14 14:11:51 +02:00
can1357 d445f987da Merge PR #8515: fix(mcp): initialize sessions before opening sse stream (@roboomp) 2026-08-14 14:11:30 +02:00
can1357 04fab5ecb4 feat: replaced custom mupdf wasm pipeline with native function
- Replaced the custom MuPDF-WASM PDF extraction and rendering pipeline with the new `pdfToMarkdown` native function from `@oh-my-pi/pi-natives`.
- Removed legacy MuPDF extraction modules, WASM embedding scripts, and PDF image extraction tools.
- Added OCR warnings and browser/text redirection for unsupported PDF image reads.
- Updated native package definitions, documentation, and test suites for the new PDF inspection capability.
2026-08-14 14:08:28 +02:00
CAPSLOCKB 1f0c2366d0 fix(vibe): distinguish wait abort from timeout 2026-08-14 14:06:49 +02:00
roboomp a9075ae509 fix(coding-agent): restored Windows external editor launch
Passed the cmd.exe /s /c command line through Bun verbatim so configured editors and temporary paths retain their quotes.

Added command-line regression coverage and documented the fix.

Fixes #8544
2026-08-14 11:27:13 +00:00
Slava Zavadsky c7dde59f65 fix(agent): set checkpoint runtime state synchronously with the active notice
Address review: #checkpointState is now assigned in the pre-await section alongside the reminder append, so a model that calls rewind immediately after seeing the notice finds an active checkpoint instead of 'No active checkpoint'. The entry id is backfilled post-await once the checkpoint toolResult entry is persisted; #applyRewind runs on a later rewind turn, never before the backfill.
2026-08-14 06:50:31 -04:00
MertSoylu 30f92ad986 fix(coding-agent): keep the system prompt byte-stable across date/cwd changes
Move the per-request date/cwd line out of the system prompt into a
first-turn system-reminder so open-weight providers keep their tool-schema
prefix cache; the reminder refreshes itself at midnight. Closes #7404.

Generated with Codebuff 🤖
Co-Authored-By: Codebuff <noreply@codebuff.com>
2026-08-14 13:16:54 +03:00
roboomp ff9c5189c9 docs: correct /hotkeys ctrl+d copy to match save-draft-and-exit
The /hotkeys table described app.exit (Ctrl+D) as "Exit (when editor is
empty)", implying readline/EOF-style conditional exit. The handler exits
unconditionally and snapshots the current prompt as a resumable draft
regardless of editor content (custom-editor.ts fires onExit for app.exit
with no empty check; input-controller.ts handleCtrlD calls shutdown()
unconditionally, which persists the draft). Corrected the line to
"Exit (saves current prompt as draft)".

Fixes #8530
2026-08-14 08:27:35 +00:00
José Otávio Rizzatti Ferreira 63ac830b50 fix(session): resume Cursor turns after HTTP/2 stream reset 2026-08-14 01:56:14 -04:00
roboomp 83d08936ae fix(mcp): initialized sessions before opening sse stream
Moved the optional Streamable HTTP GET listener after the initialized notification so stateful servers do not terminate the session during setup.

Added regression coverage for a server that rejects pre-initialization GET traffic.

Fixes #8514
2026-08-14 05:33:38 +00:00
Slava Zavadsky 0b294ead5b fix(agent): deliver checkpoint-active reminder synchronously from a prompt file
Address review: move the reminder text into a static prompt file rendered via prompt.render (no inline prompt strings); append it to agent.state synchronously before any await in the message_end handler so the next provider call within the same tool loop always sees it; persist it via the interrupted-thinking pattern; locate the checkpoint entry by message identity since the reminder entry now follows it; collapse the rewind tool description to one line (the MUST-rewind rule lives in the notice).
2026-08-14 01:11:05 -04:00
Slava Zavadsky 24779714e6 fix(agent): optimize checkpoint/rewind prompt rendering
Move the rewind instruction out of the permanent checkpoint tool result into a transient post-checkpoint notice that is branch-cut away on rewind; rewrite the rewind-report prompt forward-looking (no negation); collapse the rewind tool description to one line. Closes #8499.
2026-08-14 01:11:05 -04:00
usr-bin-roygbiv fe33232298 fix(gemini): preserve retry and rendering boundaries 2026-08-14 02:48:18 +00:00
usr-bin-roygbiv b1ce77c109 fix(gemini): recover malformed and thought-only turns 2026-08-14 01:35:21 +00:00
can1357 642d6c0b31 fix(coding-agent): preserved linked update ownership
Detected npm and Bun ownership from the bin link immediate target within each precise global node_modules root. Foreign aliases now update their resolved standalone binary without replacing the alias.

Fixes #8468
2026-08-14 00:27:16 +02:00
can1357 15981329d6 refactor(coding-agent): migrated external editor and removed obsolete tests
- Replaced child_process spawn with Bun.spawn in packages/coding-agent/src/utils/external-editor.ts.
- Removed the browser tab evaluation test suite from packages/coding-agent/test/tools/browser-tab-evaluate.test.ts.
2026-08-14 00:14:29 +02:00
can1357 6ecb1e3383 Revert "fix(coding-agent): routed foreign aliases to binary updates"
This reverts commit 834002adc5.
2026-08-14 00:13:49 +02:00
can1357 0d6a7146a3 feat(coding-agent): supported allSettled and any promise combinators in browser scope
- Added `allSettled` and `any` to tracked promise combinators in run scope.
- Updated browser cancellation tests to cover new promise combinators.
2026-08-14 00:11:04 +02:00
roboomp a02f88994b fix(tools): preserve workspace-relative path in read hashline headers
formatReadHashlineHeader collapsed every relative in-workspace path to its
basename, so reading a nested file (e.g. src/settings.json) emitted
[settings.json#tag]. When a same-basename file existed at the session cwd,
a verbatim follow-up edit resolved against the cwd file; Patcher.prepare only
runs snapshot-tag path recovery when the authored path is missing, so the
valid edit was deterministically rejected with "hash is not from this
session". Keep the workspace-relative path, which names the file uniquely and
stays directly resolvable against cwd. Out-of-workspace absolute paths remain
shortened; root-level files are unchanged.

Fixes #8482
2026-08-14 00:04:59 +02:00
roboomp 834002adc5 fix(coding-agent): routed foreign aliases to binary updates
Resolved npm and bun bin-entry symlinks before selecting the update method, and preserved foreign aliases by replacing their standalone target.

Fixes #8468
2026-08-14 00:03:33 +02:00
roboomp 6fc50c3e41 fix(coding-agent): prevented post-yield TUI stalls
Kept the Bun event loop live across subagent yield drains and delayed parent result flushes. Added a timer-lifecycle regression for the idle flush.

Fixes #8462
2026-08-14 00:01:31 +02:00
can1357 58f319912e feat: introduced dynamic version discovery and rate limit parsing for google
- Added dynamic Antigravity version discovery with environment variable overrides and fallback endpoint support.
- Introduced structured Google RPC `ErrorInfo` rate limit reason parsing and backoff classification.
- Added `gemini-3.7-flash` and `deepseek-v4-pro:preview` model configurations alongside updated pricing.
- Removed system instruction injection logic and dropped unsigned thinking blocks for Antigravity requests.
2026-08-13 23:59:37 +02:00