Commit graph

1214 commits

Author SHA1 Message Date
Armin Ronacher
1382777ed8 fix(coding-agent): keep remote harness dependencies development-only
Separate stable and development entrypoints, exclude remote harness code from distributions, and verify isolated consumer installs before release. Fixes #9132.
2026-09-05 12:45:04 +02:00
Ramiz Wachtler
92d8e2d17d
fix(coding-agent): selector save keybindings (#9149)
- fixes #8797
2026-09-04 18:06:21 +02:00
David Brailovsky
744a94d7d4 fix(coding-agent): use current Copilot model in registry test 2026-09-04 11:19:20 +02:00
Cristina Poncela Cubeiro
457ae8c79c
feat(tui): alt mode scrollbar but prettier (#8801) 2026-09-04 00:05:47 +02:00
Armin Ronacher
79680533c6 feat(tui): add clickable jump-to-end indicator to fullscreen transcript
Adds TuiAltScreenOptions.scrollToEndIndicator, composited onto the last
row of the follow-end primary scroll view while it is scrolled up. A left
press on the label resumes end-following. Minimal rebuild of #9080.
2026-09-03 22:54:59 +02:00
Cristina Poncela Cubeiro
1d9787c11f
feat(tui): prettier Working... spinner (#8799) 2026-09-03 20:34:04 +02:00
Vegard Stikbakke
e44d75c20a fix(coding-agent): raise branch summary output cap
closes #8845
2026-09-03 15:14:51 +02:00
David Brailovsky
3316c4e35b fix: repair Baseten and coding-agent test checks
Drop the misleading Baseten default-model test and remove a duplicate coding-agent mock declaration rejected by Biome.
2026-09-03 11:40:37 +02:00
Alexey Zaytsev
1d6dbf9e3d
fix(coding-agent): keep skills available with bash-only tools (#8552) 2026-09-03 11:08:26 +02:00
wutongyuonce
6f35de5b59
fix(coding-agent): isolate concurrent session shares (#8613) 2026-09-03 11:05:41 +02:00
wutongyuonce
c6b00676b8
fix(coding-agent): scan past non-EXIF APP1 segments (#8616) 2026-09-03 11:02:39 +02:00
Terminator666666
57e53b0d79
fix(coding-agent): resolve fd/rg release versions without the GitHub API (#8708)
The fd/ripgrep auto-download resolved the latest version through
api.github.com, which shares the anonymous API quota (60 requests/hour
per IP). Behind shared egress IPs (corporate proxies, CI runners, NAT)
that quota is permanently exhausted by unrelated traffic, so the
download failed with 'GitHub API error: 403' on every launch while the
actual release download endpoint would have worked fine.

Resolve the version from the /releases/latest web redirect instead: it
carries the tag in the Location header, is not subject to the API
quota, and lives on the same origin as the binary download itself. The
redirect body is discarded so the connection can be reused, and the
pinned fd version on darwin/x64 now skips the lookup entirely.

Also improve download failure diagnostics: status messages include the
error cause chain so transport errors surface their actionable detail
instead of a bare 'fetch failed', and HTTP download errors include the
failing URL.

Fixes #8594

Co-authored-by: Terminator666666 <Terminator666666@users.noreply.github.com>
2026-09-03 10:59:04 +02:00
Julien Barbay
2b768ba42c
feat(coding-agent): ingest external entries in in-memory sessions (#8980)
* feat(coding-agent): ingest external entries in in-memory sessions

SessionManager.inMemory() takes the entries to start from, so a session
held outside the filesystem can be resumed as it was stored.

Replaying through appendMessage/appendCompaction cannot do this: ids are
minted fresh, so every stored firstKeptEntryId, targetId and fromId has to
be remapped, timestamps are rewritten, and parentId always comes from the
current leaf, so a branched tree needs the original branch() choreography
reproduced call by call.

The entry-adoption half of _setSessionFile becomes _loadEntries, which the
constructor also uses when there are entries but no file. Entries carrying
a session header keep it; without one, the header comes from the options
and the entries become its body.

* fix(coding-agent): carry the stored version through restored entries

inMemory() took SessionEntry[], which excludes SessionHeader, so an
external store could not pass the header it saved and the header branch of
_loadEntries was unreachable through the public API. A restore therefore
always synthesised a current-version header, and the migration that ran
next read that header and skipped: a v2 session kept its hookMessage roles
forever.

Widening to FileEntry[] lets the stored header through, version included.
Migration moves inside the header branch, where a version exists to compare
against; without a header the entries are adopted as current-version, which
is the only thing they can mean.
2026-09-03 10:49:41 +02:00
wutongyuonce
1a773c8e7a
fix(coding-agent): avoid overwriting imported sessions (#8985) 2026-09-03 10:48:18 +02:00
yaogangqiang
2631b25c34
fix(coding-agent): preserve compaction boundary when forking (#8990)
Fixes #8989
2026-09-03 10:47:40 +02:00
xu0o0
f0592205f8
feat(tui): render relational algebra join symbols & fix(coding-agent): type error in test (#9050)
* feat(tui): render relational algebra join symbols

* fix(coding-agent): update interactive mode test fixture
2026-09-03 10:45:02 +02:00
David Brailovsky
9f74575f79 Merge remote-tracking branch 'origin/main' into dev 2026-09-03 09:59:09 +02:00
David Brailovsky
8c08d0645a Merge remote-tracking branch 'origin/main' into dev 2026-09-03 07:58:51 +00:00
David Brailovsky
f41f80466e fix(coding-agent): update interactive mode test fixture 2026-09-03 09:53:14 +02:00
David Brailovsky
bea67d90d1 fix(coding-agent): cancel compaction on session abort
Include compaction and branch summarization in session idle tracking so abort waits for cancellation to settle.\n\nfixes #8920
2026-09-03 09:41:55 +02:00
Mario Zechner
4e69b0c280 feat(ai): preserve Anthropic per-turn thinking effort
Route eligible OpenRouter Claude models through the native Messages API and surface provider thinking-drop diagnostics.
2026-09-02 21:39:29 +02:00
David Brailovsky
e583b290a6 fix: remove misleading write byte counts
The write tools reported UTF-16 code units as bytes. Remove the count from success messages instead of scanning content again.

Closes #8979
2026-09-02 15:06:06 +02:00
Mario Zechner
7123410467 Merge branch 'main' into dev 2026-09-02 12:21:58 +02:00
Vegard Stikbakke
23842b1e69 fix(coding-agent): tunnel proxied HTTP requests
closes #8134
2026-09-02 09:23:23 +02:00
Armin Ronacher
6ee906d3d2 fix: resolve workspace source dependencies in tests 2026-09-01 17:50:49 +02:00
David Brailovsky
487af8e168 Merge remote-tracking branch 'origin/main' into dev 2026-09-01 14:48:57 +00:00
Ramiz Wachtler
3fc3ef532b
fix(coding-agent): keep theme markers visible (#8950)
- follow up of missed commits for feat(coding-agent): adjust TUI selections in thinking-mode, models and scoped models #8900

* fix(coding-agent): keep fixed theme marker visible

- distinguish the saved theme from the preview cursor
- align the automatic option and update coverage

* fix(coding-agent): keep automatic theme marker visible

- mark configured light and dark themes during preview
- reuse shared theme formatting and update coverage
2026-09-01 12:01:50 +02:00
Vytautas
62835ea81b
fix(coding-agent): use ctx.cwd for cwd-sensitive tools when available (#8627)
When tools are registered by an extension (e.g. Kimchi) the execute callback
receives an ExtensionContext with the real session cwd. Use ctx.cwd || cwd so
tools resolve paths against the current session cwd instead of the cwd captured
at tool creation time.

Applies to read, write, edit, grep, find, ls, bash, and powershell.

Co-authored-by: Kimchi <noreply@kimchi.dev>
2026-09-01 11:16:29 +02:00
Ramiz Wachtler
f2a6227899
feat(coding-agent): adjust TUI selections in thinking-mode, models and scoped models (#8900)
* fix(coding-agent): keep selector status markers visible

- place status markers before labels
- strike unavailable scoped models and update tests

* fix(coding-agent): align scoped model toggle behavior

- show checks for the all-enabled state
- toggle individual models consistently and add coverage

* docs(coding-agent): add changelog entry

* fix(coding-agent): keep trust marker visible while browsing

- move the saved marker before the trust option
- update tests and changelog

* fix(coding-agent): mark per-model thinking overrides

- add the leading level marker
- update tests and changelog
2026-09-01 11:02:53 +02:00
yaogangqiang
afda4d6202
fix(agent): stop prepared tools after preflight abort (#8936)
fixes #8935

Co-authored-by: yaogangqiang <yaogangqiang@kanyun.com>
2026-09-01 11:00:51 +02:00
yaogangqiang
56c6fb33c4
fix(coding-agent): settle active turn before in-memory fork (#8937)
Fixes #8724

Co-authored-by: yaogangqiang <yaogangqiang@kanyun.com>
2026-09-01 10:58:20 +02:00
Armin Ronacher
c4b0e35abe feat(chord): keep services available during facet reloads 2026-09-01 10:47:08 +02:00
Armin Ronacher
7cf456aa1c feat: remove experimental compatibility shims 2026-09-01 10:09:01 +02:00
Armin Ronacher
fa5036836d feat: consolidate remote service adapters 2026-09-01 10:09:01 +02:00
Armin Ronacher
1a7bc80e7c feat: move service wire semantics into Chord
Keep protocol payloads transport-opaque and validate service calls, state snapshots, updates, and errors at Chord boundaries. Ensure successful OpenAI Responses messages remain strict JSON so terminal Transcript updates reach clients.
2026-09-01 00:53:40 +02:00
Armin Ronacher
fbf2db6353 fix: remove dead experimental protocol code 2026-08-31 19:23:56 +02:00
Armin Ronacher
86bac52f94 feat: add delta-backed replicated state
Track mutable provider state and publish immutable operation batches. Keep path codecs isolated per client subscription and state member.
2026-08-31 14:04:42 +02:00
Armin Ronacher
ae2cc5116f feat(coding-agent): replace lane RPC with Chord service 2026-08-31 12:52:25 +02:00
Armin Ronacher
abeb9e07f3 feat(coding-agent): reduce experimental test duplication 2026-08-31 01:38:28 +02:00
Armin Ronacher
8e374e4dc2 feat(coding-agent): tighten experimental service boundaries 2026-08-31 01:09:31 +02:00
Armin Ronacher
65f77ecd6f feat: make Chord facet generations collectible 2026-08-31 00:13:44 +02:00
Armin Ronacher
984846b785 feat(coding-agent): remove legacy session RPC facade
Route discovery, management, and prompting through Chord services. Retain low-level lane watches and reattach Radius clients through SessionManagement.
2026-08-31 00:13:43 +02:00
Mario Zechner
7731f1cfe2 fix(coding-agent): remove obsolete plugin app fixture 2026-08-30 23:36:39 +02:00
Armin Ronacher
d3697e65ca feat(coding-agent): simplify experimental services and CLI 2026-08-30 22:51:00 +02:00
Armin Ronacher
5245aba7c8 feat: simplify plugin facet lifecycle
Remove handshake-based facet delivery and host only the selected Session presentation branch. Simplify worker selection, startup options, package profiles, and serialized builds.
2026-08-30 22:36:30 +02:00
Armin Ronacher
429f4e756c feat: add package-based facet plugins
Bundle declarative plugin packages with Chord and load fresh generations. Scope client selections to persisted Session and TUI branches, and replace stale local server generations after protocol changes.
2026-08-30 22:05:12 +02:00
Armin Ronacher
0252dff886 feat: add bundled facet distribution and reload
Bundle content-addressed Chord facet entries, distribute server-selected presentation artifacts during the handshake, and reload Session and TUI generations through /reload.
2026-08-30 12:52:58 +02:00
Armin Ronacher
45d0174eed fix: harden Chord service lifecycle semantics 2026-08-30 01:00:26 +02:00
Armin Ronacher
024439d151 feat: clarify Chord remote service APIs 2026-08-29 21:43:01 +02:00
Armin Ronacher
1bf0de2144 feat: simplify Chord service APIs 2026-08-29 20:31:33 +02:00