diff options
| author | Adam Malczewski <[email protected]> | 2026-06-04 23:51:43 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-04 23:51:43 +0900 |
| commit | 51a88160fbb8e06d93f7507b5e3e4cca80e98902 (patch) | |
| tree | 1d3723bb2e0e5e40d0d3934fd8a0e5106b5b5398 | |
| parent | 357ad3567480b5483220e2cea266a4f1417d174d (diff) | |
| download | dispatch-51a88160fbb8e06d93f7507b5e3e4cca80e98902.tar.gz dispatch-51a88160fbb8e06d93f7507b5e3e4cca80e98902.zip | |
docs: tasks tracker — orchestrator+transport done; kernel-crs next
| -rw-r--r-- | tasks.md | 53 |
1 files changed, 22 insertions, 31 deletions
@@ -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). |
