summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-04 23:51:43 +0900
committerAdam Malczewski <[email protected]>2026-06-04 23:51:43 +0900
commit51a88160fbb8e06d93f7507b5e3e4cca80e98902 (patch)
tree1d3723bb2e0e5e40d0d3934fd8a0e5106b5b5398
parent357ad3567480b5483220e2cea266a4f1417d174d (diff)
downloaddispatch-51a88160fbb8e06d93f7507b5e3e4cca80e98902.tar.gz
dispatch-51a88160fbb8e06d93f7507b5e3e4cca80e98902.zip
docs: tasks tracker — orchestrator+transport done; kernel-crs next
-rw-r--r--tasks.md53
1 files changed, 22 insertions, 31 deletions
diff --git a/tasks.md b/tasks.md
index d3b2316..4a1860d 100644
--- a/tasks.md
+++ b/tasks.md
@@ -13,49 +13,40 @@ drive fan-out); extension **loading is dynamic** (manifests via the host).
- [x] **contracts** — the ABI. `fd855ff` (+ `974ce6f`)
- [x] **bus** — event/hook/service bus. `669c269`
- [x] **runtime** — `runTurn` turn loop (dispatch §3.3), 16 tests. `ae22da5`
-- [x] **host** — discovery→DAG→activate→registries; builds HostAPI (wraps bus). `dbcf219` (50 tests)
+- [x] **host** — discovery→DAG→activate→registries; builds HostAPI (wraps bus). `dbcf219`
+- [~] **kernel-crs** — CR-2 (HostAPI.getProviders/getTools), CR-3 (runTurn use tabId/turnId). RUNNING.
### Core extensions (each ships a real manifest, loaded via the host)
- [x] **storage-sqlite** — bun:sqlite StorageNamespace + migrations (21 bun tests). `9b611d6`
- [x] **auth-apikey** — pure resolver env → ApiKeyCredentials (4 tests). `9b611d6`
- [x] **provider-openai-compat** — OpenAI-compatible SSE → ProviderEvents. `9b611d6`
- [x] **conversation-store** — append-only persistence + pure reconcile (16 tests). `8b9cc0c`
-- [~] **session-orchestrator** — load history → resolve provider/tools → runTurn → persist. RUNNING (parallel).
-- [~] **transport-http** — Hono `/chat` NDJSON stream; calls orchestrator seam. RUNNING (parallel).
+- [x] **session-orchestrator** — load history → resolve provider/tools → runTurn → persist (12 tests). `357ad35`
+- [x] **transport-http** — Hono `/chat` NDJSON stream; calls orchestrator seam (20 tests). `357ad35`
### Integration
- [ ] **host-bin** — boot: load config (.env → config), discover+activate
- extensions, start transport.
+ extensions (storage→conversation-store→provider/auth→orchestrator→transport),
+ wire auth→provider, start `Bun.serve`.
- [ ] **curl smoke test** — `curl -d '{...}' /chat` → real response from flash;
- verify multi-turn.
+ verify multi-turn (2nd message sees 1st).
## Verified state (this session)
-- Full `bun run typecheck` clean; `bun run test` 66 pass (vitest);
- `bun run test:bun` 21 pass (storage); `bun run check` clean.
-- Root `tsconfig.json` references all 4 packages. `vitest.config.ts` excludes
- storage-sqlite (bun:sqlite) → `test:bun`.
-
-## Resolved decisions
-- **Import path:** everything imports from `@dispatch/kernel` root barrel (NOT a
- `/contracts` subpath). Standardized; provider was fixed to match.
-- **Test runner split:** Bun-runtime packages (bun:sqlite) test via `bun test`;
- the rest via vitest. `test:all` runs both.
-
-## Open contract-watch (decide at composition)
-- **Provider credentials path:** provider currently reads creds from
- `host.config.get("provider.openai-compat.*")` and does NOT use the
- `AuthContract` from auth-apikey. For full fidelity the **session-orchestrator/
- host-bin** should resolve `AuthContract.resolve()` → feed the provider, OR we
- keep config-driven and auth-apikey stays vestigial for MVP. PREFER: orchestrator
- wires auth→provider. Decide when building host-bin.
-- **host dependency-injection shape:** what host-bin must wire (storageFactory,
- logger, config, secrets, perms). Defined by the host agent — review on return.
+- Full `bun run typecheck` clean across all 7 packages.
+- `bun run test` → 164 vitest tests pass. `bun run check` clean.
+- Root `tsconfig.json` now references all 7 packages.
+
+## Open contract-watch (decide at host-bin composition)
+- **Provider credentials path:** provider reads creds from `host.config`
+ (`provider.openai-compat.*`) and does NOT yet use `AuthContract` from
+ auth-apikey. PREFER: host-bin/orchestrator resolves `AuthContract.resolve()`
+ → feeds provider. Decide when building host-bin. (auth-apikey otherwise
+ vestigial for MVP.)
## Build order (remaining)
-host → conversation-store → session-orchestrator → transport-http → host-bin → curl.
+kernel-crs → host-bin → curl.
-## Parallelization notes
-- host + conversation-store CAN run in parallel (disjoint files; conversation-store
- builds against the StorageNamespace contract, not the host impl).
-- session-orchestrator + transport-http + host-bin are more sequential (compose
- the others) — do after host lands.
+## Parallelization log
+- host + conversation-store ran in parallel (disjoint). ✓
+- session-orchestrator + transport-http ran in parallel (disjoint). ✓
+- kernel-crs is solo (touches shared contracts/extension.ts).