Gunnar

nordisk/monetize

Newest commits

b56df01194a6Merge relt21/upgrade-poll-2026-10-29 into main (lane REL-T2-1): a front's Upgrade is started, then polled; the ONE box edge's idle cut is never the update's failure2026-10-29
3c3bb377e69cREL-T2-1 GREEN: a front's Upgrade is started, then polled; a cut is never the update's failure2026-10-29
a72815a17dc3REL-T2-1 RED: a front's Upgrade cut by the ONE box edge's idle bound mid keep boot is recorded failed2026-10-29
1525cd212aa6Merge ovw/overview-clean-2026-10-29 into main (lane OVW-CLEAN): the Overview lists only estates that exist, one New-estate slot2026-10-29
e9132dc9f090OVW-CLEAN: the CLI's unknown-command example is no longer `estates` (now a verb): `shop`2026-10-29
4ce610488666OVW-CLEAN GREEN: the Overview lists only estates that exist; one New-estate slot2026-10-29
0b80f68d941eOVW-CLEAN RED: the Overview lists only estates that exist; one New-estate slot2026-10-29
37568343aa37Merge rel-one-d/dotted-secret-names-2026-10-29 into main (lane REL-ONE-D): the intake takes every secret name the secrets writer takes, so the per-product sold relay secret.sold_smtp_url.<product> / sold_smtp_from.<product> (OX-RELAY2, PMO 227bce1) no longer makes the ONE box refuse its whole feed. RED 9a84da14, GREEN ff0eebb5. monetize-front 37/0, clippy -D warnings clean; monetize-admin 128/0; the prod feed of PMO cf221ae2 (dummy secret values) is judged OK by the box's own judge and server --check2026-10-29
ff0eebb50893GREEN monetize-front: the intake takes every secret name the secrets writer takes (secrets::valid_name), so the per-product sold relay secret.sold_smtp_url.<product> / sold_smtp_from.<product> (OX-RELAY2) that monetize-server reads is no longer refused as "not a plain word" (lane REL-ONE-D)2026-10-29
9a84da149fecRED monetize-front: a per-product secret (secret.sold_smtp_url.<product>, OX-RELAY2) is taken under its dotted name; the intake refuses it as "not a plain word", so the ONE box refuses its whole feed (lane REL-ONE-D)2026-10-29
fe7517977596Merge ox-postpub/follow-2026-10-29 into main (lane OX-POSTPUB): monetize-proto 0.3.3 (merge of ox-ci/monetize-proto-0.3.3-2026-10-28, now on crates.io), monetize-admin on estate-front 0.3.0, xtask on nornir-xtask-support 0.1.6. Gate on the merged tree (ci4, dwarf): lockcheck green, xtask tests green (the_published_line incl.), monetize-admin 128/0, cargo xtask ci --only test GREEN (guests + workspace 2792/0)2026-10-29
232dcb825f42xtask lock: nornir-xtask-support 0.1.6 from crates.io (lane OX-POSTPUB)2026-10-29
1a39c5caf125monetize-admin: estate-front "0.3.0" (edda main 83f18e5 and crates.io say 0.3.0); its lock follows (cargo xtask ci lockfollow) (lane OX-POSTPUB)2026-10-29
bd85c0779eebMerge ox-ci/monetize-proto-0.3.3-2026-10-28 into main (lane OX-POSTPUB): monetize-proto 0.3.3 is on crates.io (owner publish 2026-10-29 084001Z); main's monetize-proto says 0.3.3 and the locks follow2026-10-29
c9d50d725f90Merge oxg4/update-config-check-2026-10-29 into main (lane OXG-4): box update asks the next release's app, out of its own verified archive, whether it reads the box's fed config (its server --check), and refuses by name before anything is staged ([self-next-config], Plan::Config: what to feed first, feed --apply or feed --next); box running says it too. RED c8aedf61, GREEN 854140e6. monetize-admin lib 90/0, every test target green, clippy -D warnings clean, musl check builds OpenZL. The way back after a trial that never confirmed was already sane (the failed slot is not offered, the confirmed slot runs; the next release goes into the failed slot): no change2026-10-29
854140e6f28bGREEN monetize-admin: box update asks the next release's app before anything is staged (OXG-4) — the archive fetched and proven, verified as the stage verifies it, its korp.entry read out of the .znippy into a memfd and run as `server --check --config <the box's fed config>`; a refusal is Plan::Config ([self-next-config], the app's own reason, what to feed first: feed --apply or feed --next), in `box running`, the plan and the apply alike; a next feed staged for that app is the config it starts on; what cannot be asked is logged and the plan stands (the trial's rollback stays the last guard). The word is kept per app pin and config blake3. znippy-common (OpenZL) is linked for the read. monetize-admin lib 90/0, all test targets green, clippy --all-targets -D warnings clean, musl check builds openzl2026-10-29
c8aedf61d32eRED monetize-admin: box update must refuse, before staging, a release whose app cannot read the box's fed config (an old-shape config with [products.x.plans]), and say what to feed first; the next app's `server --check` word is ok or its reason (lane OXG-4)2026-10-29
1f11dabf1754Merge wgds5/declared-ports-2026-10-29 into main (lane OX-WGDS5): a role declares the ports it opens to anyone (RoleFacts.open, ShapeRole.open, PlanShape::open_of); the plan's shape carries them, LaidEstate and RestoreFromBackup carry the shape, and every firewall the shop writes again (the update's, a plan change's, a restore's) carries the product's shape as it says now. RED 2316571a/c4ffce1b, GREEN fbf01486/e1584952. monetize-server lib 927/0 + the 16 guest-wasm targets green after build-guests, monetize-cloud 82/0, clippy clean. KVM gate w5a GREEN on the merged tree: base 19/19, downstream 21/21 (dwarf, 2211 s)2026-10-29
a9099c39f4a0Merge wgds5/ci-only-guests-2026-10-29 into main (lane OX-WGDS5): cargo xtask ci --only <prefix> keeps the guests step before the root test step, whose guest-wasm targets load the real built guests and never skip. RED 1d9071c2. xtask tests green, xtask clippy clean. KVM gate w5a GREEN on the merged tree: base 19/19, downstream 21/21 (dwarf, 2211 s)2026-10-29
e1584952d84aGREEN monetize-server: every firewall the shop writes again carries the product's shape as its facts say NOW (lifecycle::shaped_now): the update's rewrite before its first step, a plan change's, and a front's restore (its plan's shape), so a front laid before its product declared a port opens it on the normal update path, and a product that declares none opens none (lane OX-WGDS5)2026-10-29