Repository navigation
Fingerprint the reviewed narrative commit ids the merge-commit history scan now reaches - #1072
Merged
seathatflowsinourveins merged 3 commits intoOct 13, 2026
Conversation
…y scan now reaches The CI history scan has read merge commits as first-parent diffs since the 2026-10-09 out-of-memory fix, so the validate.yml run of 2026-10-13 found the same 14 reviewed narrative lines of the blind-catalog-convergence evidence again in the two merge commits that brought them into main (9b7a67b and 5cfed34): 30 findings, 28 fingerprints, all rule sourcegraph-access-token. .gitleaksignore already fingerprints those lines for 6568523; the 2026-09-22 generation used --log-opts=HEAD and did not reach the merge commits. Each value was checked shape-only and never printed: 40-character lower-case hex git object ids with no sgp_ prefix; eight resolve as commits in local mirrors of the upstream repositories the text names, and two as commits of the GitHub repositories named in this repository's own blob/ and tree/ links to them. The command center confirmed each fingerprint from that value-free table. The full-history scan with the CI's options now reports no leaks. Co-Authored-By: Claude Opus 5.5 <[email protected]>
The local codex review of #1072 at d8f097e (P2): no test exercised the new fingerprints, so removing or mistyping one would pass every existing check while the full-history gate failed again. GitleaksMergeCommitFingerprintTests: - scans each merge commit alone, as its first-parent diff (`<commit>^!`, the CI's --diff-merges=first-parent), with .gitleaksignore, and requires no finding: bounded to two commits, redacted, skipped when gitleaks or the commits are absent; - checks, without a scanner, that every reviewed narrative line is fingerprinted for both merge commits. The test names the commits by 8-character prefixes resolved with git at run time: a full 40-hex id in the file would itself match the sourcegraph-access-token rule (the pre-commit hook caught that on the first attempt). With main's .gitleaksignore the scan test reports the 30 findings and the structural test the 28 missing entries; with this change both pass. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…ngerprints The local codex review of #1072 at 6fd00ad (P2): the explanation cited repository comments and local scans, not the upstream source that builds these fingerprints and matches the ignore file. .gitleaksignore's 2026-10-13 comment now cites gitleaks/[email protected] (commit 83d9cd68, the CI's pinned version): AddFinding builds a git finding's `commit:file:rule-id:start-line` fingerprint and skips it when that fingerprint or the commit-less `file:rule-id:start-line` is in the ignore set (detect/detect.go:711-733); AddGitleaksIgnore loads the set from this file, skipping blank and `#` lines (detect/detect.go:153-193); the file is read from the -i/--gitleaks-ignore-path directory, "." by default, and from the scanned source's root (cmd/root.go:90, :311-318). Co-Authored-By: Claude Opus 5.5 <[email protected]>
seathatflowsinourveins
marked this pull request as ready for review
October 13, 2026 13:47
seathatflowsinourveins
deleted the
claude/api-actions-history-secret-fingerprints-20261013
branch
October 13, 2026 13:49
Merged
5 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope
commit:path:rule:linefingerprints to.gitleaksignorefor the reviewed narrative commit ids of the blind-catalog-convergence evidence. The CI history scan has read merge commits as first-parent diffs since the 2026-10-09 out-of-memory fix, so it now finds them again in the two merge commits that brought them into main.3f1a921d(main).lane:foundation.gitleaksignore(28 fingerprints under a dated comment);tests/test_gitleaks_config.py(GitleaksMergeCommitFingerprintTests, round 1);manifests/evidence.json(re-registration).d8f097ec(the fingerprints),6fd00ad1(round 1, the regression) andefb3158f(round 2, the pinned upstream citation).What the scan found. The
validate.ymlrun of 2026-10-13 (run 38372534999,workflow_dispatch, full history) reported 30 findings, all rulesourcegraph-access-token. The findings:9b7a67b9("Integrate PRs Finalize portable grand catalog with independent Codex and Claude convergence #55-SOTA repository convergence 2026-09-22: per-layer list, manifest, newcomer dispositions, engine reconciliation #58 into one grand-catalog base") and5cfed346("Merge PR Finalize portable grand catalog with independent Codex and Claude convergence #55 ... into the grand-catalog base");evidence/artifacts/blind-catalog-convergence-20260921/claude-coverage-review.jsonandscreening-ledger.json;.gitleaksignorealready fingerprints for6568523f. The 2026-09-22 generation of that list used--log-opts=HEAD, and only the first-parent merge diffs reach these commits.There are 28 distinct fingerprints: two findings share line 424 in each commit. No open PR's commits are involved.
How each was checked (shape only). The command center routed this to a Claude session with a value-free procedure. No matched value, or any character of one, is in this PR, its commit message or any record.
fb968affwith the CI's command (gitleaks 8.30.1,--config .gitleaks.toml --log-opts="--diff-merges=first-parent HEAD" --redact): the same 30 findings.sgp_prefix, the shape of a git object id. There are 10 distinct values.git cat-file -tas commit objects in local mirrors of the upstream repositories the text names:QuantConnect/Lean,alpacahq/alpaca-skills,alpacahq/cli,grafana/grafana,grafana/loki,microsoft/playwright,prometheus/prometheus,skfolio/skfolio.blob/<sha>/andtree/<sha>/links and insource_commit,source_pinandpin_of_recordfields.nkaz001/hftbacktestfor 8 findings andggml-org/llama.cppfor 4.9b7a67b9:claude-coverage-review.json:sourcegraph-access-token:338commitnkaz001/hftbacktest(GitHub API), the repository its own blob/tree links name9b7a67b9:claude-coverage-review.json:sourcegraph-access-token:424lokigrafana/lokimirror9b7a67b9:claude-coverage-review.json:sourcegraph-access-token:424grafanagrafana/grafanamirror9b7a67b9:claude-coverage-review.json:sourcegraph-access-token:462pinQuantConnect/Leanmirror9b7a67b9:claude-coverage-review.json:sourcegraph-access-token:468source_commitnkaz001/hftbacktest(GitHub API), the repository its own blob/tree links name9b7a67b9:claude-coverage-review.json:sourcegraph-access-token:525pinnkaz001/hftbacktest(GitHub API), the repository its own blob/tree links name9b7a67b9:claude-coverage-review.json:sourcegraph-access-token:682sourceskfolio/skfoliomirror9b7a67b9:claude-coverage-review.json:sourcegraph-access-token:1439treealpacahq/alpaca-skillsmirror9b7a67b9:claude-coverage-review.json:sourcegraph-access-token:1445treealpacahq/climirror9b7a67b9:claude-coverage-review.json:sourcegraph-access-token:2567source_pinmicrosoft/playwrightmirror9b7a67b9:claude-coverage-review.json:sourcegraph-access-token:2915fromggml-org/llama.cpp(GitHub API), the repository its own blob/tree links name9b7a67b9:claude-coverage-review.json:sourcegraph-access-token:2950catalogprometheus/prometheusmirror5cfed346:claude-coverage-review.json:sourcegraph-access-token:338commitnkaz001/hftbacktest(GitHub API), the repository its own blob/tree links name5cfed346:claude-coverage-review.json:sourcegraph-access-token:424lokigrafana/lokimirror5cfed346:claude-coverage-review.json:sourcegraph-access-token:424grafanagrafana/grafanamirror5cfed346:claude-coverage-review.json:sourcegraph-access-token:462pinQuantConnect/Leanmirror5cfed346:claude-coverage-review.json:sourcegraph-access-token:468source_commitnkaz001/hftbacktest(GitHub API), the repository its own blob/tree links name5cfed346:claude-coverage-review.json:sourcegraph-access-token:525pinnkaz001/hftbacktest(GitHub API), the repository its own blob/tree links name5cfed346:claude-coverage-review.json:sourcegraph-access-token:682sourceskfolio/skfoliomirror5cfed346:claude-coverage-review.json:sourcegraph-access-token:1439treealpacahq/alpaca-skillsmirror5cfed346:claude-coverage-review.json:sourcegraph-access-token:1445treealpacahq/climirror5cfed346:claude-coverage-review.json:sourcegraph-access-token:2567source_pinmicrosoft/playwrightmirror5cfed346:claude-coverage-review.json:sourcegraph-access-token:2915fromggml-org/llama.cpp(GitHub API), the repository its own blob/tree links name5cfed346:claude-coverage-review.json:sourcegraph-access-token:2950catalogprometheus/prometheusmirror9b7a67b9:screening-ledger.json:sourcegraph-access-token:9360pinnkaz001/hftbacktest(GitHub API), the repository its own blob/tree links name9b7a67b9:screening-ledger.json:sourcegraph-access-token:10815fromggml-org/llama.cpp(GitHub API), the repository its own blob/tree links name9b7a67b9:screening-ledger.json:sourcegraph-access-token:10890catalogprometheus/prometheusmirror5cfed346:screening-ledger.json:sourcegraph-access-token:9360pinnkaz001/hftbacktest(GitHub API), the repository its own blob/tree links name5cfed346:screening-ledger.json:sourcegraph-access-token:10815fromggml-org/llama.cpp(GitHub API), the repository its own blob/tree links name5cfed346:screening-ledger.json:sourcegraph-access-token:10890catalogprometheus/prometheusmirrorRound 1 (
6fd00ad1). The local codex review atd8f097ec(a review record cited by name) asked for one thing (P2): a regression that fails without these fingerprints and passes with them.GitleaksMergeCommitFingerprintTestsadds two tests:<commit>^!, the CI's--diff-merges=first-parent), with.gitleaksignore, and requires no finding..gitleaksignorethe scan test reports the 30 findings and the structural test the 28 missing entries. With this change both pass.Round 2 (
efb3158f). The local codex review at6fd00ad1(a review record cited by name) asked for one thing (P2): cite the pinned upstream source for how these fingerprints are built and matched. The citation is now in the.gitleaksignorecomment and in SOTA sources below. Only an 8-character commit prefix is written there, since a full 40-hex id in that file would match the rule. Astra's delta read at6fd00ad1(ACK, no blockers) reached the same mechanism locators.Follow-ups (not in this change):
6fd00ad1(P3):nkaz001/hftbacktest,ggml-org/llama.cpp) are in no local mirror, and no pinned capture of those lookups is attached. Adding the two repositories to the mirror set would make the check reproducible offline.GitleaksMergeCommitFingerprintTestsdiscards the descriptortempfile.mkstempreturns and only unlinks the path, as the neighbouring history tests do. Closing it, or usingNamedTemporaryFile, belongs in a cleanup of that pattern across the module.manifests/evidence.json; none is added here..gitleaksignore's 2026-09-22 header describes a--log-opts=HEADgeneration. A note on how first-parent merge diffs reach older reviewed lines, or a regeneration helper, would make the next such case mechanical.secret-scan-betterleaksjob of the same run reported 1,695 findings. That job does not fail CI, and those findings are outside this task.SOTA sources
83d9cd68(the CI's pinned version, and the installed client; read from the local mirror at that tag):detect/detect.go:711-733:AddFindingbuilds a git finding's fingerprint ascommit:file:rule-id:start-line. It skips the finding when that fingerprint, or the commit-lessfile:rule-id:start-line, is in the ignore set.detect/detect.go:153-193:AddGitleaksIgnoreloads the set from the file, skipping blank and#lines and normalizing the path part.cmd/root.go:90and:311-318: the file is read from the-i/--gitleaks-ignore-pathdirectory (.by default) and from the scanned source's root..gitleaksignore's 2026-10-13 comment carries the same citation (round 2)..github/workflows/validate.ymlat the base:gitleaks git . --config .gitleaks.toml --log-opts="--diff-merges=first-parent HEAD" --redact.Evidence-class table
local_integrationgitleaks gitcommand atfb968aff:leaks found: 30; on this branch:no leaks found(rc 0)local_integrationgitleaks dir . --config .gitleaks.toml --redact:no leaks foundlocal_integrationgit cat-file -tin local upstream mirrors (8 values);gh api repos/<owner>/<repo>/commits/<value>for the 2 others; results only, no valueslocal_integrationpython3 scripts/validate.pyandevidence_manifest.py --check(below)Local commands run
Decision record
None: this applies the rule in
.gitleaksignore's own header (a fingerprint for each reviewed false positive). The command center's confirmation of 2026-10-13 is its private record, cited by name.Host evidence
Not applicable (no
evidence/hosts/change).Checklist
version comment (no floating tags). (none changed)
permissions: {}and grant each jobonly what it needs (
contents: read, or an explicitly justified addition). (none changed)added without a documented owner.
moved or overwritten).
🤖 Generated with Claude Code