Repository navigation
master: Seal Coverage red -- 56 stale seals after the #8415 gen wave + trinet_node j_go test observes a cycle late #8553
Description
master: Seal Coverage red -- 56 seals stale after the #8415 gen wave, and trinet_node's new test reads j_go a cycle late
Two findings, one gate.
1. The wave. 43b810a (#8415) moved FROZEN_HASH with compiler.rs, so every generated target's bytes changed; every seal not regenerated since then reports [stale] -- 56 of them at c494cc5 (ArtyA7/CTS/Optimization/Partition/PipelineE2E/Power/QMTech/Router/Simulator testbenches, the Ternary* ISA family, TriMath/TriMeasurement/TriBellmanFord, SpecWriter, bench_main, ternary_vs_binary, lsp-language, trinity-numeric-surface, functions_fn_monitoring_*, ... plus their twins). Repair is the checker's own prescription: t27c seal <spec> --save && tri seals sync-twins, batched on the Railway lab (zig on PATH).
2. The refusal that mattered. Resealing refused one spec: specs/fpga/trinet_node.t27 has a genuinely failing test on master -- j_go_rises_exactly_when_a_job_starts, added by #8490 after the spec's last seal (seal record 6/6 passing at 2026-10-09T21:53Z; master runs 8 tests). The test ends a frame with on_clock(0,0,0,1,1) and only THEN starts counting j_go pulses in the next 100 clocks -- but j_go is registered on the accept edge itself, so the one-cycle strobe is high in the cycle right after that call and the window sees 0 pulses. The core is right (the nonblocking idiom is documented at the top of on_clock, and the sibling j_go_stays_low_for_non_requests passes under the same reading); the observation window is one cycle late. Fix: assert j_go right after the accept edge, then require 0 pulses in the following window.
Fix: test-only edit to trinet_node.t27 + the 56-seal reseal batch, one PR. Refs #6063 (steward lane; the same burst needed ledger re-blesses in #8535).
Boundary
specs/fpga/trinet_node.t27
.trinity/seals/*.json
User Scenarios
- Given the gen-zig: an empty typed array &[_]T{} lowers to .{} (Closes #8390) #8415 generation wave changed FROZEN_HASH and thus every generated target's bytes, When the seal checker runs on master, Then 56 seals report
[stale]across ArtyA7/CTS/Optimization/Partition/PipelineE2E/Power/QMTech/Router/Simulator testbenches, the Ternary* ISA family, TriMath/TriMeasurement/TriBellmanFord, SpecWriter, bench_main, ternary_vs_binary, lsp-language, trinity-numeric-surface, functions_fn_monitoring_*, and their twins. - Given
specs/fpga/trinet_node.t27has a testj_go_rises_exactly_when_a_job_startsadded by E2c: eth_reply.t27 -- the receipt as a unicast UDP datagram to the requester (AX7203) #8490 after the last seal (record 6/6 passing at 2026-10-09T21:53Z), When the test runs on master (8 tests total), Then it fails because the observation window starts one cycle late: the test ends a frame withon_clock(0,0,0,1,1)and only then counts j_go pulses in the next 100 clocks, but j_go is registered on the accept edge so the strobe is high in the cycle right after that call.
Requirements
- FR-001: The test
j_go_rises_exactly_when_a_job_startsinspecs/fpga/trinet_node.t27MUST be edited to assert j_go immediately after the accept edge, then require 0 pulses in the following window. - FR-002: All 56 stale seals identified by the checker MUST be regenerated via
t27c seal <spec> --saveand twins synced viatri seals sync-twinson the Railway lab (zig on PATH). - FR-003: The reseal batch MUST include every seal currently reporting
[stale]at c494cc5.
Success Criteria
t27c test specs/fpga/trinet_node.t27exits 0 with all 8 tests passing includingj_go_rises_exactly_when_a_job_starts.tri seals checkexits 0 with zero[stale]seals reported.- The file
.trinity/seals/trinet_node.jsonis updated with a new seal record showing 8/8 tests passing. - 56 seal files under
.trinity/seals/*.jsonhave updated timestamps/hash records reflecting the gen-zig: an empty typed array &[_]T{} lowers to .{} (Closes #8390) #8415 gen wave.
Activity
seals: reseal the #8415 FROZEN_HASH wave -- 56 seals regenerated with…
merge master: keep this branch's reseal batch over #8554's overlappin…
Reseal the #8415 FROZEN_HASH wave (56 seals) + trinet_node j_go test …