Skip to content

Bind Phase 3 golden fixtures to immutable model, generator, and output hashes #11

Description

@forkwright

Finding

The Phase 3 golden provenance records a mutable local model path, package versions, dimensions, and only the input-text hash. It does not identify or hash the base checkpoint, tokenizer, dense head, generator source/commit, monkey-patched reference behavior, token output, embedding output, or baseline. The normal fixture check validates shape and counts but does not recompute even the recorded input hash.

The ignored parity test therefore compares whatever currently occupies /models/stella-1.5b-v5 against an unbound committed artifact; neither success nor failure establishes which model and generator produced the reference.

Evidence

  • phases/03-stella/golden/generate.py:34-53,56-59 changes reference behavior with a runtime monkey patch and selects a mutable absolute model path.
  • phases/03-stella/golden/generate.py:111-138 writes outputs, then records only package versions, shape, path, and inputs_sha256.
  • phases/03-stella/golden/PROVENANCE.json:1-10 contains no immutable model or artifact identity.
  • crates/logismos/tests/phase_3_fixture_check.rs:45-152 checks existence, text/shape/count/dimension, but does not verify input, model, generator, token, embedding, or baseline hashes.
  • crates/logismos/tests/phase_3_stella_parity.rs:21-34,60-105 is ignored by default and loads the mutable absolute model path.

Why this matters

Golden fixtures are truth anchors for implementation parity. Without a replayable provenance chain, regenerated, replaced, or accidentally mixed artifacts can redefine “correct” silently, and future investigators cannot distinguish model drift from implementation drift.

Desired correction

Generate a machine-readable manifest that binds immutable model-repository revision plus hashes for every checkpoint/tokenizer/head file, the generator commit or source hash, all behavior-changing parameters/patches, dependency lock/environment, input corpus, and every output artifact. Have the normal gate recompute all local hashes and reject any mismatch. Make the heavyweight parity runner verify the installed model against the same manifest before comparing values, and derive human-readable provenance from this record.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions