Skip to content

seal: re-save ml_train_hslm.json after the \xNN emitter change -- coverage gen-drift on every PR #10865

Open

Description

@gHashTag

The coverage check ("Every seal still describes its spec") is red on master's PRs with one gen-drift seal:

FAIL: 1 seal(s) newly do not hold
  ml_train_hslm.json  [gen-drift]
      specs/ml/train_hslm.t27 still hashes the same, but gen_hash_rust do not

The spec is unchanged. The generated Rust changed, which is what an emitter fix looks like. The likely cause is #10812 (\xNN in a string now lowers to one byte in every backend), merged as ae19b93: train_hslm.t27 writes binary checkpoint bytes. Seen on the stack PRs #10792, #10800, #10806, #10816, #10822 and #10830, none of which touch specs/ml or the compiler (run 39198010222).

Boundary

  • Re-save ml_train_hslm.json with master's t27c (t27c seal --save specs/ml/train_hslm.t27), on the Railway lab.
  • Not in scope: adding the seal to seal_baseline.txt (the gate's own text says that is the wrong repair for gen-drift), or editing specs/ml/train_hslm.t27.
  • The same run lists 9 baselined seals that now hold (TernaryShift.json, TriHtml.json, TriTerminal.json, TriXml.json, encoding_TriHtml.json, +4). Dropping their baseline lines is welcome in the same PR.

Scenarios

  1. Today: any PR built on master runs coverage and gets FAIL: 1 seal(s) newly do not hold.
  2. After the fix: the same check reports no newly failing seal.

Requirements

Criteria

  • t27c seal --verify specs/ml/train_hslm.t27 reports MATCH with master's t27c.
  • coverage is green on the PR, or red only for reasons master also has.

Requirements

FR-001: Re-save ml_train_hslm.json by running t27c seal --save specs/ml/train_hslm.t27 on the Railway lab using master's t27c.
FR-002: Confirm the gen-drift originates from #10812 (ae19b93) by comparing generated Rust for specs/ml/train_hslm.t27 before and after that commit.
FR-003: The new seal's gen_hash_rust MUST equal what master's t27c emits for specs/ml/train_hslm.t27.
FR-004: Do not edit specs/ml/train_hslm.t27 and do not add the seal to seal_baseline.txt.

Success Criteria

  • t27c seal --verify specs/ml/train_hslm.t27 reports MATCH with master's t27c (exit 0)
  • coverage check passes on the PR (exit 0) or fails only for reasons that also fail on master
  • 1 seal (ml_train_hslm.json) newly holds after the re-save
  • 9 baselined seals (TernaryShift.json, TriHtml.json, TriTerminal.json, TriXml.json, encoding_TriHtml.json, +4) can have their baseline lines dropped in the same PR

Activity

  1. gHashTag commented on Oct 19, 2026

    @gHashTag
    OwnerAuthor

    #10866 (train_hslm speed=3) re-saves .trinity/seals/ml_train_hslm.json with the current t27c. When it merges, the gen-drift seal behind the red coverage and spec-guards checks (gen_hash_rust sealed=bcfac5e60672 current=1deba0d9cb01) should hold again. I am not opening a second PR for the same seal. If #10866 is closed without merging, this issue's Boundary still applies.

  2. added
    shape-refusedClosed by the issue-shape gate (specs/policy/issue_shape.t27); a passing edit reopens it
    on Oct 19, 2026
  3. github-actions commented on Oct 19, 2026

    @github-actions
    Contributor

    Closed by the issue-shape gate (specs/policy/issue_shape.t27, #7498): an issue must have the template's sections. Edit the body; an edit that passes reopens it.

    • missing: ## Requirements -- numbered obligations, FR-001: ... MUST ...
    • missing: ## Success Criteria -- an outcome a machine can settle: a number with a unit, a backticked file, exit 0, or a backticked command
  4. removed
    shape-refusedClosed by the issue-shape gate (specs/policy/issue_shape.t27); a passing edit reopens it
    on Oct 19, 2026
  5. gHashTag commented on Oct 19, 2026

    @gHashTag
    OwnerAuthor

    Reopened by the self-heal of #11007. The issue-shape gate closed this issue with a queued run that judged an older body from its event payload; the current body passes gen/c/policy/issue_shape.c, and the gate's own contract is that a passing body stays open. If the work is in fact finished or obsolete, close it as completed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions