Skip to content

Promote the Browser Check's URL Lists and the snake_case Python Names to Main - #541

Merged
ptr727 merged 2 commits into
mainfrom
develop
Oct 26, 2026
Merged

ptr727 merged 2 commits into
mainfrom
develop

Conversation

@ptr727

@ptr727 ptr727 commented Oct 26, 2026

Copy link
Copy Markdown
Owner

Summary

This promotes develop to main:

  • Load the Search Page Only on a Run Over the Default List #536 makes the CSP browser check load /search/ only on a run over the default list. A run given another list with --urls, such as the family site's pages, loads only that list's pages, and a list naming no page is a usage error.
  • Rename Every Python File to the Fleet's snake_case Names #537 renames every Python file to the fleet's snake_case names, so a sibling imports by name and no by-path loader is left. A gate takes the _gate suffix, so checks/check-csp.py becomes checks/csp_gate.py. Every reference in the workflows, deploy/make-release.sh, the VS Code tasks, and the docs follows.

Nothing the server sends changes. The pages, the headers, and the Caddyfile are the same, so a release is enough and no deploy is owed. deploy/make-release.sh was run against the local staging mirror from develop at 9bd721a. Both build gates passed under their new names, and the live URL check passed 1296 URLs.

Closes #532
Closes #535

🤖 Generated with Claude Code

ptr727 and others added 2 commits October 25, 2026 17:23
* Load the Search Page Only on a Run Over the Default List

A run given another list with --urls, such as the family site's pages,
no longer adds /search/, so it passes on its own pages. A list that
wants the search page names it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Say in --help That Another List Names the Search Page

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Refuse a URL List That Names No Page

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Load Every Hyphenated Sibling Check From One Shared Helper

checks/sibling.py holds the one loader. The three helper copies in
check-csp.py, fuzz-media-parsers.py, and test_check_media_metadata.py,
and the four inline copies at the top of the other check tests, now
call it by name.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Say Which Scripts Cannot Import the Sibling Loader

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Rename Every Python File to the Fleet's snake_case Names

A hyphenated module cannot be named in an import, which is why the
tooling needed a by-path loader at all. Every .py under checks/,
scripts/, and capture/ now takes a snake_case name, and a gate takes
the _gate suffix, so siblings import by name and checks/sibling.py
goes. A test puts its directory on sys.path and imports the module,
the way the hub's tests do, so running a test file directly works
again. Each directory's mypy config ignores the one module it imports
from the other declared directory.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Give the checks/ mypy Override Its Real Reason

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings October 26, 2026 00:52
@coderabbitai

coderabbitai Bot commented Oct 26, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: c7297038-3d93-488b-9770-e2533b2690b2
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Oct 26, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 94.11765% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 54.07%. Comparing base (aa0af50) to head (9bd721a).
⚠️ Report is 152 commits behind head on main.

Files with missing lines Patch % Lines
checks/csp_gate.py 50.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #541      +/-   ##
==========================================
+ Coverage   53.24%   54.07%   +0.82%     
==========================================
  Files          12       12              
  Lines        3418     3390      -28     
==========================================
+ Hits         1820     1833      +13     
+ Misses       1598     1557      -41     
Flag Coverage Δ
python-3.13 54.07% <94.11%> (+0.82%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The URL parity gate mishandles srcset candidates, and multiple path-bootstrap imports fail the configured Ruff E402 checks.

2 open issues
What changed in this PR

This pull request promotes the browser CSP URL-list behavior and repository-wide Python filename migration from develop to main, updating imports, tests, workflows, release tooling, and documentation.

Changes:

  • Makes /search/ conditional on the selected browser-check URL list and rejects empty custom lists.
  • Renames Python gates, scripts, capture tools, and tests to snake_case with updated imports.
  • Updates validation workflows, release commands, editor tasks, configuration, and documentation.
File Description
themes/​README.md Updates the CSP gate reference.
sites/​viljoen.family/​README.md Updates the media metadata gate reference.
scripts/​tests/​test_redact_media.py Imports the renamed redaction script.
scripts/​tests/​test_normalize_text.py Imports the renamed text normalizer.
scripts/​redact_media.py Updates renamed script and gate imports.
scripts/​pyproject.toml Configures cross-directory mypy overrides.
scripts/​normalize_text.py Adds the snake_case text normalizer.
scripts/​normalize_media.py Updates the media gate import and documentation.
README.md Updates gate, normalizer, and verification references.
OPERATIONS.md Updates operational commands and browser-list behavior.
GOVERNANCE.md Updates the archive normalizer reference.
ENVIRONMENT.md Updates environment and capture-tool references.
deploy/​README.md Updates deployment tooling and gate references.
deploy/​make-release.sh Runs the renamed release gates.
CONTENT.md Updates content verification references.
checks/​url_parity_gate.py Adds the snake_case URL parity gate.
checks/​text_pii_gate.py Adds the snake_case personal-data gate.
checks/​tests/​test_text_pii_gate.py Imports the renamed text gate.
checks/​tests/​test_media_metadata_gate.py Updates renamed media-tool imports.
checks/​tests/​test_github_env_gate.py Imports the renamed GitHub environment gate.
checks/​tests/​test_csp_gate.py Imports the renamed CSP gate.
checks/​tests/​test_csp_browser_gate.py Tests custom URL-list behavior and empty-list validation.
checks/​README.md Updates the gate inventory and references.
checks/​pyproject.toml Configures cross-directory imports for mypy.
checks/​media_redactions_gate.py Updates the normalizer reference.
checks/​media_parser_fuzz_gate.py Uses renamed media modules.
checks/​media_metadata_gate.py Updates normalizer references.
checks/​github_env_gate.py Adds the renamed GitHub environment gate.
checks/​env_docs_gate.py Adds the renamed environment documentation gate.
checks/​csp_gate.py Imports URL-origin logic from the renamed parity gate.
checks/​csp_browser_gate.py Implements per-list search-page behavior and empty-list errors.
capture/​run-wp2hugo.sh Calls the renamed redirect generator.
capture/​restructure_content.py Updates redirect-generator references.
capture/​README.md Updates capture-tool names and commands.
capture/​localize_external.py Updates redirect-generator references.
capture/​enumerate_media.py Adds the snake_case media enumerator.
capture/​clean_content.py Updates capture-tool references.
capture/​build_redirects.py Adds the snake_case redirect generator.
capture/​build_golden.py Adds the snake_case golden-list generator.
AUDIT.md Updates audit commands for renamed gates.
.vscode/​tasks.json Updates editor task commands.
.secrets/​example.env Updates gate and capture-tool references.
.github/​actions/​validate/​action.yml Runs the renamed validation gates.
.editorconfig Updates the redirect-map generator reference.

Review effort: Lite

Comment thread scripts/tests/test_normalize_text.py
Comment thread scripts/tests/test_redact_media.py
@ptr727
ptr727 merged commit f937194 into main Oct 26, 2026
13 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.

Leave /search/ Out of a Browser Check Run Over Another URL List Load a Hyphenated Sibling Check From One Shared Helper

2 participants