Skip to content

queen/replay: the actor runtime's decision log as a three-way conformance spec (wasm, reference, t27b) #8313

Closed

Description

@gHashTag

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.
  • Any record on which the three backends disagree is minimized to one record and filed on its own (a codegen defect: see epic: self-host t27c -- rewrite the compiler from Rust into t27 #5980).

Activity

  1. added a commit that references this issue on Oct 9, 2026
    151075b
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions