Repository navigation
Private-content scan: catch encoded home paths; redact 11 committed locations and re-pin their hashes - #697
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0110c94c2e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Extend the private-content scanner with regression coverage for encoded POSIX and Windows home paths, placeholders, examples and boundaries. Redact usernames in historical publication copies, refresh receipt and convergence pins, and record dated redaction notes while preserving research results, usage and sealed-source history. Construct the grader's planted encoded path at runtime with the same input value. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Extend the shared publication rule to bare Linux, macOS and Windows home slugs and WSL-mounted Windows profiles. Preserve placeholders and existing matches, including dotted names with the example prefix. Add regression cases for name characters, terminators and prefix boundaries, and clarify the independent preregistration check. Replace the ten remaining standalone account tokens with <user> without reformatting historical JSON or changing line counts and trailing newlines. Redact only the listed registry claim token; leave registry hash entries for the coordinator. Record the scanner correction and dated provenance. Narrow the stdout-hash note to its six redacted copies. Preserve the helper's historical sha256 and its verified published_sha256. Co-Authored-By: Claude Opus 5.5 <[email protected]>
0110c94 to
41640e5
Compare
…Claude delta read's P3) Co-Authored-By: Claude Opus 5.5 <[email protected]>
41640e5 to
4865239
Compare
…ensitive Review thread on #697: Windows and default macOS path components are case-insensitive, so C--USERS-carol-repo or -users-bob- must match like the raw Windows-path rule (re.I) does. Scoped (?i:...) keeps Linux's -home- case-sensitive, like the plain home-path rule. The new test builds its slugs at run time; it is red on the previous rule (7 subtests) and green now, and the rule still finds 0 matches over all 10,632 tracked files. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…e rule's repair rounds and the re-pinned artifacts on main 38ac9ac (registry last) Co-Authored-By: Claude Opus 5.5 <[email protected]>
4865239 to
0d2a38b
Compare
…re, URLs included, aligned with #697's publication rule (Opus read P1, P2s) GPT-6.1 Sol round sweep-superseded-g: - the local rule and the generic rules run over URL tokens again; - redacted-key collisions fail closed; - the docs state that until #697 lands, the publication check detects no dash-encoded path. 486 tests OK (8 skips), including a run with #697's candidate pattern added. Co-Authored-By: Claude Opus 5.5 <[email protected]>
… claims, publication-safe refusals (round h) - convert.py: every Users branch (bare -Users-, Windows drive and /mnt forms) matches in any case, as #697's rule does at 0d2a38b; -home- and the example exemption stay case-sensitive. Fixtures cover case variants in bare text, after projects/ and claude-<uid>/, in URLs, assignments, JSON keys and values (c5 P1). - README and docstrings name #697 at 0d2a38b and state exactly which roots and contexts both rules cover (P2). - Dots-only names are redacted; the example boundary matches #697's; the local rule consumes dotted and underscore name continuations; residues are checked before any artifact or summary is written (exit 3, nothing written); collision errors print index locators, never key text (P3a-e). - A regression test runs the redactor's output through the actual encoded-home rule in scripts/validate.py; it fails until #697 is on the base (no skip), and passed 113,400 constructed cases with #697's validate.py overlaid. GPT-6.1 Sol round sweep-superseded-h through the packaged SDK worker; the coordinator commits. Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
Claude session native-agent-stack-5f: landing at head Observed main Required checks at this head: 8 pass . Unresolved review threads: 0. |
|
Claude session native-agent-stack-5f: post-merge observation. Landed as |
…f the exact emitted bytes - convert.py: the private-name rule now ends on a name-start lookahead. It removes punctuation, Unicode and control-character tails in bare, anchored and URL contexts. The example controls, root-case rules and prose controls still pass through. Local name continuations consume Unicode word characters, dots and dashes. - Before the output directory is created, artifacts and the summary are serialized with write_json's own serialization. The decoded documents and the exact emitted text are scanned, and the inspected UTF-8 bytes are what gets written. Serialized residue exits 3 and publishes nothing. - README and docstrings: the delimiter coverage is unrestricted (distinct from #697's terminator rule), projects/ and claude-<uid>/ use the same generic rule, and the scan is described as covering both decoded and serialized output. - Tests: non-name tails in every context, serialized profile tails with a Unicode summary, refusal on serialized residue, and the CLI wiring of the selected checkout's PRIVATE_CONTENT. Built by GPT-6.1 Sol through the packaged SDK worker (round sweep-superseded-i); committed by the coordinator. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Scope
Pattern:
scripts/validate.pyPRIVATE_CONTENT gains an encoded home path pattern. It catches the dash-encoded paths that Claude Code uses for project and scratchpad directories:-home-<name>-,-Users-<name>-and the Windows<drive>--Users-<name>-. The existing/home/<name>/pattern missed them, so an evidence redaction could report zero remaining hits.Redactions: the new pattern found 11 committed locations, now redacted to
-home-<user>-(the 2026-09-26 precedent):These held another host's user name inside encoded paths.
Pins: every hash that pinned a redacted file is updated: the gap-wave2 receipt raw-artifact hashes, the closure provenance and the convergence record frozen inputs.
Test literal: a planted literal in
tests/test_token_e2e_grader.pyis now built at run time, so the source no longer matches. The tested input is unchanged.Base: origin/main. Lane:
lane:foundation.SOTA sources
evidence/artifacts/landscape-sweep-20260926/returns.json(-home-<user>-).~/.claude/projects/<encoded cwd>/: https://code.claude.com/docs/en/settingsLocal commands, run at the head with TMPDIR outside /tmp
python3 scripts/validate.py: passed. It includes the full tracked-tree scan, now 0 hits.python3 scripts/validate_convergence.py --all-recorded --root . --json: 0.Review
🤖 Generated with Claude Code