v0.10.3
✨ Added
drivers.<element>[.<facet>]config can now pin just the environment keys that differ from the real default, merged per-key instead of replacing the whole map —{ store: { sql: { local: "pglite" } } }resolves to{ local: "pglite", docker: "postgres", test: "memory", prod: "postgres" }, every other driver map (kv,files,signal,clock,journal,vault,channel.email/sms) staying fully at its real, untouched default. The real defaults now live in one place,src/config/driver-defaults.ts, and merge through a newmergeEnvDriverMaphelper scoped strictly to the{ local?, docker?, test?, prod? }shape (never a generic whole-config deep merge). Fixes a leak inresolveDriverId's olddocker → prod → local → testcascade, where pinning onlylocalcould bleed that value intodocker/prodinstead of falling back to the real default.oke doctornow prints the fully-resolveddrivers.*config — every real default plus every override, for all four env keys at once — so the complete picture stays visible even whenoke.config.tsonly pins one key. New--env local|docker|test|prodflag picks which env's active driver id is highlighted (default:dockerwhenOKE_DOCKER=1, elselocal); also included under adriverskey in--jsonoutput.
💥 Breaking Changes
imagesconfig is now nested the same way asdrivers(pre-1.0; no compat shim) —{ store: { sql, kv, files, index }, channel: { email }, vault, ai, pgdog, proxy }— instead of a flatRecord<string, string>keyed by dotted role strings. The old flat form no longer type-checks and is not read back; every project pinningimagesmust migrate. Closes a real type-safety gap: the old shape accepted any string key with zero compile-time or boot-time catch ("strore.sql"silently did nothing). Internal compose/Dockerfile derivation is unchanged — a newflattenImagesConfig()inokengine/configflattens the nested shape back to the dotted-role mapderiveInfrastructure()/buildSpecs()/ credentials already worked with.create-oke's scaffolder and both starter templates now generate the nested form;oke ai setupand the customize wizard'simagescodegen were rewritten to parse/emit it correctly (brace-balanced, not the old first-}-closes-it regex, which broke on nested sub-objects).
🔥 Removed
- Removed the Console section from the documentation site, including its navigation entry and links from related documentation pages.