Commit Graph

1958 Commits

Author SHA1 Message Date
can1357 4dc82c56b9 chore(session): removed unused loader import 2026-08-16 02:59:57 +02: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
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 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
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 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 276c531393 Merge PR #8612: fix(auto-thinking): clear proxy thinking budget in online classifiers (@roboomp) 2026-08-16 02:43:32 +02:00
can1357 5272039e33 Merge PR #8636: fix(hub): prevent stale agent refs from blocking wait (@roboomp) 2026-08-16 02:43:31 +02:00
can1357 db056bd8cb chore(repo): applied biome formatting 2026-08-16 02:15:26 +02:00
can1357 b445134b4d Merge PR #8370: fix: retry transient Anthropic failures at oneshot LLM call sites (@wonjun3991)
# Conflicts:
#	packages/coding-agent/src/utils/title-generator.ts
2026-08-16 02:14:12 +02:00
can1357 0128fe323f Merge PR #8645: perf(session): stream persisted session init probes (@lemonleks) 2026-08-16 02:13:37 +02:00
can1357 f901273918 fix(coding-agent): detached mid-run lifecycle handlers fully 2026-08-16 02:13:37 +02:00
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 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 8dddee7578 Merge PR #8664: fix(coding-agent): preserve artifacts in CLI forks (@anatoli-tsinovoy) 2026-08-16 02:03:15 +02:00
Aleksandr Khaustov 9c695cf98a refactor(session): simplify streamed entry visits 2026-08-15 23:54:30 +04:00
Anatoli Tsinovoy 62f59c86eb fix(coding-agent): guard fork artifact paths 2026-08-15 21:18:23 +03:00
Anatoli Tsinovoy ea93012be4 fix(coding-agent): preserve artifacts in CLI forks 2026-08-15 19:24:54 +03:00
Aleksandr Khaustov cbbaceac36 fix(session): preserve title slots in entry visitor 2026-08-15 16:57:08 +04:00
Aleksandr Khaustov 2076dc3960 perf(session): stream persisted session init probes 2026-08-15 16:33:44 +04:00
roboomp e8b7024b12 fix(hub): prevented stale agent refs from blocking wait
Mirrored registry status from pre-wire session run-state transitions and required live session corroboration before a peer can sustain bare hub waits.

Fixes #8634
2026-08-15 10:19:05 +00:00
roboomp 41a9afabf1 fix(auto-thinking): clear proxy thinking budget in online classifiers
The online difficulty and unexpected-stop classifiers call the tiny/smol model with disableReasoning plus maxTokens=1024. On the openai-completions transport (LiteLLM), disableReasoning on a reasoning model is downgraded to the lowest reasoning effort, so omp still emits reasoning_effort. LiteLLM/Vertex translates that to an Anthropic thinking.budget_tokens of at least 1024, and max_tokens=1024 is not greater than the budget, so every classifier call 400s.

Give the online classifiers 4096 output tokens so the request clears a proxy-injected minimum thinking budget (and leaves room for the keyword). Local reasoning budgets are unchanged.

Fixes #8610
2026-08-15 05:32:22 +00: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
roboomp 9ae089d71b fix(session): repaired torn JSONL appends
Rolled partial file appends back to their pre-write size and marked malformed resumed sessions for an atomic rewrite.

Retried transient persistence failures from in-memory state and surfaced the first failure in the interactive TUI.

Fixes #8596
2026-08-15 00:34:41 +00:00
roboomp 77336d880c fix(coding-agent): blocked model-bound Anthropic fallback
Skipped same-provider cross-model fallback candidates when the latest assistant turn contains signed or redacted Anthropic thinking.

Kept same-model retry available for transient failures and added regression coverage.

Fixes #8558
2026-08-14 14:40:20 +00:00
roboomp c3b1032c3c fix(coding-agent): stopped invalid Anthropic thinking fallback
Prevented deterministic 400 errors for immutable thinking blocks from entering same-model retries or configured model fallback.

Added a signed-thinking session regression covering the terminal error and retry UI lifecycle.

Fixes #8558
2026-08-14 14:31:18 +00:00
roboomp 8afd71d921 fix(coding-agent): classify user-invoked /skill turns under auto thinking
A user-invoked /skill:<name> reaches the session as a user-attributed skill custom message (role custom, attribution user) whose expanded SKILL.md body is the task prompt. The auto-thinking gate in #promptWithMessage only accepted role === "user", so these turns skipped classifyDifficulty/applyAutoThinkingLevel and the effort stayed stuck on pending auto.

Broaden the gate to also accept user-invoked skill prompts via the now-exported isUserInvokedSkillPrompt helper; agent-originated and autoload skill injections stay excluded.

Fixes #8554
2026-08-14 13:27:01 +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
José Otávio Rizzatti Ferreira 63ac830b50 fix(session): resume Cursor turns after HTTP/2 stream reset 2026-08-14 01:56:14 -04: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
roboomp b6aa92b143 fix(agent): restrict billed-output empty-stop message to zero-block stops
A thinking-only stop still routes through the empty-stop handler
(isEmptyAssistantStop treats a non-actionable stop as empty) and bills
output tokens for its reasoning, so the billed-output branch would falsely
report that content was generated and dropped by a provider filter. Gate the
branch on a truly zero-block stop (content.length === 0) so thinking-only
stops keep the context/`/shake images` recovery hint.

Fixes #8511
2026-08-14 04:55:50 +00:00
roboomp d256367b72 fix(agent): name billed output tokens on capped empty stops
An empty assistant `stop` that exhausts the retry cap always reported the
context/`/shake images` hint, even when the provider billed output tokens
for the turn. Billed output on a zero-block stop means content was generated
and then dropped downstream (a filter/refusal flattened to
`finish_reason: "stop"` by a proxy, or a lossy API translation), so the
images/context advice is actively misleading there.

Branch the capped `finalError` in `#handleEmptyAssistantStop` on
`assistantMessage.usage.output`: keep the context hint when nothing was
generated, and otherwise name the billed output-token count and point at a
provider-side filter/translation. Also log `outputTokens` alongside the
existing warning fields.

Fixes #8511
2026-08-14 04:51:06 +00:00
roboomp 6c11950366 fix(session): preserved discard metadata children
Reparent service-tier metadata before removing discarded empty turns. Persist a branch marker for content-bearing children so reload never selects the discarded subtree.

Fixes #5179
2026-08-14 01:55:35 +00:00
roboomp 87970fb2b2 fix(session): made discarded empty stops durable
Empty assistant stops were reparented off the active leaf in memory only. The session loader rebuilds the active branch from the last physical journal entry, so a capped empty stop (or one killed mid-retry) resurfaced as the active leaf on reload. Added SessionManager.dropLeafEntry to physically remove the entry and rewrite the file, and route every empty-stop discard through it.

Fixes #5179
2026-08-14 01:41:54 +00:00
usr-bin-roygbiv b1ce77c109 fix(gemini): recover malformed and thought-only turns 2026-08-14 01:35:21 +00:00
roboomp da76e62496 fix(agent): removed capped empty stop tails
Waited for assistant-message persistence before removing a capped empty stop from live and persisted context.

Fixes #5179
2026-08-14 01:24:15 +00: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