diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a6bc4a9..3dcbc6a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,6 +16,10 @@ jobs: with: bun-version: "1.3" + - uses: actions/setup-node@v6 + with: + node-version: "24" + - run: bun install --frozen-lockfile - name: Typecheck diff --git a/AGENTS.md b/AGENTS.md index 3d36ce1..806c588 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -66,7 +66,8 @@ Key SDK primitives: ### Storage -SQLite via bun:sqlite (zero dependencies). Four tables: +SQLite via the internal database adapter (zero external dependencies): `bun:sqlite` +when running on Bun, `node:sqlite` when running on Node/Electron. Four tables: - team — team config (name, lead session, status, delegate mode) - team_member — member registry (name, session ID, agent, status) - team_task — shared task board (content, status, priority, assignee, deps) @@ -130,7 +131,7 @@ Three hooks wired in index.ts: ## Settled Decisions (Do Not Re-Debate) -1. SQLite via bun:sqlite — not file JSON, not in-memory-only +1. SQLite via the internal database adapter — not file JSON, not in-memory-only, not external native packages 2. promptAsync for message delivery — not session injection, not polling 3. 14 separate tools — not a unified action tool, no exceptions 4. Fire-and-forget spawn — not blocking, not tmux @@ -316,7 +317,7 @@ Teammates do not need to know how agent teams work internally. - TypeScript strict mode - Biome linter with `noExplicitAny: error` — no `any` types, no `as any` casts -- Zero external deps beyond @opencode-ai/sdk, @opencode-ai/plugin, bun:sqlite +- Zero external deps beyond @opencode-ai/sdk and @opencode-ai/plugin; SQLite access stays behind src/db.ts - Every exported function has a JSDoc comment - const over let, early returns over else - snake_case for SQL columns, camelCase for TypeScript @@ -352,7 +353,7 @@ Default to using Bun instead of Node.js. - Use `bun run