Repository navigation
Output files get ordinary modes; CSV escapes line-feed cells; canary fails on a block - #11
Merged
Merged
Conversation
…fails on a block - output_writer: new files get 0o666 under the umask, existing files keep their mode (they were always 0600). Atomic replace unchanged. - CSV guard escapes a leading LF; the sidecar records csv_cells_escaped. - ci_checks: a tree git cannot list is scanned from disk, and a scan that read 0 files fails instead of reporting ok. - audit.yml: ignore two urllib3 1.x advisories fixed only in 2.8.0, which pyppeteer's urllib3<2 pin rules out; README counts seven. - canary: exit 3 fails the job with or without the proxy secret. - Comments and the 0.2.1 changelog line no longer cite private maintainer notes; a suite check guards it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jehrr
marked this pull request as ready for review
October 15, 2026 13:03
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.
Problems (audit of 2026-10-14, at 3fc2346 = current main)
_atomic_writeusedmkstemp(0600) thenos.replace, so every JSON/CSV/sidecar was 0600 under umask 022, 002 and 077, and an existing 0664 file was narrowed to 0600.csv_cells_escaped..git(e.g.git archiveextracted),git ls-filesfailed silently and the scan printedok 0 files scanned, rc 0, with a planted 32-hex key present.::notice::.Resulting behaviour
0o666 & ~umask(umask read from/proc/self/status, falling back to a lockedos.umaskround-trip); an existing file keeps its mode. The atomic write itself is unchanged.\nadded to the formula-lead set.write_csvreturns the escaped count;finish_runrecordscsv_cells_escapedin the sidecar (null when no CSV is written). JSON is unchanged, numbers are untouched.ci_checks.py: when git cannot list the tree, it walks the disk (paths judged relative to the repo, caches and virtualenvs skipped) and says so. A scan that read 0 files now fails.audit.yml: both IDs are ignored by ID for the pyppeteer lock only. On osv.dev both are fixed only in urllib3 2.8.0, and pyppeteer 2.0.0 (latest on PyPI) requiresurllib3<2, so no compatible pin exists. README now says seven advisories.§Nin shipped files. The tokens are assembled from pieces, so the check does not match itself.::error::+ red, with or withoutSCREENER_PROXY. Exits 4/5/6 were already red, and the parser thresholds (≥20 rows, ranks, INR, market cap) are unchanged. A suite check asserts that no branch of the exit-code step ends green.proxy_pool.pydocstring no longer names another repo as provenance.Evidence
ci_checks.py --allexits 0.PYTHONDONTWRITEBYTECODE=1,__pycache__removed per run). Each planted fault turned the suite red on the named check:chmod:write_* creates a file 0o644 under umask 0o22and the keep-0664 checks;0o644:… 0o664 under umask 0o2;\nfrom the lead set:a cell led by a line feed is neutralised;the sidecar records csv_cells_escaped;outside a git checkout … catches a planted key;a scan that read 0 files fails;proxy_pool.py:no shipped file cites private maintainer notes;exit 0in the canary's exit-3 branch:the canary turns no exit code but 0 into a green run.git archivetree: clean gives52 files scanned, rc 0; a planted key gives FAILED, rc 1.pip-auditrun locally on all five locks with the new ignore list: no known vulnerabilities.engine-smokeruns each engine's suite.Not changed
--fingerprint/--concurrencywarn rather than refuse in the Selenium and pyppeteer engines (documented).--locale/--modeare absent. The 3.13/3.14 matrix is unchanged. All of these are owner decisions.pip-auditcheck it inherits should go green once this lands.🤖 Generated with Claude Code