Maintainer ruling, 2026-10-04: the shell verification script must fail a package whose timestamp entry carries a token that is present but is not text, the same way the in-app package verification does. The two verifiers must not disagree on such a package. The maintainer also called this evidence-affecting.
Acceptance criteria, verification and starting files
Acceptance criteria
verify.shexits non-zero and names the malformed entry when a manifest entry of typetimestamphas atsaTokenthat is present and not a string. It no longer treats that entry as "no trusted-time claim".- The command
VERIFY.mdprints for step 6b behaves the same way, or says that the script performs this check. - A content timestamp entry with no
tsaTokenat all keeps today's behaviour. tests/helpers/verifyConformance.tsgains a row for the non-string token, naming the verdict each verifier must report, and both verifiers agree on it.- The PR states that
verify.shandVERIFY.mdbytes change for newly exported packages and that packages already exported keep theirs.
Verification path
pnpm preflight, and BIRDBRAIN_REQUIRE_OPENSSL=1 pnpm test tests/main/services/verifyRunbookExecution.test.ts tests/main/services/verifyScriptTokenFilter.test.ts.
Starting files
src/main/services/verifyProcedure.ts (signedTokenFilter, :80), src/main/services/verifyScript.ts (:664 and the trusted-time block after it), src/main/services/verifyRunbook.ts (:349), src/shared/schemas.ts (:557), tests/helpers/verifyConformance.ts, tests/main/services/verifyScriptTokenFilter.test.ts.
Evidence-affecting: yes, by the maintainer's call on 2026-10-04.