pi-mono/packages/storage/sqlite-node
Cristina Poncela Cubeiro f119b01cb1
refactor: update sqlite for lanes (#7591)
* feat: align sqlite storage with session lanes

* fix: delete lane from entry, action

* fix: errors and types

* fix: tests

* fix: usage records instead of session materialized

* chore: 1 mig

* fix

* refactor(agent): move harness experimental changes to split branch

* refactor and cleanup

* fix: use assertJsonSerializable for session metadata

* fix(sqlite): reject corrupt lane leafs on open

* fix: rebuild cache

* refactor: branch cache

* feat: session stats

* fix: enforce leases

* feat(agent): enforce fenced SQLite writer leases

* fix(agent): keep SQLite transactions synchronous

* fix(agent): align SQLite storage with conformance suite

---------

Co-authored-by: Christian Klotz <hello@christianklotz.co.uk>
2026-08-04 15:56:56 +02:00
..
scripts feat: sqlite session storage (#6594) 2026-07-21 11:36:31 +02:00
src refactor: update sqlite for lanes (#7591) 2026-08-04 15:56:56 +02:00
CHANGELOG.md docs: remove contributor changelog updates 2026-08-02 13:06:24 +03:00
package.json Release v0.83.0 2026-07-30 00:24:19 +02:00
README.md feat(agent): compose session storage through repositories 2026-08-02 12:35:02 +03:00
tsconfig.build.json feat: sqlite session storage (#6594) 2026-07-21 11:36:31 +02:00

@earendil-works/pi-storage-sqlite-node

Node sqlite storage backend for @earendil-works/pi-agent-core sessions. Provides the node:sqlite adapter (SqliteDatabase implementation), SQLite session repository, migrations, materialized views, and optional FTS search.

await using repository = new SqliteSessionRepository(options);
const search = createSqliteSessionSearch(options);
const session = await repository.create({ cwd });
const hits = await search.search({ text: "needle" });

The repository lazily owns one shared database connection. Search is an independent, query-only projection over the same canonical database.