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