v0.11.2
โจ Added
- Prompt recovery + deadline:
smart.prompt(name, { via: ["smart", "local"], timeout: "30s" }).fx.askwalks the chain with one same-model retry on retryable errors (timeout / 429 / 5xx), stops on permanent failures (401 / schema), stamps winningviaon the result, and throws when the chain is exhausted. Ask-time{ via, timeout }overrides the prompt.
๐ Security
- Built-in Vault
rotateMastertakes a Clock/Signal-class lease (FOR UPDATE SKIP LOCKED+ lease-expiry onoke_vault_status): concurrent rotators โ exactly one wins; the other fails loud before any DEK rewrite, so no DEK can end up wrapped under an unsaved key. - Audit appends serialize with
SELECT โฆ FOR UPDATEon the status singleton inside a transaction, so concurrent writers cannot fork the hash chain. oke vault backupwrites temp โ fsync โ atomic rename; bundles include a trailingoke-vault-backup-endmarker and payload SHA-256 checked before decrypt (incomplete files no longer look restore-ready).
โป๏ธ Changed
- Durable local markers move to
.oke/state.json(seededAtafter the one-shot seed prompt). Legacy.oke/seededmigrates once then is removed..oke/dev.jsonstays the live session lock;.oke/console.secretstays Console signing (not Vault). - llama.cpp entrypoint now lands in
.oke/llama-entrypoint.py(generated / gitignored) instead ofdocker/โ app trees stay TypeScript-only; compose mounts../.oke/โฆ. Staledocker/llama-entrypoint.pyis pruned on derive. - OKE1008 / OKE1009 copy now says
dev+compose/prod(ConfigEnv collapse), matching the boot warn strings.
๐ Fixed
- Collapse diagram hub nodes: opaque background plates mask spoke junctions; dimming hits stroke/label only so symbols stay readable on dark cards.
- Landing element lattice: header/footer readout swaps stay absolute so the idle beat no longer briefly doubles chrome height on every step.
- Collapse diagram hub nodes: idle element discs use a muted-into-card fill (no stroke) so dimmed symbols stay readable on dark cards.
create-oke: locales and PgDog answers now always write to~/.oke/create-defaults.json(reuse / recommended), not only after customize โ so Previous settings keepar/ PgDog across runs.oke devschema sync: a brokenschema.decl.ts(table / relation definition error) now prints a red โschema.decl.ts has an error โ โฆline instead of the softoke db push (dev) skipped โ โฆframing that looked like a benign skip. Environmental gaps (no config / no images) still soft-skip; the session stays up.- Share one warmed in-memory PGlite per remaining dialect test file (
sql-session/resource/index-boot) and raisebeforeAllhook budgets to 15s so Bun does not mis-report cold WASM as a hook timeout createTestAppagain forces in-process memory SQL (and drops the per-harness on-disk PGLite datadir). After v0.11 madeSTORE_SQL_DEFAULTS.testPGLite, kernel tests that insert via the harness were paying cold WASM+pgvector init (~5s) and timing out โ dialect tests still opt into PGLite viaboot.config.drivers.store.sql.- Vault logic-only unit tests (
oke vaultinit/status seal-state CLI, security checklist audit-tamper) use an in-memory Vault SQL fake instead of cold PGlite WASM โ dialect proof stays onbuiltin-adapter.test.ts. - Vault/Console dialect tests share one warmed in-memory PGlite per file (
beforeAll+TRUNCATEbetween cases) so cold WASM is paid once, not per test โbuiltin-adapter,vault-cmddialect cases,vault-builtin, andoperator-dbpersistence.