Verification
| ID | Status | Evidence |
|---|---|---|
| AIC-CORE-001 | Implemented | src/persistence/store.test.ts; src/domain/engine.test.ts |
| AIC-CORE-002 | Implemented | src/domain/engine.test.ts; workspace identifier serialization |
| AIC-CORE-003 | Implemented | Continuation regressions cover idempotent linked attempts, new instructions, verified progress, exact ownership and rejection of uncertain execution or tool effects. src/persistence/store.test.ts; conservative unknown and interruption states |
| AIC-CORE-004 | Implemented | src/persistence/store.test.ts; src/transport/server.test.ts |
| AIC-CORE-005 | Implemented | src/persistence/store.test.ts; private command, output, preparation, tool payloads and diagnostic exceptions |
| AIC-CORE-006 | Implemented | src/service.test.ts; src/persistence/store.test.ts; src/runtime.test.ts restricted reattachment; execution ACP identity/session-boundary tests; ACP configure helper tests keep host-invented unsupported thinking non-fatal and fail closed only for requested fields; transport server read/write capture callback ordering and disconnect tests |
| AIC-CORE-007 | Implemented | src/execution/acp-worker-pool.test.ts covers global LRU, busy protection, idle expiry and cancellation; src/execution/acp.test.ts verifies retained same-thread execution; domain integration reserves before preparation and releases in the turn-finalization path. |
| AIC-CORE-008 | Implemented | src/execution/opencode-models.test.ts covers connected-provider-only model discovery against a large disconnected catalogue; src/execution/opencode.test.ts covers session-scoped SSE output and permission deduplication; src/execution/opencode-server.ts owns authenticated loopback process lifecycle and src/cli/config.ts validates the separate driver. |
| AIC-CORE-009 | Implemented | src/execution/opencode.test.ts covers premature stream failure and shared-capacity idle eviction; src/execution/acp-worker-pool.test.ts covers expiry and busy-worker protection. |
| AIC-CORE-010 | Implemented | src/execution/native-approval-policy.test.ts covers exact Codex and OpenCode mappings plus the OpenCode automatic fallback envelope. src/execution/codex-runtime-policy.test.ts verifies the Codex app-server wire values. ACP, Codex and OpenCode provider policy tests cover forwarding, native status and warm-session replacement. |
| AIC-CORE-011 | Implemented | src/execution/native-approval-policy.test.ts and src/execution/opencode-provider-policy.test.ts cover supervised and unrestricted rules, typed automatic fallback and policy-bound native session replacement. |
| AIC-TOOL-001 | Implemented | src/domain/engine.test.ts; src/transport/server.test.ts |
| AIC-TOOL-002 | Implemented | ACP effective-policy regressions reproduce four missing-policy failures and cover applied/unsupported/rejected/unreported native modes separately from generic approval policy. Approval-policy tests cover restricted effective Ask. Disposable packed-host acceptance: 134 tests passed; spec:check/check/build passed. Source checks pass against the documented packed-host installation. Eight real-provider turns verify Ask and Allow all decisions plus exact file effects across native Codex, Codex ACP, Cursor and OpenCode; see docs/local-policy-validation.md. ACP lifecycle tests cover host expiry/cancellation during capture, exact identity, one interaction and no late host response. Engine, policy and schema tests cover exact offered choices, task input and host deadlines. |
| AIC-TOOL-003 | Implemented | src/domain/engine.test.ts wraps mutating tools with cooperative capture, fails closed when begin throws, and records observed activity without exclusive begin |
| AIC-MEM-001 | Implemented | src/transport/server.test.ts; src/memory/lapis/native-memory-service.test.ts; src/memory/group/embedding-lifecycle.test.ts proves service start does not warm embeddings while explicit rebuild contains background failures; src/memory/embeddings/provider.test.ts covers lazy loading, query/document formatting, cooldown, idle disposal, reload, and shutdown; src/memory/embeddings/native-runtime.test.ts covers pinned cache resolution and checksum rejection. |
| AIC-MEM-002 | Implemented | src/memory/recall.test.ts; src/transport/server.test.ts |
| AIC-MEM-003 | Implemented | src/memory/lapis/native-memory-service.test.ts; src/memory/group/service.test.ts |
| AIC-API-001 | Implemented | src/transport/server.test.ts; src/runtime.test.ts |
| AIC-API-002 | Implemented | src/transport/server.test.ts; src/persistence/store.test.ts |
| AIC-API-003 | Implemented | src/auth/scopes.test.ts; src/auth/session.test.ts; src/transport/server.test.ts session authorization |
| AIC-API-004 | Implemented | src/transport/server.test.ts memory and tool isolation; src/auth/authorize.test.ts |
| AIC-API-005 | Implemented | Transport server test forwards optional providers.models sessionId; ACP provider test passes that id to listAcpModels. |
| AIC-CLI-001 | Implemented | Runtime CLI and managed protocol tests; snapshot installer regressions and cold installed-service smoke. |
| AIC-CLI-002 | Implemented | scripts/local-controller.test.mjs and scripts/runtime-install.test.ts cover local update, atomic snapshots, source independence, and failure preservation. |
| AIC-PKG-001 | Implemented | scripts/check-boundaries.mjs; pnpm publint scripts/npm-release.test.mjs and GitHub CI/release jobs cover checksum-bound candidates, protected OIDC publication, and clean registry integrity/provenance verification. |
| AIC-PKG-002 | Implemented | scripts/runtime-packages.test.mjs verifies independently copied hard-linked files, preserved bytes/executable bits, excluded unshipped files and script-free inventories for dependencies with prepare hooks; complete CLI builds and verified runtime installation exercise the package graph. |
| AIC-ARCH-001 | Implemented | scripts/architecture.test.mjs covers new-file budget, counted-line growth, stale budgets, comment-only edits, missing baseline paths, and CI=true --write-baseline. pnpm check:architecture passes against scripts/architecture-baseline.json. |
| AIC-ARCH-002 | Implemented | Architecture fixtures cover forbidden relative/re-export/dynamic imports, runtime cycles, composition-root permission, type-only store imports, production→test isolation, dump filenames, and CLI→controller imports. |
| AIC-GOV-001 | Implemented | pnpm spec:check |
| AIC-API-006 | Implemented | Transport server tests verify provider-scoped resource reads and rejection of another provider; ACP provider tests verify host snapshot forwarding and explicit unavailability. |
| AIC-GOV-002 | Implemented | pnpm spec:check |
| AIC-GOV-003 | Implemented | pnpm spec:check |
| AIC-CAP-001 | Implemented | src/persistence/sanitization.test.ts inspects first SQL bindings; src/memory/group/capture-store.test.ts checks index ingress/replay |
| AIC-CAP-002 | Implemented | src/capture/session.test.ts; public allowlist without lifecycle or extension leftovers; one usage snapshot after several updates; src/execution/compat/acp-event-mapper.test.ts folds tool_call_update into the same tool pair |
| AIC-CAP-008 | Implemented | src/execution/compat/tool-snapshot.test.ts extracts command and merges updates; src/capture/session.test.ts keeps original args and name across a thin tool_call_update; src/execution/compat/acp-event-mapper.test.ts maps command, locations, permission envelope and optional usage cost |
| AIC-CAP-003 | Implemented | src/capture/session.test.ts whole logical messages, thinking, immediate fixed status and interruption gaps |
| AIC-CAP-004 | Implemented | Continuation and private-transcript-replay tests cover live metadata-only replay without persisting plaintext and explicit history loss after restart. Focused regression: one failed before, passed after; full suite 130 passed, spec:check/check/build passed. src/transport/transcript.test.ts covers owner authorization and durable acknowledgment before execution. |
| AIC-CAP-005 | Implemented | src/persistence/sanitization.test.ts raw tool execution and sanitized model results; existing unknown-outcome recovery tests |
| AIC-CAP-006 | Implemented | Group capture-store and Lapis native-memory-service tests cover first index writes and legacy reads; execution location capabilities remain separate |
| AIC-CAP-007 | Implemented | Managed stderr buffers complete EOF with bounded scan; local compiled binary starts its isolated scanner and persists a policy-bearing thread; start does not await stdin finish; start writes resolve without stdin close; start failures include the readiness cause; bare names resolve from PATH or $HOME/.local/bin; scripts/build-cli.mjs compiles without --self-extracting, prunes source maps, declaration files, test/spec files and test/example/benchmark directories from the staged runtime dependencies, removes stale artifacts/.lapis-ai-controller, and asserts no executable-adjacent extraction cache remains. |
| AIC-GOV-004 | Implemented | README.md; public-export example compilation; package checks |
| AIC-GOV-005 | Implemented | .github/workflows/publish-spec-pages.yml; mdbook build spec; actionlint |
Group embedding lifecycle regressions reproduce two unhandled capture rejections (read and write) before the fix. Both fail closed after the fix without raw writes or additional embedding dispatch. Service start no longer warms the embedding worker, and closing during an in-flight explicit rebuild batch also prevents later batches and writes before the scanner is disposed.
Validation for the embedding drain repair (2026-09-24): three focused lifecycle
regressions pass; pnpm spec:check, pnpm check, pnpm test (137 tests), and
pnpm build pass. The packed package passes all 365 enabled Nostr controller
tests, including its native checkout repair (two opt-in provider/clone tests
remain skipped in that run). Lapis uses the separate vault-memory profile;
its implementation is unchanged.