Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
de75407
docs: phase3 sub-project 7 agent protocol design
blove May 22, 2026
c7bd29e
docs: phase3 sub-project 7 implementation plan
blove May 22, 2026
5711042
feat(sqlite-storage): scaffold package
blove May 22, 2026
6f4d297
feat(sqlite-storage): openDb helper with WAL + FK pragmas
blove May 22, 2026
b91bc9f
fix(sqlite-storage): guard :memory: path + assert synchronous pragma
blove May 22, 2026
ec9105b
feat(sqlite-storage): migration runner with schema_version
blove May 22, 2026
4039a6f
feat(sqlite-storage): checkpointer schema + JSON serde
blove May 22, 2026
08bc406
feat(sqlite-storage): DawnSqliteSaver implementing BaseCheckpointSaver
blove May 22, 2026
e3bb2f6
fix(sqlite-storage): guard missing thread_id + clarify list/put seman…
blove May 22, 2026
c1a9ae8
feat(sqlite-storage): threads store CRUD
blove May 22, 2026
0445db8
feat(sqlite-storage): public exports
blove May 22, 2026
9835eda
feat(core): add checkpointer + threadsStore to DawnConfig
blove May 23, 2026
6f1a12a
refactor(langchain): require external checkpointer in agent-adapter
blove May 23, 2026
6fb231f
feat(cli): instantiate sqlite checkpointer + threadsStore defaults
blove May 23, 2026
489ab42
feat(cli): AP threads + runs + state + resume endpoints
blove May 23, 2026
c8a7a1a
feat(chat-example): proxy AP-shaped endpoints
blove May 23, 2026
e0dbb0d
test: pack @dawn-ai/sqlite-storage in verification harnesses
blove May 23, 2026
63201dd
test: fix sub-project 7 regressions (AP URL shape + sqlite warning)
blove May 23, 2026
16187a4
test(runtime): AP state persistence across server restart
blove May 23, 2026
9c70c7c
style: biome formatting fix in dev-command test
blove May 23, 2026
366b585
test(cli): port run/test/check/typegen tests to AP shape
blove May 23, 2026
ff4f495
refactor(langchain): drop in-memory interrupt parking, support Comman…
blove May 27, 2026
b04eeb3
refactor(cli): state-based resume from checkpoint __interrupt__ writes
blove May 27, 2026
9d2c9ad
refactor(chat-example): pipe resume SSE into event log
blove May 27, 2026
c40ad21
chore: delete unused pending-interrupts module
blove May 27, 2026
fc75e4c
fix(sqlite-storage): use BaseCheckpointSaver.serde for LangChain obje…
blove May 28, 2026
deddf21
test(runtime): permission interrupt → restart → resume → completion
blove May 28, 2026
7d91d73
feat(cli): persist route to thread metadata for automatic resume-afte…
blove May 28, 2026
1fecfd7
ci: bump Node to 22.14 for node:sqlite; add changeset + engine floor
blove May 28, 2026
f380e3c
fix(cli): never restart dev server on unattributable or .dawn/ watch …
blove May 28, 2026
e9ebb35
test(runtime): serialize runtime lane + retry temp cleanup on ENOTEMPTY
blove May 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .changeset/phase3-agent-protocol.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
"@dawn-ai/sqlite-storage": minor
"@dawn-ai/core": minor
"@dawn-ai/cli": minor
"@dawn-ai/langchain": minor
---

Add Agent Protocol HTTP endpoints backed by a Dawn-native SQLite checkpointer (phase-3 sub-project 7).

- New `@dawn-ai/sqlite-storage` package: `sqliteCheckpointer` (a `BaseCheckpointSaver` over Node's built-in `node:sqlite`, no native deps) and `createThreadsStore`. Requires Node 22.13+ (where `node:sqlite` is available without the `--experimental-sqlite` flag).
- `dawn.config.ts` gains `checkpointer` and `threadsStore` fields — both pluggable, with SQLite-backed defaults at `.dawn/checkpoints.sqlite` and `.dawn/threads.sqlite`.
- The dev server's HTTP layer is reshaped to the Agent Protocol: `POST /threads`, `GET`/`DELETE /threads/{id}`, `POST /threads/{id}/runs/stream`, `POST /threads/{id}/runs/wait`, `GET /threads/{id}/state`, `POST /threads/{id}/resume`. The legacy `POST /runs/stream` is removed.
- Conversation state and permission interrupts now survive a server restart. `MemorySaver` is removed from `@dawn-ai/langchain`; the checkpointer is supplied by the caller. Permission resume is state-based (reads the parked interrupt from the checkpoint) and resolves the route durably from thread metadata.
5 changes: 4 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,10 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 22.12.0
# 22.14.0 — node:sqlite (used by @dawn-ai/sqlite-storage) is only
# available without the --experimental-sqlite flag from 22.13+.
# Matches release.yml and the engines floor.
node-version: 22.14.0
cache: pnpm

- name: Install
Expand Down
Loading
Loading