Skip to content

CI verify fails for receipt-mode range trailers (passHash ≠ merge-base..HEAD) #8

Closed

Description

@chtnnh

Problem

PR CI (know-code verify) fails after a normal range quiz → know-code commit → push, while local verify passes.

Root cause: pass-time range hash included staged: material; after commit CI only has merge-base..HEAD (no gitignored range-seal.json / gate.json). Local green path used range-seal-pass. Default pull_request checkout is also a merge commit without trailers.

Seen on #7: expected 104454c6… (merge-base..HEAD), trailer was passHash 4a6e5b6a….

Fix

  1. Tree-canonical range hash: fromOid^{tree} → write-tree (stable staged↔committed)
  2. Workflow: checkout pull_request.head.sha, write requireTrailer: true
  3. scripts/smoke-verify-ci.sh — e2e without local seal artifacts
  4. Docs: website/docs/verify.md

Acceptance

  • npm run smoke:verify green (strip .know-code seals after commit, then verify)
  • Unit tests for staged→committed hash stability
  • Dogfood PR itself goes green on the know-code check without relying on local seal files

Related: #6 / #7 (Actions bumps). Threat model: CI proves trailer↔tree match only — not comprehension.

Activity

  1. added this to the 0.3.1 milestone on Aug 13, 2026
  2. self-assigned this
    on Aug 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions