86 Commits
Author SHA1 Message Date
Armin Ronacher 4c8eb393c7 Add [Unreleased] section for next cycle 2026-09-21 18:31:58 +02:00
Armin Ronacher 16787ad5b2 Release v0.87.0 2026-09-21 18:31:52 +02:00
Armin Ronacher 19451accde Add [Unreleased] section for next cycle 2026-09-20 13:04:18 +02:00
Armin Ronacher 13cbf77df2 Release v0.86.1 2026-09-20 13:04:11 +02:00
Armin Ronacher 50d766cba2 Add [Unreleased] section for next cycle 2026-09-20 01:00:48 +02:00
Armin Ronacher ecac0a9c4e Release v0.86.0 2026-09-20 01:00:41 +02:00
Armin Ronacher da840b6216 Add [Unreleased] section for next cycle 2026-09-05 13:54:52 +02:00
Armin Ronacher d981de1229 Release v0.85.1 2026-09-05 13:54:46 +02:00
Armin Ronacher dd7e816b57 Add [Unreleased] section for next cycle 2026-09-04 11:57:42 +02:00
Armin Ronacher 107d79f110 Release v0.85.0 2026-09-04 11:57:38 +02:00
Armin Ronacher e7b47bd7de fix: resolve plugin and conformance tests from source 2026-09-02 20:40:35 +02:00
David Brailovsky 1081eb2126 fix(agent): require configured lanes for branch forks
Reject data-only source branches, preserve tree-scope support for them, and update fork fixtures to provide complete lane configuration and state.
2026-09-01 15:18:05 +02:00
David Brailovsky f2eae920c6 fix(agent): validate fork entries against named branch ancestry
Reject off-branch and unknown fork points, handle null tips and before-root placement, and make SQLite validate from the named branch tip.
2026-09-01 14:58:49 +02:00
David Brailovsky f8da63be59 feat(agent): require explicit named branches for session forks
Require fork scope and source branch selection, preserve the branch name in the destination, and cover named-branch behavior across backends.
2026-09-01 12:35:14 +02:00
Mario Zechner ef11444b6e fix(agent): align SQLite ownership with session workers 2026-08-31 04:19:32 +02:00
Mario Zechner 5cf1b95c87 docs(agent): align SQLite ownership with session workers 2026-08-31 00:19:51 +02:00
Armin Ronacher 34dc9d055a feat: move facet services into Chord
Move service, replicated-state, facet host, and loader ownership into the standalone Chord package. Migrate consumers and leave runtime JSON enforcement to serializers.
2026-08-29 14:55:51 +02:00
Armin Ronacher 28b49a6b3b feat: add Chord runtime foundation 2026-08-29 14:54:19 +02:00
David Brailovsky 58ea6c0ba5 Merge remote-tracking branch 'origin/main' into dev 2026-08-29 08:21:44 +00:00
Armin Ronacher 853a80d26c Add [Unreleased] section for next cycle 2026-08-28 23:56:06 +02:00
Armin Ronacher b79e4cc834 Release v0.84.4 2026-08-28 23:56:03 +02:00
Mario Zechner 5976a2f8b9 docs(agent): audit post-WP05 roadmap 2026-08-26 22:41:05 +02:00
Mario Zechner 5507d76ee8 feat(agent,ai): add narrow subpath exports so clients skip the barrel
A barrel forces Node to evaluate its whole graph: importing reduceLaneSnapshot
(1 file, 6 KB) through pi-agent-core's index evaluated 106 files, and mini's
server loaded 112 files to enumerate JSONL headers. Types are free, so this only
ever affected value imports.

pi-ai gains ./utils/* alongside the existing ./providers/* and ./api/*
wildcards. pi-agent-core gains ./harness/context, ./harness/env/nodejs,
./harness/runtime/reducer and ./harness/session, and ./session/testing becomes
./harness/session/testing so every export mirrors its source path. The barrel
and ./node keep their batteries-included semantics.

The session layer takes uuidv7 from @earendil-works/pi-ai/utils/uuid rather than
the pi-ai barrel, which is what let ./harness/session drop from 42 files to 19.
Two imports there were written `import { type Usage } from` - not a type-only
statement, so it emitted a runtime import of the barrel.

scripts/check-entry-graphs.mjs walks each declared entry's value-import graph and
enforces per-entry budgets and forbidden paths, so a stray `export *` cannot
silently undo this. It caught the two `import { type ... }` regressions above.

Measured with mini: server 112 files and 98 MB to 28 files and 69 MB, presentation
204 files and 125 MB to 99 files and 110 MB. The worker still loads the provider
graph, correctly.
2026-08-26 22:02:31 +02:00
Mario Zechner 89356540fb feat(agent): expose durable lane operations 2026-08-26 21:14:59 +02:00
Mario Zechner 423e20cb78 feat(agent): separate sessions, branches, and lanes 2026-08-25 16:52:29 +02:00
Mario Zechner 852142daa0 feat(agent): add explicit session mutations 2026-08-24 23:35:55 +02:00
Cristina Poncela Cubeiro 94108a1ac6 feat(sqlite): databasePath, sessionId for sharding 2026-08-24 15:40:18 +02:00
Armin Ronacher c399e34658 feat: merge main into dev 2026-08-24 13:13:03 +02:00
Armin Ronacher 31d4ed5860 Add [Unreleased] section for next cycle 2026-08-24 12:50:52 +02:00
Armin Ronacher 4e58f324fa Release v0.84.3 2026-08-24 12:50:48 +02:00
Mario Zechner 41c9795be7 feat(agent): add durable drive foundations 2026-08-24 12:37:48 +02:00
Mario Zechner 164507bbac feat(agent): simplify mutation event publication 2026-08-19 16:55:29 +02:00
Cristina Poncela Cubeiro a3fd215615 feat(sqlite): repo close, simplify benchmark 2026-08-18 18:57:43 +02:00
Cristina Poncela Cubeiro 43c4f6cf72 test(sqlite): timing benchmark 2026-08-18 18:25:34 +02:00
Cristina Poncela Cubeiro bf7acdcc18 test(sqlite): finalize repo and storage conformance 2026-08-18 16:32:25 +02:00
David Brailovsky ed0f5834ff fix(agent): decouple fork snapshots from storage state
Use explicit source and destination fork snapshots, share committed-write materialization across Memory and JSONL, and remove unused list snapshot plumbing.
2026-08-18 14:58:52 +02:00
Mario Zechner beac75ecc2 feat(agent): implement atomic acceptance and coherent observation 2026-08-18 14:36:33 +02:00
Armin Ronacher 3fbfcf48ff feat(agent): thread invocation context through harness APIs 2026-08-17 19:56:21 +02:00
Mario Zechner c179395b1e feat(agent): add bound values and lists 2026-08-17 16:47:18 +02:00
Cristina Poncela Cubeiro 9e964db343 feat(sqlite): skip corrupt sessions 2026-08-17 10:51:25 +02:00
Cristina Poncela Cubeiro 8992320444 feat(sqlite): co-ordinate fork with open session 2026-08-17 10:38:59 +02:00
Cristina Poncela Cubeiro fc2a0b243e feat(sqlite): fork 2026-08-17 10:09:16 +02:00
Cristina Poncela Cubeiro db0e240861 feat(sqlite): lease lifecycle and renewal
Checked what is usually done, and seems to be common pattern to use half the max time for interval (e.g. Kubernetes leader election docs).
2026-08-17 09:28:04 +02:00
Cristina Poncela Cubeiro 07e4a253ce feat(sqlite): cache insert statements for trigger performance 2026-08-17 08:53:09 +02:00
Cristina Poncela Cubeiro 011c78f710 feat(sqlite): triggers for no duplicate ids across tables 2026-08-16 22:32:07 +02:00
Cristina Poncela Cubeiro 35c1521573 feat(sqlite): wire repo to return real session 2026-08-14 13:58:16 +02:00
David Brailovsky 09fb0d157e Merge remote-tracking branch 'origin/main' into dev 2026-08-14 10:25:49 +00:00
David Brailovsky 0e0021fbbe Add [Unreleased] section for next cycle 2026-08-14 12:00:04 +02:00
David Brailovsky 914cf1472e Release v0.84.2 2026-08-14 12:00:00 +02:00
Vegard Stikbakke b863f1cff6 fix: revert SQLite conformance CI isolation 2026-08-14 11:16:49 +02:00