Commit Graph

14559 Commits

Author SHA1 Message Date
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 1b77b42ba2 Merge PR #6204: fix(tui): route explicit appearance refresh through tmux (@roboomp) 2026-07-22 21:13:18 +02:00
can1357 d65f734e81 Merge PR #6224: fix(tui): deduplicate slash command aliases (@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 d1979782e7 Merge PR #6282: fix(tui): render ST-terminated OSC 8 links in Markdown tables (@pppobear) 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 e117474bb5 docs(changelog): move #6177 entry to Unreleased section 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
can1357 52236fa1a5 Merge PR #6262: fix(settings): merge global model roles per-role on save (@roboomp) 2026-07-22 21:13:14 +02:00
can1357 fc311ad38d Merge PR #6231: fix(ai): qualify auth-gateway model IDs (@roboomp) 2026-07-22 21:13:14 +02:00
pr-eval ab8e36fa6c test(coding-agent): make prewalk no-auth test independent of runner env keys
hasAuth() consults $HOME/.env via getEnvApiKey, so a CEREBRAS_API_KEY in the
runner's home .env legitimately armed prewalk and failed the no-auth case.
Force the condition with a hasConfiguredAuth spy.
2026-07-22 21:13:14 +02:00
can1357 b6674731a0 Merge PR #6203: fix(coding-agent): keep startup alive when prewalk target lacks auth (@roboomp) 2026-07-22 21:13:14 +02:00
can1357 e49426c949 fix(cli): prefer authenticated provider for flat slashful model ids
Flat aggregator ids whose prefix collides with a provider slug (e.g.
openai/gpt-oss-120b hosted on OpenRouter) bypassed the authenticated-model
preference: the explicit-provider branch searched the full catalog only.
Keep provider/id exact references authoritative, but let the flat-id
fallback prefer authenticated providers before catalog order.
2026-07-22 21:13:14 +02:00
can1357 c74ef96263 Merge PR #6230: fix(cli): prefer authenticated provider for bare models (@roboomp) 2026-07-22 21:13:13 +02:00
can1357 ccbe190d64 fix(sdk): inherit role thinking level on startup retry fallback
A retry-chain entry without its own :level suffix now inherits the
unavailable primary's configured thinking level, matching runtime
fallback-chain semantics. Regression test asserts a level that differs
from the fallback model's default.
2026-07-22 21:13:13 +02:00
can1357 a929cde5e2 Merge PR #6285: fix(sdk): resolve missing role fallback chains (@roboomp) 2026-07-22 21:13:13 +02:00
can1357 c083170c46 Merge PR #6233: fix(sdk): resolve configured default role over cold-cache discovery race (@roboomp) 2026-07-22 21:13:13 +02:00
can1357 50ee1a7998 Merge PR #6196: fix(coding-agent): preserve compat overrides on model refresh (@roboomp) 2026-07-22 21:13:13 +02:00
can1357 892beba18b Merge PR #6210: fix(catalog): use LM Studio's loaded context window not the max (@roboomp) 2026-07-22 21:13:12 +02:00
can1357 45df1a0fd5 Merge PR #6286: fix(catalog): restore cached Copilot 1M models via requestModelId (@roboomp) 2026-07-22 21:13:12 +02:00
can1357 45d00ad296 Merge PR #6266: fix(catalog): union Codex models across OAuth accounts (@roboomp) 2026-07-22 21:13:12 +02:00
can1357 f1cf6af338 fix(catalog): move #6108 changelog entry under Unreleased 2026-07-22 21:13:01 +02:00
can1357 12b6c33c07 Merge PR #6219: fix(catalog): retain ChatGPT-only Codex models (@roboomp)
# Conflicts:
#	packages/catalog/test/codex-discovery.test.ts
2026-07-22 21:13:01 +02:00
can1357 8aa37edf16 Merge PR #6261: fix(catalog): floor gpt-5.6 codex context window at 372k (@roboomp) 2026-07-22 21:12:22 +02:00
can1357 f741936c56 test(agent): signal tool boundary from the gate itself
The Promise.withResolvers signal resolved inside the scripted model
response fires before the loop can possibly dispatch the tool, so the
parked-state assertions passed even with parking disabled (verified by
simulation: 20/20 green with waitUntilResumed stubbed out). Resolve the
readiness signal from a test-local wrap of agentPauseGate.waitUntilResumed
instead: deterministic (no wall-clock race with the cold yieldIfDue
timer), immune to sibling restoreAllMocks (manual patch, restored in
finally), and a non-parking regression now hangs the await and fails
the test.
2026-07-22 21:12:22 +02:00
can1357 206d812244 Merge PR #6185: test(agent): synchronize pause gate tool boundary (@any-victor) 2026-07-22 21:12:21 +02:00
can1357 b81cbb00ff docs(ai): note string-vs-Error pattern asymmetry in isTransientStreamParseError 2026-07-22 21:12:21 +02:00
can1357 50937ecf08 Merge PR #6136: fix(agent): recover tools after stream parse errors (@usr-bin-roygbiv) 2026-07-22 21:12:21 +02:00
can1357 b98b4d1607 docs: add [Unreleased] changelog entries for connection-failure retry classification 2026-07-22 21:12:21 +02:00
can1357 06f2ae96f6 Merge PR #6139: fix(ai): retry provider connection failures (@usr-bin-roygbiv) 2026-07-22 21:12:21 +02:00
can1357 38661e8146 Merge PR #6239: fix(providers): suppress Bearer N/A header for keyless auth providers (@roboomp) 2026-07-22 21:12:21 +02:00
can1357 00bdad3feb Merge PR #6209: fix(ai): validate custom Alibaba endpoints by model list (@roboomp) 2026-07-22 21:12:20 +02:00
can1357 aeaa49a35a Merge PR #6195: fix(ai): preserve native thinking signatures through leaked-thinking wrapper (@roboomp) 2026-07-22 21:12:20 +02:00