Commit Graph
1935 Commits
Author SHA1 Message Date
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 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
usr-bin-roygbiv b1ce77c109 fix(gemini): recover malformed and thought-only turns 2026-08-14 01:35:21 +00:00
roboompandcan1357 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 eadfbcb689 Merge PR #8440: fix(discovery): honor Claude config directory (@roboomp) 2026-08-13 18:01:31 +02:00
roboomp 3629464cf9 fix(discovery): honored claude config directory
Resolved Claude user configuration, plugin, MCP, and session paths through CLAUDE_CONFIG_DIR while retaining the legacy defaults.

Fixes #8436
2026-08-13 15:33:27 +00:00
roboomp 7463803c95 fix(extensions): populated runtime mode in context
Expose the Pi-compatible tui, rpc, json, or print host mode to every extension context and cover mode transitions in the runner regression suite.

Fixes #8419
2026-08-13 08:51:05 +00:00
can1357 2d512cb253 refactor: generalized thinking loop guard for multiple model families
- Generalized thinking loop guard and helper functions to support Gemini, DeepSeek, and Grok model families.
- Replaced `withGeminiThinkingLoopGuard` and related Gemini-specific symbols with generalized counterparts.
- Removed deprecated `enableGeminiThinkingLoopGuard` options and associated tests.
- Updated test suites and agent session logic to use the generalized thinking loop guard and model family tokens.
2026-08-13 06:15:00 +02:00
can1357 e8eed95130 feat(coding-agent): introduced fine grained per agent advisor configuration
- Replaced blanket subagent advisor global settings with fine-grained per-agent configuration and frontmatter support.
- Added dashboard keybindings and inline override editors for managing agent advisor patterns.
- Implemented settings migration logic to convert legacy global options into per-agent settings.
- Updated session persistence and execution layers to restore and enforce per-agent advisor behaviors.
2026-08-13 04:59:50 +02:00
wonjun3991 38a2040b8d fix(coding-agent): retry transient failures at oneshot LLM call sites
Session title generation, TTS speech enhancement, commit-message
generation, the auto-thinking and unexpected-stop classifiers, memory
extraction/consolidation, the commit analysis/summary/changelog/map/reduce
passes and the mnemopi LLM callback each aborted or degraded on the first
transient blip. Several returned null, which made a provider overload
indistinguishable from a legitimate empty result.

The commit analysis, summary, changelog and reduce passes also fed a
provider error message straight into their response parsers: they never
checked stopReason, so a failed request produced garbage instead of
surfacing the error. The map phase's own retry helper only caught thrown
errors, so a resolved stopReason "error" bypassed it entirely.

Sites deliberately left unwrapped: the Anthropic web_search provider
(server-side execution, billed per search - a re-request duplicates a real
side effect), the legacy streamSimple shim (already-emitted events would
duplicate), the auth-gateway health probe (a probe must report the state
it observed), and the script paths whose own retry logic tracks per-attempt
usage or re-requests only the failed subset.
2026-08-13 10:54:42 +09:00
wonjun3991 720ac2168a fix(agent): retry handoff, branch summary and manual /compact on a blip
Each is a single, side-effect-free completion whose result is parsed after
it resolves, so one transient provider failure previously aborted the
whole operation - for /compact that left the user's context full.

Adds SummaryOptions.oneshotRetry, because both compaction paths call the
same generateSummary and the policy therefore cannot be a constant inside
it. Manual /compact has no outer loop and gets retry by default;
auto-compaction passes false because session-maintenance already retries
the whole attempt, and nesting would multiply the budget (10 outer x 3
inner) while stacking each outer wait on an inner backoff.
2026-08-13 10:54:42 +09:00
can1357 3e28a1afb4 feat(coding-agent): implemented threshold for demoting interrupted thinking
- Added a 60-character minimum length threshold for demoting interrupted thinking into hidden continuity context in agent-session.ts.
- Updated LLM message conversion in messages.ts to strip incomplete thinking from user-interrupted assistant turns regardless of continuity note presence.
- Added test coverage in agent-session-interrupted-thinking.test.ts verifying behavior for reasoning lengths below and at the threshold.
2026-08-13 02:16:08 +02:00
can1357 61e12988fe Merge PR #8283: fix(coding-agent): skip idle mid-turn persistence waits (@ethancawse) 2026-08-13 02:00:50 +02:00
can1357 2dddba9fe4 Merge PR #8199: fix(coding-agent): gate prompt tool mentions on session tool availability (@szavadsky)
# Conflicts:
#	packages/coding-agent/src/prompts/system/orchestrate-notice.md
#	packages/coding-agent/src/prompts/system/plan-mode-active.md
#	packages/coding-agent/src/prompts/system/project-prompt.md
#	packages/coding-agent/src/prompts/system/system-prompt.md
2026-08-13 01:18:42 +02:00
can1357 3bc6269dbe Merge PR #8339: fix(coding-agent): normalize WebP for STB-backed models (@ethancawse) 2026-08-13 01:14:54 +02:00
can1357 eafefaccf7 Merge PR #8337: fix(usage): use authoritative OpenCode Go quotas (@will-bogusz) 2026-08-13 01:14:53 +02:00
can1357 30f078c6fa Merge PR #8185: fix(session): resolve wire-name aliases in hasBuiltInTool (@roboomp) 2026-08-13 01:14:50 +02:00
can1357 79952d8740 Merge PR #8169: fix(rpc): strip snapcompact archive from compact result (@roboomp) 2026-08-13 01:14:50 +02:00
can1357 e8782235e2 Merge PR #8097: fix(cli): surface actionable error when auth broker is unreachable (@roboomp) 2026-08-13 01:14:47 +02:00
can1357 932bb6d244 Merge PR #8080: fix(session): forward retry fallback events to extensions (@roboomp) 2026-08-13 01:14:47 +02:00
can1357 a5434d7341 Merge PR #8076: fix(advisor): preserve advisor fallback role ownership (@roboomp) 2026-08-13 01:14:47 +02:00
can1357 abc1897fc3 fix(agent): fit retry fallback against retry prompt 2026-08-13 01:14:46 +02:00
can1357 f73baac583 Merge PR #8068: fix(agent): fit-check retry fallback before switching models (@roboomp) 2026-08-13 01:14:46 +02:00