You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[workflow-audit] 3 unexplained change(s) on 2026-09-22 #751
3 unexplained commit(s) in the audit window (.github/workflows/ .config/tend.yaml .github/audit/ .vscode/) since 2026-09-21T14:00:40Z.
Routine Renovate pin bumps and reproducible tend regenerations are
classified and omitted — see the run summary for what was skipped.
Everything below needs a human to account for it.
dac9993 — Verify vendored pgstencil provenance and defer its code audit to pgstencil
All three commits are accounted for, and unlike yesterday's batch none of them is on main — each is the head or an ancestor of an open pull request, so nothing here has landed yet.
git merge-base --is-ancestor <sha> origin/main fails for all three. dac9993 shows up on two branches because #746 stacks on #745. Each carries a bot review on its head; none is a Renovate uses: pin bump and none reproduces from uvx tend init, so both classifiers were right to decline all three.
dac9993 is the one that narrows a check, and it says where the coverage went.application-security.md stops auditing the contents of the vendor/ tarballs and verifies the link instead: hash each archive against vendor/build.json, read the archive's own package/dist/provenance.json and check it names that commit and is not dirty, then confirm the commit is on diffplug/pgstencilmain and that its security-audit check run passed. The packed code is audited in diffplug/pgstencil against that repository's own SECURITY.md. The same commit also relaxes the domain's "no GitHub API access" rule to allow those two public-repo reads, with UNVERIFIABLE prescribed if the API is unreachable.
f1888e9 changes what a verdict means, which is worth a close read. It adds a preamble rule that a condition on state outside the repository — a provisioning step, a Cloudflare zone setting — is not an undetermined check but no check at all: verdict the in-repo half, record the external obligation as INFO. security-hosted.md moves the Cloudflare script-injection exclusion out of its FAIL IF and into the activation paragraph, and security-audit.md gains the rule for future authors. The trigger is #747: two consecutive nightlies read those two sentences opposite ways, and the second returned INCONCLUSIVE on a 375-PASS, 0-FAIL run, holding the release gate shut. The FAIL IF's actual condition — no marketing scripts, analytics, provider avatars, or remote fonts in the Hosted frontend — is unchanged and still determinable.
fc56b46 widens rather than drops. Hosted accounts become a fourth audit domain with its own prompt, fragment, and Opus subagent; PASS requires all four domains to pass, and AUDIT_FRAGMENTS, the redactor's argv, the reporting loop, and scripts/security-audit.test.mjs all move together. The stated reason is that application-security had overrun its 32-minute deadline more than once and took the Hosted results down with it.
This is provenance, not the accounting the issue asks for — a maintainer still owns confirming these are the changes they intended, and two of the three are still open for review.
Activity
dormouse-bot commentedon Sep 22, 2026
All three commits are accounted for, and unlike yesterday's batch none of them is on
main— each is the head or an ancestor of an open pull request, so nothing here has landed yet.dac9993pgstencil-provenancenedtwigg.github/audit/application-security.mdfc56b46hosted-audit-domainnedtwigg.github/audit/{application-security,hosted,orchestrator}.md,.github/workflows/security-audit.yamlf1888e9audit-external-obligationsdormouse-bot.github/audit/_preamble.mdgit merge-base --is-ancestor <sha> origin/mainfails for all three.dac9993shows up on two branches because #746 stacks on #745. Each carries a bot review on its head; none is a Renovateuses:pin bump and none reproduces fromuvx tend init, so both classifiers were right to decline all three.dac9993is the one that narrows a check, and it says where the coverage went.application-security.mdstops auditing the contents of thevendor/tarballs and verifies the link instead: hash each archive againstvendor/build.json, read the archive's ownpackage/dist/provenance.jsonand check it names that commit and is notdirty, then confirm the commit is ondiffplug/pgstencilmainand that itssecurity-auditcheck run passed. The packed code is audited indiffplug/pgstencilagainst that repository's ownSECURITY.md. The same commit also relaxes the domain's "no GitHub API access" rule to allow those two public-repo reads, withUNVERIFIABLEprescribed if the API is unreachable.f1888e9changes what a verdict means, which is worth a close read. It adds a preamble rule that a condition on state outside the repository — a provisioning step, a Cloudflare zone setting — is not an undetermined check but no check at all: verdict the in-repo half, record the external obligation as INFO.security-hosted.mdmoves the Cloudflare script-injection exclusion out of itsFAIL IFand into the activation paragraph, andsecurity-audit.mdgains the rule for future authors. The trigger is #747: two consecutive nightlies read those two sentences opposite ways, and the second returned INCONCLUSIVE on a 375-PASS, 0-FAIL run, holding the release gate shut. TheFAIL IF's actual condition — no marketing scripts, analytics, provider avatars, or remote fonts in the Hosted frontend — is unchanged and still determinable.fc56b46widens rather than drops. Hosted accounts become a fourth audit domain with its own prompt, fragment, and Opus subagent;PASS requires all four domains to pass, andAUDIT_FRAGMENTS, the redactor's argv, the reporting loop, andscripts/security-audit.test.mjsall move together. The stated reason is thatapplication-securityhad overrun its 32-minute deadline more than once and took the Hosted results down with it.This is provenance, not the accounting the issue asks for — a maintainer still owns confirming these are the changes they intended, and two of the three are still open for review.