Skip to content

Extend boundary scan with history mode and five more credential markers - #8

Merged
Zacharon merged 1 commit into
mainfrom
claude/boundary-scan-history
Oct 19, 2026
Merged

Zacharon merged 1 commit into
mainfrom
claude/boundary-scan-history

Conversation

@Zacharon

Copy link
Copy Markdown
Owner

Requested by Zach · project thread

Before: the public boundary scan read only the current tracked files. On a seeded synthetic corpus it missed JWTs, sk_test_ keys, Azure storage AccountKey= values, credentials embedded in URLs and *_SECRET/*_TOKEN assignments (gitleaks caught 4 of these 5). A credential committed and later deleted passed CI, because the scan never looked at history.

After: the scan flags all 14 seeded cases (11 credentials, 3 private paths), and a new --history mode checks every file version reachable from the checked-out commit. CI runs both scans with a full-depth checkout. The scanner is still standard library only, so it adds no dependency or downloaded binary.

How: five new CONTENT_MARKERS entries and a widened assignment rule. scan_history() lists objects with git rev-list --objects HEAD and reads blobs in a single git cat-file --batch pass, scanning each blob once. Its result reports shallow so a partial clone isn't mistaken for a full audit. Two new regressions cover named assignments and a deleted secret in history, and placeholder URLs and ${VAR} values stay clean. docs/ADOPTING-AEOS.md now says nine tests, not seven.

Verified locally: 9/9 scanner regressions and 8/8 tests/ pass, and the tracked scan (264 files) and history scan (159 blobs) of this branch are clean. Windows package validation was not run locally.


Generated by Claude Code

The tracked-file scan missed JWTs, test payment keys, Azure storage keys,
credentials in URLs and *_SECRET/*_TOKEN assignments, and never looked at
history, so a credential committed then deleted passed CI. Add those markers,
a --history mode over every blob reachable from HEAD, a full-depth CI
checkout and two regressions (named assignments, deleted secret in history).
Still standard library only.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ARKFEnTCNfYUYyr8gCqdNZ
@Zacharon Zacharon self-assigned this Oct 19, 2026
@Zacharon
Zacharon marked this pull request as ready for review October 19, 2026 23:03
@Zacharon
Zacharon merged commit 22b50db into main Oct 19, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants