Commit Graph

14416 Commits

Author SHA1 Message Date
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
can1357 1d45bd6dcd Merge PR #6180: fix(ai): recover empty Antigravity responses across endpoints (@usr-bin-roygbiv) 2026-07-22 21:12:20 +02:00
can1357 b5b645c921 fix(installer): fall back to /usr/sbin/sysctl when sysctl is not on PATH 2026-07-22 21:12:20 +02:00
can1357 87e55d10d7 Merge PR #6269: fix(installer): avoid mismatched bun architecture on apple silicon (@roboomp) 2026-07-22 21:12:20 +02:00
can1357 945ccf4bb0 fix(release): only fingerprint source bullets consumed by summarization
Recording fingerprints for bullets the model preserved verbatim made the
next runChangelogFixer pass (release.ts step 5) treat the still-valid
Unreleased bullet as already consumed and drop it from the release notes.
Record after applyRewrite and skip items whose exact text survives in the
rewritten section; add a verbatim-keep regression.
2026-07-22 21:12:20 +02:00
can1357 91a5364fb8 Merge PR #6232: fix(release): preserve changelog source fingerprints (@roboomp) 2026-07-22 21:12:20 +02:00
can1357 96be01e975 Merge PR #6186: fix(release): make package publish reruns idempotent (@any-victor) 2026-07-22 21:12:19 +02:00
can1357 e06ac0b787 feat(catalog): updated model catalog with new models and variant support
- Removed deprecated devin models and legacy GPT-5 codex variants from model catalog.
- Added Gemini 3.5 Flash Lite and Gemini 3.6 Flash models across multiple providers.
- Added SWE-1.6, SWE-1.7, poolside/laguna, and other new models to catalog.
- Added variant collapse support for Gemini 3.6 Flash family.
- Updated context windows, pricing, and API routing for various qwen and grok models.
2026-07-22 20:30:03 +02:00
roboomp a2c90f5e5f fix(tui): collapsed synthetic advisor inputs in transcript viewer
Cold-opening a large read-only Advisor transcript froze the TUI for tens
of seconds: AgentTranscriptViewer.render() called the full
container.render() before ScrollView clipped, laying out every synthetic
`Session update` input as full Markdown. A 6.5 MiB __advisor.jsonl
blocked the first frame ~27s in a repro.

Synthetic (agent-attributed) inputs now render as a CollapsedSyntheticMessageComponent:
one dim summary row (heading, size, line count, ctrl+o hint) that builds
the heavy UserMessageComponent Markdown only on expand. Blocks above the
viewport never pay layout on cold open; the raw observability data in
__advisor.jsonl is untouched. Real user prompts stay fully rendered.

Fixes #6308
2026-07-22 18:12:24 +00:00
Alexander Kirilin 298fea76bd chore(agent): clean retry helper formatting 2026-07-22 09:49:55 -04:00
roboomp b257a6dcbf fix(session): preserved startup fallback ownership
- Carried startup-selected fallback role and primary selector into AgentSession.
- Continued remaining role fallback entries after the startup fallback fails.
- Added regression coverage for chained startup failover.

Fixes #6283
2026-07-22 11:11:30 +00:00