Commit graph

458 commits

Author SHA1 Message Date
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
c0396ccd8c
fix(agent): simplify memory storage commit 2026-08-12 12:24:59 +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
e783429da2
fix(agent): deepen storage immutability conformance 2026-08-12 00:41:06 +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
Cristina Poncela Cubeiro
a4453b79bb fix: sqlite time to number 2026-08-11 10:07:53 +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
Vegard Stikbakke
14ad9801be feat(agent): add harness events subscription interface 2026-08-07 13:21:36 +02:00
Vegard Stikbakke
e0900a6eaf docs(agent): clarify record query semantics 2026-08-07 11:01:26 +02:00
David Brailovsky
10474bd697 fix(agent): refactor jsonl codec 2026-08-07 10:23:14 +02:00
Vegard Stikbakke
87644c7b57 docs(agent): clarify branch query start requirement 2026-08-07 10:18:48 +02:00
Vegard Stikbakke
f562a1a44f docs(agent): clarify branch query helpers 2026-08-07 09:55:13 +02:00
Vegard Stikbakke
80ef7ff0f4 fix(agent): populate session types with doc comments from design doc 2026-08-07 09:47:29 +02:00
David Brailovsky
f27941774e fix(agent): read JSONL headers when listing sessions 2026-08-07 09:20:02 +02:00
David Brailovsky
9d090bc5dc fix(agent): reject conflicting JSONL session creation 2026-08-07 09:10:29 +02: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
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
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
48b8b547c8 fix(agent): require JSONL session cwd at creation 2026-08-05 17:51:28 +02:00
Cristina Poncela Cubeiro
2f550d827d
fix: project open operation id to lanes (#7654)
* fix: project open operation id to lanes

* delete: idx_lanes_session_leaf

* fix: split, over-defensive

* delete: unnecessary assertion
2026-08-05 16:57:41 +02:00
David Brailovsky
b3ec7c0068 fix(agent): stop JSONL repositories from retaining sessions
Load storage for each create or open without caching it in the repository. Remove repository-wide serialization and disposal because write queues belong to returned sessions.
2026-08-05 16:52:14 +02:00
David Brailovsky
a79b22622a fix(agent): match coding-agent JSONL session layout
Store sessions under cwd-encoded directories with timestamped filenames, scan project directories for listing and explicit-id collisions, and skip global scans for generated UUIDv7 ids. Document and test the shared layout.
2026-08-05 16:06:34 +02:00
Cristina Poncela Cubeiro
14c89ad999 chore: UnavailableRegistry 2026-08-05 15:37:05 +02:00
David Brailovsky
ac27947f7b feat(agent): split JSONL session backend modules
Separate codec, storage, repository, errors, and public contracts while retaining the existing JSONL session API and behavior.
2026-08-05 14:48:39 +02:00
David Brailovsky
162b1883bd feat(agent): add JSONL metadata contracts
Define JSONL create, list, metadata, and v4 header types. Persist opaque metadata and legacy parent paths, expose filesystem mtimes and source format, filter listings by cwd, and sort them by current mtime. Add metadata and ordering coverage.
2026-08-05 14:38:00 +02:00
David Brailovsky
c38319ea10 fix(agent): share state between memory and JSONL sessions
Replace the duplicate in-memory indexes and query implementations in the Memory and JSONL backends with a shared SessionState projection. It applies backend-neutral mutations and maintains sequence numbers, IDs, entries, lanes, records, open operations, facts, statistics, and the chronological log.

Memory applies mutations directly. JSONL first appends the encoded mutation, then updates SessionState; replay decodes each line and applies it through the same relational validation. Fork imports remain lane-less and final lane pointers remain explicit.
2026-08-05 13:01:48 +02:00