Commit graph

6449 commits

Author SHA1 Message Date
Armin Ronacher
ecac0a9c4e Release v0.86.0 2026-09-20 01:00:41 +02:00
Armin Ronacher
12032deb70 docs: complete unreleased changelog audit 2026-09-20 00:55:19 +02:00
Armin Ronacher
dd01f5b240 fix(coding-agent): speed up recent session discovery 2026-09-20 00:50:10 +02:00
Armin Ronacher
dfbf793b78 feat(coding-agent): load session picker progressively 2026-09-20 00:48:26 +02:00
梧桐雨
21b8cc1a4b
fix(coding-agent): ignore stale tool image conversions (#8743)
Co-authored-by: Armin Ronacher <armin.ronacher@active-4.com>
2026-09-20 00:38:42 +02:00
Armin Ronacher
803f0e906d fix(tui): preserve fullscreen images in WezTerm
closes #9169
2026-09-20 00:25:51 +02:00
初心Yearth
d7951ec362
fix(tui): rank skill autocomplete by bare name (#9120) 2026-09-20 00:25:43 +02:00
Armin Ronacher
b7f7881949 fix(coding-agent): await terminal remote prompt event 2026-09-19 23:33:02 +02:00
Armin Ronacher
fa0e1f48ac fix(tui): improve LaTeX compatibility and layouts
closes #8827
2026-09-19 23:28:04 +02:00
Armin Ronacher
40c256cccb feat(coding-agent): defer extension loader dependencies
Load ordinary jiti lazily on Node while retaining jiti/static for Bun and SEA binaries. This closes #9540.
2026-09-19 23:25:47 +02:00
xu0o0
bfa6862400
fix(tui): handle CJK punctuation in file autocomplete (#9746) 2026-09-19 21:53:26 +02:00
Armin Ronacher
c596d09d9c
feat(coding-agent): add prompt cache warming (#9668) 2026-09-19 21:18:15 +02:00
Armin Ronacher
7d5eb0ee3b fix(ai): mock Radius in model generation tests 2026-09-19 19:41:20 +02:00
Armin Ronacher
eba619879c docs: audit unreleased changelogs 2026-09-19 19:33:31 +02:00
Armin Ronacher
4d38031fbd feat(ai): ship Radius model catalog 2026-09-19 19:23:31 +02:00
Armin Ronacher
de2de549bc fix(coding-agent): close compaction cancellation races
Closes #9340 and closes #9777.
2026-09-19 19:18:18 +02:00
Armin Ronacher
3c75b27479 feat(coding-agent): add bug reporting 2026-09-19 17:55:49 +02:00
Mario Zechner
36b60d2e89 fix: clean up delta test lint diagnostics 2026-09-19 00:26:08 +02:00
Mario Zechner
58541ee721 fix: reduce delta proxy retention and compact cloned objects
Keep clone and GC regressions plus a standalone traversal benchmark. Archive the discarded graph experiment and baseline comparisons in durable docs, including the remaining transient-memory and traversal-speed costs.
2026-09-19 00:25:44 +02:00
Mario Zechner
e80cf14011 docs(durable): simplify document runtime contracts 2026-09-19 00:20:08 +02:00
Mario Zechner
734ab3434f Merge remote-tracking branch 'origin/main' into HEAD 2026-09-18 22:18:01 +02:00
Mario Zechner
0db5659249 fix(durable): index memory storage queries 2026-09-18 22:17:36 +02:00
Mario Zechner
a16ccd9be8 feat(durable): refine record and query contracts 2026-09-18 21:01:46 +02:00
David Brailovsky
e4ce7b449f fix(ai): update Kimi model catalog source 2026-09-18 16:04:16 +02:00
Christian Klotz
59eb4c393c
fix(coding-agent): clarify copy shortcut description (#9745)
Fixes #9660
2026-09-18 14:12:14 +01:00
David Brailovsky
c1263aa113 fix: clean up delta lint diagnostics 2026-09-18 15:00:25 +02:00
David Brailovsky
1e39862f67 fix(coding-agent): detect llama.cpp chat-template thinking
Inspect loaded models through /props and configure boolean thinking levels for templates supporting enable_thinking.

Fixes #9528
2026-09-18 14:54:17 +02:00
Mario Zechner
b5ef419d5b docs(agent): restore non-Pico5 documentation 2026-09-18 13:48:19 +02:00
Mario Zechner
cf33309117 Merge remote-tracking branch 'origin/main' 2026-09-18 13:39:36 +02:00
Mario Zechner
0801601621 feat(durable): move Pico into dedicated package 2026-09-18 13:39:09 +02:00
Vegard Stikbakke
8bdcd4498a fix(coding-agent): compact oversized trailing tool results
Fall back to the latest safe assistant boundary when trailing tool results exceed the retained-token budget, allowing older history to compact before the next provider request.

Closes #9740
2026-09-18 13:38:30 +02:00
David Brailovsky
5901446094 fix(tui): reduce fuzzy search latency
Use native substring search to find successive fuzzy-match characters while preserving scoring and result ordering.

Closes #9267
2026-09-18 12:47:58 +02:00
Mario Zechner
eed5263cdd Merge remote-tracking branch 'origin/main' into HEAD 2026-09-18 12:33:14 +02:00
Mario Zechner
cf8d5fac30 feat(agent): add Pico storage foundation 2026-09-18 12:32:00 +02:00
Ramiz Wachtler
fe219d7f8d
feat(coding-agent): format bash tool durations to support hours, minutes, seconds (#9742) 2026-09-18 12:25:15 +02:00
David Brailovsky
661619e872 fix(ai): scope bodyless overflow errors to Cerebras
closes #9482
2026-09-18 11:15:48 +02:00
Vegard Stikbakke
bb0f4aa602 fix(ai): preserve DeepSeek V4 effort metadata
closes #9485
2026-09-18 10:43:20 +02:00
David Brailovsky
13784598d2 fix(coding-agent): suppress repeated Anthropic thinking drop notices
Fixes #9391
2026-09-18 09:58:42 +02:00
David Brailovsky
ea9e093516 fix(ai): update tests for current model catalogs 2026-09-18 09:49:53 +02:00
badlogic
328926b30e docs(chord): describe tracker ownership and aliasing as they behave 2026-09-18 00:58:07 +00:00
badlogic
c4289b20eb fix(chord): keep tracked paths correct across structural mutation
A wrapper baked its path at creation, so a reference held across a
structural mutation kept addressing its old index: unshift then a write
through a held element edited its neighbour, and a write after a splice
could produce a path the replica cannot resolve. The baseline diff this
tracker replaced was immune, because its dirty paths were only hints and
the ops came from comparing values.

A wrapper now holds a cell (parent link plus segment) and the path is
walked at use time, so renumbering an element corrects every descendant.
pop/shift/unshift/splice and length truncation shift live children by the
delta and mark removed ones dead; sort/reverse/fill/copyWithin relocate
them by identity. Renumbering iterates a set of live cells rather than the
lookup cache, which is keyed by index and can evict a child that is still
held. Writes through an element that left the document mutate it and
record nothing, as plain JS and the baseline diff both do.

One object can occupy several positions in the tree. A wrapper is now
shared per target and holds a cell per position, and a write emits an op
for each, which is what the baseline diff produced for the same shape.
Positions are registered when a path is read, when a tracked value is
assigned elsewhere, and when one is inserted by an array mutator (only the
inserted range is examined; scanning the array made every structural
mutation O(n)). A blocked view of an object gets its own wrapper so the
reserved-key guard cannot be bypassed through a safe alias.

Paths are cached per cell against a counter that only structural mutation
bumps, and the per-write cell walk is skipped until a document actually
aliases something.
2026-09-18 00:32:50 +00:00
Ramiz Wachtler
46c9de402b
feat(coding-agent): add event handler unsubscribe (#9630) 2026-09-17 21:44:26 +02:00
Armin Ronacher
16292398af fix(coding-agent): send forced system prompts without recording them
Remove SystemMessage.replace. A prompt forced from before_agent_start is a rendering
of the current prompt for the run, not conversation state: persisting it as a
replacing system message wrote the full prompt and tool list on every change,
lost the structured sections while forced, and disabled mid-conversation system
messages for the rest of the session once a replacement existed.

The transcript now always records section patches. AgentSession wraps
transformContext and, when a forced prompt is active, collapses the system
messages into one head carrying the forced text and the current tools. Providers
receive the same request as before; nothing is persisted and the projection ends
with the run.

The evals harness validated the without_docs variant from the transcript, which
relied on the persisted replacement. Its transform extension now records the
prompt it forced and validates that instead.
2026-09-17 20:02:23 +02:00
David Brailovsky
7811394112 docs(coding-agent): update changelog 2026-09-17 17:51:25 +00:00
David Brailovsky
a8b3dd1998 fix(coding-agent): fail signal-terminated shell commands
Map signal termination to conventional nonzero exit codes and reject null exit codes from custom shell operations while preserving partial output.

fixes #9577
2026-09-17 17:01:48 +02:00
David Brailovsky
3955b27a1d fix(ai): preserve Vercel AI Gateway unsigned thinking
Enable empty-signature thinking replay for all generated Vercel AI Gateway models.

closes #9676
2026-09-17 16:43:24 +02:00
David Brailovsky
4658534986 fix(coding-agent): shorten Anthropic thinking drop notices 2026-09-17 16:38:56 +02:00
Mario Zechner
2c995acf44 feat(chord): replace delta tracker with operation log 2026-09-17 16:36:37 +02:00
Mario Zechner
7e19507681 feat(coding-agent): add experimental micro agent 2026-09-17 16:33:03 +02:00
Mario Zechner
0e19ac1161 Merge remote-tracking branch 'origin/main' into pico 2026-09-17 16:31:25 +02:00