You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
queen/replay: the actor runtime's decision log as a three-way conformance spec (wasm, reference, t27b) #8313
Part of gHashTag/trios#1712 (actor runtime improvements). Follows #8284 / #8285 (lane 1: telemetry and the decision log).
Problem
The actor runtime in gHashTag/trios decides through wasm cards (t27c gen-c + zig cc --target=wasm32-wasi). Lane 1 added a decision log: a tap in queen-card-wasm.ts records card, fn, args and result, and replayDecisions() replays the records on fresh wasm cards. That replay checks the wasm against itself. Nothing checks that the answers production's wasm gave are the answers the spec means on the other two backends: the reference path (t27c test-report: gen, then zig) and t27b's native AArch64 JIT.
The owner asked for it on 2026-10-10 ("yes").
What lands
specs/queen/replay/actors_decisions.t27, reviewer_decisions.t27, telemetry_decisions.t27: one module per card, generated from the decision log of the seeded reviewer run (seed 7852). Each module imports the card's functions with use queen::<card>::<fn> and asserts fn(args) == recorded_result once for every distinct (fn, args), in test blocks of at most 200 asserts.
Each header says what log it came from (trios commit, wasm and spec sha256) and that it is regenerated, not hand-edited. The generator is trios test glue (tests/api/queen-decision-spec.ts, behind QUEEN_DECISION_SPEC_OUT).
Done when
t27c test-report passes every assert of the three modules, with 0 vacuous tests.
A t27b lab receipt for the PR head shows the new files passing on t27b with runtime asserts, and reference_disagree stays 0.
Activity
spec(queen): the actor runtime's decision log as a three-way conforma…