From e32477baacde5e0ed33cfe994f1fa13b6864c8fe Mon Sep 17 00:00:00 2001 From: Ralf Anton Beier Date: Tue, 23 Jun 2026 20:27:58 +0200 Subject: [PATCH] =?UTF-8?q?rivet:=20bump=20CI=20v0.15.0=20=E2=86=92=20v0.1?= =?UTF-8?q?8.0=20(per-schema=20status=20enums=20shipped,=20#550);=20migrat?= =?UTF-8?q?e=207=20statuses;=20AFD-012=20RESOLVED?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit rivet v0.18.0 (released 2026-06-23T17:52, post the #550 close) carries the PER-SCHEMA status enums that were jess's long-standing bump blocker (AFD-012, pinned at 0.15.0 ~3 weeks): - ai-found-defect enum = [open, triaged, resolved] (jess's open/resolved now VALID) - test-spec enum = [draft, valid, invalid, in_progress, obsolete] - requirement still allows accepted/implemented/verified Verified on the v0.18.0 darwin binary, migrated the 7 now-mismatched statuses: - TEST-PIX-005/010/013/017/018: verified -> valid - TEST-PIX-014: implemented -> valid - AFD-001: draft -> open (its triage-status) and bumped RIVET_VERSION v0.15.0 -> v0.18.0 in ci.yml. rivet 0.18.0 validate: PASS (0 errors, 110 warnings). AFD-012 marked resolved. Going-forward convention recorded (defects open/triaged/resolved; test-specs valid/invalid/...). The per-schema-status-enum work jess advocated in rivet#522/#550 + pulseengine.eu#90/#95 + rivet#554 is shipped. Co-Authored-By: Claude Opus 4.8 --- .github/workflows/ci.yml | 2 +- artifacts/findings.yaml | 10 +++++----- artifacts/phase2-pixhawk.yaml | 12 ++++++------ 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2706e4c..dea5e1b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ env: # Pinned PulseEngine tool releases — bumped explicitly via PR. jess holds # rivet at 0.15.0 until a release carries the `accepted` status fix # (rivet#525, merged to main, not yet released — see AFD-012). - RIVET_VERSION: v0.15.0 + RIVET_VERSION: v0.18.0 SPAR_VERSION: v0.17.0 # Pinned gale external (rivet.lock) — jess's stpa hazards trace to gale's # losses/hazards (gale:L-1, gale:H-2), so validate needs the gale sibling. diff --git a/artifacts/findings.yaml b/artifacts/findings.yaml index e4ec923..803fb87 100644 --- a/artifacts/findings.yaml +++ b/artifacts/findings.yaml @@ -2,7 +2,7 @@ artifacts: - id: AFD-001 type: ai-found-defect title: synth graph unresolvable — broken CTRL-RA ref plus synth-sigil cycle - status: draft + status: open description: > During jess external-integration setup (Task 8/9 of the rivet tracking spine), `rivet validate` was run against the synth upstream repo @@ -239,14 +239,14 @@ artifacts: - id: AFD-012 type: ai-found-defect title: rivet 0.16.0 canonical status enum is breaking - no migration, drops 'accepted', misfits ai-found-defect - status: open + status: resolved description: > - Adopting rivet 0.16.0 flips the jess store from PASS (4 warnings) on 0.15.0 to FAIL (21 errors) with no artifact changes - all 21 are the new canonical status enum (PR #419 / #352): status values accepted (x12), open (x7), resolved (x2) are no longer allowed; the enum is [draft, proposed, approved, implemented, verified, released, deprecated, rejected]. Three friction points: (1) breaking with no migration path - a previously-valid store needs 21 manual edits; (2) 'accepted' was the documented terminal lifecycle state (draft->...->verified->accepted in rivet's own release/agent guidance) and is now gone; (3) one global document-lifecycle enum doesn't fit ai-found-defect, whose natural vocabulary is open/triaged/resolved/wontfix. Suggested: ship a status remap (rivet migrate / validate --fix) + documented mapping, reconcile 'accepted', and allow per-schema status enums. jess stays on rivet 0.15.0 for now to keep the store valid and defect semantics correct. Filed https://github.com/pulseengine/rivet/issues/522 - supervising. UPDATE 2026-06-10 (iter#4): maintainer triaged and confirmed all three points as independently actionable; at their request jess added an Acceptance-Criteria block to the issue for slice 2 (re-add 'accepted' to the canonical enum - clears 12 of 21 errors, one-line schema change), with slices 1 (rivet migrate / validate --fix) and 3 (per-schema defect status enum) scoped out for separate PRs. jess stays on 0.15.0 until at least slice 2 ships. UPDATE 2026-06-10 (iter#6): slice-2 draft PR rivet#525 verified PRE-MERGE against the jess store - built pr525 head 117e9c7 and ran validate: accepted errors 13 -> 0, remaining 13 are exactly the out-of-scope slice-3 vocabulary (open x7, resolved x6 on ai-found-defect). Posted the verification table on rivet#522 (issuecomment-4673352099); PR is parked as draft only on the pulseengine.eu blog 503 process gate. jess upgrades off 0.15.0 once slice 2 ships in a release. UPDATE 2026-06-14 (iter#19): rivet#525 MERGED to main and rivet#522 CLOSED - but the merge (13:13) postdates the latest release v0.16.1 (08:20), so 'accepted' is fixed on main but NOT YET in a release. jess holds at 0.15.0 and adopts the first rivet release that carries #525; will re-run validate on that release to confirm accepted 13->0 before upgrading. UPDATE 2026-06-20 (iter#41): rivet v0.17.0 RELEASED carrying #525 (slice 2). Re-verified against the jess store on the v0.17.0 darwin release: accepted errors 0 (slice 2 confirmed shipped), remaining = EXACTLY 27 status-enum errors, ALL on ai-found-defect: 14 open + 13 resolved (slice 3, the per-schema defect status enum, NOT yet shipped); no non-status errors. Bump gated solely on slice 3. Rather than migrate 52 defect artifacts to an ill-fitting canonical mapping, jess filed the focused slice-3 ask https://github.com/pulseengine/rivet/issues/550 (per-schema status enum for ai-found-defect, or a documented defect mapping + rivet migrate). jess stays on 0.15.0 and bumps to v0.17.0 the moment defect statuses validate; offered pre-merge branch testing as for #525. UPDATE 2026-06-23 (cron loop): rivet#550 is now CLOSED (2026-06-23T08:21) - the slice-3 per-schema ai-found-defect status enum is resolved on rivet main. BUT the latest rivet RELEASE is still v0.17.0 (2026-06-19), which PREDATES the close, so no release carries the slice-3 fix yet; jess CI stays pinned RIVET_VERSION v0.15.0 and validate PASSES there (confirmed this loop with a freshly-bootstrapped rivet 0.15.0 darwin binary). CAVEAT discovered: a local rivet that had DRIFTED to 0.17.0 (build d648ce44, main 2026-06-23) still REJECTS open/resolved on ai-found-defect (28 errors, allowed = the generic [draft..accepted] enum) - i.e. even the same-day main build does not yet expose [open/triaged/resolved] for the defect schema, so the #550 resolution likely needs a schema opt-in OR my local build predates the merge. NET: bump off 0.15.0 still blocked until (a) a rivet RELEASE past the #550 fix ships AND (b) jess re-verifies open/resolved validate on it (offer pre-release verification, as for #525). OPERATIONAL: validate jess with the CI-PINNED rivet 0.15.0, NOT a drifted local 0.17.0 (the latter gives false FAILs on the pre-existing defect statuses). + Adopting rivet 0.16.0 flips the jess store from PASS (4 warnings) on 0.15.0 to FAIL (21 errors) with no artifact changes - all 21 are the new canonical status enum (PR #419 / #352): status values accepted (x12), open (x7), resolved (x2) are no longer allowed; the enum is [draft, proposed, approved, implemented, verified, released, deprecated, rejected]. Three friction points: (1) breaking with no migration path - a previously-valid store needs 21 manual edits; (2) 'accepted' was the documented terminal lifecycle state (draft->...->verified->accepted in rivet's own release/agent guidance) and is now gone; (3) one global document-lifecycle enum doesn't fit ai-found-defect, whose natural vocabulary is open/triaged/resolved/wontfix. Suggested: ship a status remap (rivet migrate / validate --fix) + documented mapping, reconcile 'accepted', and allow per-schema status enums. jess stays on rivet 0.15.0 for now to keep the store valid and defect semantics correct. Filed https://github.com/pulseengine/rivet/issues/522 - supervising. UPDATE 2026-06-10 (iter#4): maintainer triaged and confirmed all three points as independently actionable; at their request jess added an Acceptance-Criteria block to the issue for slice 2 (re-add 'accepted' to the canonical enum - clears 12 of 21 errors, one-line schema change), with slices 1 (rivet migrate / validate --fix) and 3 (per-schema defect status enum) scoped out for separate PRs. jess stays on 0.15.0 until at least slice 2 ships. UPDATE 2026-06-10 (iter#6): slice-2 draft PR rivet#525 verified PRE-MERGE against the jess store - built pr525 head 117e9c7 and ran validate: accepted errors 13 -> 0, remaining 13 are exactly the out-of-scope slice-3 vocabulary (open x7, resolved x6 on ai-found-defect). Posted the verification table on rivet#522 (issuecomment-4673352099); PR is parked as draft only on the pulseengine.eu blog 503 process gate. jess upgrades off 0.15.0 once slice 2 ships in a release. UPDATE 2026-06-14 (iter#19): rivet#525 MERGED to main and rivet#522 CLOSED - but the merge (13:13) postdates the latest release v0.16.1 (08:20), so 'accepted' is fixed on main but NOT YET in a release. jess holds at 0.15.0 and adopts the first rivet release that carries #525; will re-run validate on that release to confirm accepted 13->0 before upgrading. UPDATE 2026-06-20 (iter#41): rivet v0.17.0 RELEASED carrying #525 (slice 2). Re-verified against the jess store on the v0.17.0 darwin release: accepted errors 0 (slice 2 confirmed shipped), remaining = EXACTLY 27 status-enum errors, ALL on ai-found-defect: 14 open + 13 resolved (slice 3, the per-schema defect status enum, NOT yet shipped); no non-status errors. Bump gated solely on slice 3. Rather than migrate 52 defect artifacts to an ill-fitting canonical mapping, jess filed the focused slice-3 ask https://github.com/pulseengine/rivet/issues/550 (per-schema status enum for ai-found-defect, or a documented defect mapping + rivet migrate). jess stays on 0.15.0 and bumps to v0.17.0 the moment defect statuses validate; offered pre-merge branch testing as for #525. UPDATE 2026-06-23 (cron loop): rivet#550 is now CLOSED (2026-06-23T08:21) - the slice-3 per-schema ai-found-defect status enum is resolved on rivet main. BUT the latest rivet RELEASE is still v0.17.0 (2026-06-19), which PREDATES the close, so no release carries the slice-3 fix yet; jess CI stays pinned RIVET_VERSION v0.15.0 and validate PASSES there (confirmed this loop with a freshly-bootstrapped rivet 0.15.0 darwin binary). CAVEAT discovered: a local rivet that had DRIFTED to 0.17.0 (build d648ce44, main 2026-06-23) still REJECTS open/resolved on ai-found-defect (28 errors, allowed = the generic [draft..accepted] enum) - i.e. even the same-day main build does not yet expose [open/triaged/resolved] for the defect schema, so the #550 resolution likely needs a schema opt-in OR my local build predates the merge. NET: bump off 0.15.0 still blocked until (a) a rivet RELEASE past the #550 fix ships AND (b) jess re-verifies open/resolved validate on it (offer pre-release verification, as for #525). OPERATIONAL: validate jess with the CI-PINNED rivet 0.15.0, NOT a drifted local 0.17.0 (the latter gives false FAILs on the pre-existing defect statuses). RESOLVED 2026-06-23 (cron loop): rivet v0.18.0 RELEASED (2026-06-23T17:52, POST the #550 close) and it carries the PER-SCHEMA status enums - validated on the v0.18.0 darwin binary: ai-found-defect enum = [open, triaged, resolved] (so jess's open/resolved now VALID), test-spec enum = [draft, valid, invalid, in_progress, obsolete], requirement enum still allows accepted/implemented/verified. jess MIGRATED the 7 now-mismatched statuses (6 test-specs verified/implemented -> valid; AFD-001 draft -> open, its triage-status) and BUMPED CI RIVET_VERSION v0.15.0 -> v0.18.0; rivet 0.18.0 validate = PASS (0 errors, 108 warnings). The ~3-week 0.15.0 pin is lifted. GOING-FORWARD CONVENTION (under 0.18.0): ai-found-defect status uses open/triaged/resolved (NOT draft/accepted); test-spec uses valid/invalid/in_progress/draft/obsolete (NOT verified/implemented). The slice-3/per-schema work jess advocated in #522/#550 + pulseengine.eu#90/#95 + rivet#554 is now shipped. tags: [release-watch, rivet, schema, breaking] fields: - detected-by: jess loop iter#3 (2026-06-10) - rivet 0.16.0 validate on the jess store + detected-by: jess loop iter#3 (2026-06-10) - rivet 0.16.0 validate on the jess store; RESOLVED rivet v0.18.0 (per-schema status enums shipped #550); jess migrated 7 statuses + bumped CI 0.15.0->0.18.0 severity: major - triage-status: open + triage-status: resolved links: - type: traces-to target: REQ-003 diff --git a/artifacts/phase2-pixhawk.yaml b/artifacts/phase2-pixhawk.yaml index e71282b..a32f19d 100644 --- a/artifacts/phase2-pixhawk.yaml +++ b/artifacts/phase2-pixhawk.yaml @@ -362,7 +362,7 @@ artifacts: - id: TEST-PIX-010 type: test-spec title: mav_bench decodes a real 6X-RT MAVLink sample (CRC-valid), identifies PX4, extracts attitude - status: verified + status: valid description: > Host oracle (tools/bench/test_mav_bench.py) over the committed real sample repro/pixhawk-bench/mavlink-sample.bin (8424 B captured from the connected @@ -380,7 +380,7 @@ artifacts: - id: TEST-PIX-014 type: test-spec title: Real PX4 fmu-v6xrt boots on the RT1176 Renode model far enough to drive the LPUART console - status: implemented + status: valid description: > Stage-2 console milestone oracle for REQ-PIX-014 (DD-008). hardware/renode/px4/ run-px4-boot.sh boots the real PX4 fmu-v6xrt firmware (extracted from the .px4) @@ -400,7 +400,7 @@ artifacts: - id: TEST-PIX-013 type: test-spec title: Renode RT1176 confirms synth bulk-memory OOB access routes UDF -> Trap_Handler (synth#374 silicon gate) - status: verified + status: valid description: > Hermetic oracle for the one path synth's unicorn differential can't see (AFD-026 / synth#374): a wasm bulk-memory OOB access lowers to an inline UDF @@ -425,7 +425,7 @@ artifacts: - id: TEST-PIX-005 type: test-spec title: Renode i.MX RT1176 platform boots a bring-up firmware to a LPUART1 banner - status: verified + status: valid description: > Renode Robot oracle (hardware/renode/rt1176-smoke.robot) on the hand-authored RT1176 platform (hardware/renode/pixhawk6xrt.repl): load the @@ -528,7 +528,7 @@ artifacts: - id: TEST-PIX-017 type: test-spec title: gust failsafe runs hardware-free in wasmtime - gust_mix(1024)=1500 (Track A SIL, the wasmtime parallel to the eval board) - status: verified + status: valid description: > sim/gust-wasmtime.sh runs gale's gust_kernel.wasm (the dissolved failsafe kernel's pre-synth wasm) in wasmtime and asserts gust_mix(1024) == 1500 - the same value @@ -546,7 +546,7 @@ artifacts: - id: TEST-PIX-018 type: test-spec title: Combined M7+F100 vehicle in wasmtime - nominal M7 control in-spec, M7-fault -> gust failsafe takeover, gap-free handoff (Track A hardware-free) - status: verified + status: valid description: > sim/vehicle-wasmtime.sh runs BOTH node behaviors in wasmtime and models the inter-node IPC heartbeat + failsafe arbitration (the relay-bus carrier / gust