Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
10 changes: 5 additions & 5 deletions artifacts/findings.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
12 changes: 6 additions & 6 deletions artifacts/phase2-pixhawk.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)
Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down
Loading