Commit graph

194 commits

Author SHA1 Message Date
David Brailovsky
08ef22c276 feat(agent): organize JSONL storage modules 2026-08-13 15:52:24 +02:00
David Brailovsky
d957f808d4 feat(agent): discard torn JSONL transaction tails
Drop an unterminated final line on open and rewrite the kept prefix before admitting writes. Complete malformed lines stay corruption.
2026-08-13 15:23:32 +02:00
David Brailovsky
9c1b446870 feat(agent): add format-4 JSONL storage
Add FileSystem-backed transaction persistence, replay, and storage conformance coverage.
2026-08-13 11:36:19 +02:00
Christian Klotz
8718fbea77
feat(agent): add session storage benchmarks
Add reusable timing, loaded-footprint, and allocation workloads and runners. Index memory entries by sequence so limited scans can stop early.
2026-08-13 10:40:43 +03:00
Mario Zechner
686e6d7cdc fix(agent): gate harness tool execution 2026-08-13 09:29:38 +02:00
Mario Zechner
9d5d9e4fab feat(agent): add harness execution primitives 2026-08-13 00:26:05 +02:00
Christian Klotz
d0d70d9bbc
fix(agent): complete session acceptance coverage 2026-08-12 23:38:22 +03:00
Christian Klotz
a51cde3b48
fix(agent): align context projection contract 2026-08-12 23:03:11 +03:00
Mario Zechner
0815e45890 feat(agent): add guarded session mutations 2026-08-12 20:51:47 +02:00
Christian Klotz
678732ccf6
fix(agent): enforce durable assistant message handling 2026-08-12 19:36:43 +03:00
Mario Zechner
cf0102b9ce feat(agent): retain memory sessions across reopen 2026-08-12 17:41:55 +02:00
Christian Klotz
025c4fb16d
feat(agent): add memory session repository 2026-08-12 17:43:14 +03:00
Christian Klotz
bec2ecec9d
feat(agent): add storage testing decorator 2026-08-12 17:40:11 +03:00
Mario Zechner
c6d394a4e4 refactor(agent): trust typed session storage values 2026-08-12 15:46:09 +02:00
Mario Zechner
da8091ec75 Remove SessionContext, return AgentMessage[] instead 2026-08-12 14:36:30 +02:00
Christian Klotz
e39ddef983
feat(agent): add storage-backed session tree 2026-08-12 15:11:46 +03:00
Christian Klotz
8d281e236d
feat(agent): add storage-backed session boundary 2026-08-12 12:49:22 +03:00
Christian Klotz
f45aea041d
fix(agent): enforce durable session identities 2026-08-12 12:49:19 +03:00
Christian Klotz
ef37865445
feat(ai): support UUIDv7 follower timestamps 2026-08-12 11:11:30 +03:00
Christian Klotz
eff82b1405
fix(agent): keep session implementations internal 2026-08-12 10:26:30 +03:00
Christian Klotz
535ceef0c1
fix(agent): keep session codec internal 2026-08-12 10:14:11 +03:00
Christian Klotz
1a77b84126
feat(agent): add session codec 2026-08-12 01:13:02 +03:00
Christian Klotz
085ce3c9a5
feat(agent): add instrumented storage decorator 2026-08-12 01:12:23 +03:00
Christian Klotz
b3bf0a2a81
feat(agent): add storage backend conformance suite 2026-08-12 00:22:30 +03:00
Christian Klotz
9177ed175d
feat(agent): add session UUIDv7 generator 2026-08-11 23:59:01 +03:00
Christian Klotz
fd9a45aaf1
feat(agent): add in-memory harness storage 2026-08-11 23:58:31 +03:00
Mario Zechner
0eb6abd547 fix(agent): address harness type audit findings 2026-08-11 18:00:47 +02:00
Mario Zechner
5aeb06bb11 feat(agent): establish durable harness type contracts 2026-08-11 17:43:26 +02:00
Cristina Poncela Cubeiro
b75be04d92
refactor: search (#7797)
* refactor: search out of repo

* fix: apply cases, no resolve for index on every hit

* chore: tests

* fix: use iterator and no open

* refactor: public dir stuff in jsonl, source

* cleanup and sqlite time number

* fix: use storage for label search too, delete types

* refactor: abstract some more

* docs: example jsonl with elastic search

* docs: Christian's md

* refactor: simpler api surface

* feat: rebuild

* docs: consolidate

* fix: use trigger for sqlite, cleanup indexable, add example in doc

* chore: restore upstream responses shared

* fix: delete metadata from jsonl search hit

* fix: AsynIterable

* refactor: scanning for memory, reuse

* fix: dont export jsonlSessionDirectoryName

* cleanup: more shared stuff

* cleanup: why, jsonl?
2026-08-11 13:27:48 +02:00
David Brailovsky
7bdb16c28d feat(agent): support clearing session names 2026-08-08 19:19:46 +02:00
Armin Ronacher
02bd2d1c62 fix(ai): preserve Responses tool-call namespaces
closes #7709
2026-08-07 23:05:23 +02:00
Vegard Stikbakke
d1a305613e feat(agent): add direct harness event listeners
Part of I2, "passive events and watch buffering," in packages/agent/docs/harness-v2.md.
2026-08-07 15:20:00 +02:00
Vegard Stikbakke
1dd2354052 feat(agent): add buffered harness event watches
This is incremental work towards I2 in the harness-v2.md plan.
2026-08-07 14:50:35 +02:00
David Brailovsky
7aca0d7b3e fix(agent): make JSONL decode errors explicit
Return typed results from JSONL parsers, add file context during replay, and classify torn tails explicitly.
2026-08-07 14:27:50 +02:00
David Brailovsky
4a0e2f115a fix(agent): complete JSONL crash and corruption handling 2026-08-07 13:47:45 +02:00
David Brailovsky
9d090bc5dc fix(agent): reject conflicting JSONL session creation 2026-08-07 09:10:29 +02:00
Christian Klotz
6fb2d766ae
feat(coding-agent): add configurable Harness factory (#7686)
* feat(coding-agent): add Harness construction factory

* feat(coding-agent): configure Harness construction factory

* feat(coding-agent): expose Harness JSONL session file

* fix(agent): remove redundant bash environment test
2026-08-06 21:05:46 +03:00
muyiyr
1eb988cfe8
feat(agent): allow blocked tool calls to terminate (#7715)
Closes #5998
2026-08-06 17:14:48 +02:00
wesleyzhangwq
1532c99943
fix(agent): reject reset during active runs (#7717) 2026-08-06 17:12:25 +02:00
David Brailovsky
29ad292f77 fix(agent): simplify jsonl append failure test 2026-08-06 11:49:54 +02:00
David Brailovsky
a838c069e6
harness-v2 jsonl session atomic writes for forks & torn-tail truncation (#7707)
* fix(agent): make JSONL publication crash-safe

* fix(agent): move JSONL file creation from repo to storage

* fix(agent): move JSONL forking from repo to storage

* fix(agent): move fork mutation creation into session state
2026-08-06 11:46:58 +02:00
Mario Zechner
35f5c265d3 feat: add telemetry reference adapter and span composition 2026-08-06 11:44:58 +02:00
Cristina Poncela Cubeiro
77f4840320
chore: qa2 tests (#7706)
* 1. rejects corrupt parent chains in array-backed readers

* 2. does not decode SQLite branch entries outside query bounds

* 3. validates SQLite entries before filtering and limiting branch results

* 4. does not validate SQLite ancestors beyond newest-first stop bounds

* 5. rejects repository operations and session writes after disposal

* 6. supports lexical ownership with await using

* 7. uses listing as a barrier between accepted session operations

* 8. waits for every accepted session operation during disposal

* 9. waits for accepted appends before disposal and rejects later writes

* 10. repository disposal closes its owned storage

* 11. stops branch traversal at retained-tail compaction

* docs: mark QA2 done
2026-08-06 11:24:09 +02:00
David Brailovsky
6282221b6a fix(agent): scope JSONL session IDs to working directories 2026-08-06 09:31:28 +02:00
Mario Zechner
6b461b75b3 feat: extract telemetry package 2026-08-05 23:23:12 +02:00
Cristina Poncela Cubeiro
2bb7ba4966
feat: harness v2 r2 (#7669)
* feat(agent): reduce durable lane state

* fix: exclude captured initial-message ids from pendingNextRun

* fix: validate deferred handles

---------

Co-authored-by: Vegard Stikbakke <vegard.stikbakke@gmail.com>
2026-08-05 22:18:08 +02:00
Mario Zechner
04d6447f7c feat: add typed telemetry contracts 2026-08-05 22:03:33 +02:00
David Brailovsky
17f720489f fix(agent): validate required JSONL mutation fields 2026-08-05 19:03:30 +02:00
David Brailovsky
acb2fd9849 fix(agent): complete JSONL storage round-trip coverage 2026-08-05 18:14:32 +02:00
David Brailovsky
48b8b547c8 fix(agent): require JSONL session cwd at creation 2026-08-05 17:51:28 +02:00