fix(docs): a CLIENT subdomain literal is committed to this PUBLIC repo β resolve it through bar-url - #1410
fix(docs): a CLIENT subdomain literal is committed to this PUBLIC repo β resolve it through bar-url#1410ZacxDev wants to merge 1 commit into
Conversation
β¦o β resolve it through bar-url
`scripts/tests/test_no_client_hostnames.py::test_no_client_subdomain_literal_is_committed`
fails on main, on BOTH tiers:
claudedocs/handoff-civitai-app-fleet.md:204: h.civit.ai
| curl -sS -o /dev/null -w "$h %{http_code}\n" https://$h.civit.ai/
Added by 6d488a1 (#1402). CLAUDE.md: this repo is PUBLIC β never commit a real
third-party hostname used as an example. The apex is client topology.
The snippet is a live check the operator actually runs, so placeholdering it
would leave a command that goes nowhere. Per the guard's own guidance the VALUE
moves out of tracked source instead: `bar-url civitai_apps_apex` reads it from
~/.config/bar/urls.env (0600, untracked) β the same indirection the civitai bar
block already uses for its Grafana link, and for the same reason. An unset key
exits 3 naming the key and the file, so the loop cannot silently check nothing.
Verified red -> green with the control watched failing, same test, same
instrument:
origin/main @ 27d5028, unfixed : 1 failed, 17 passed
this branch : 18 passed
Scope checked, not assumed: the other tracked `civit.ai` occurrences are all
`<slug>.civit.ai` placeholders, which the guard tolerates by design. This
changes only the one literal it flags.
β This fixes it going FORWARD only. The literal remains in git history, and the
four content gates read `git ls-files` and are blind to history (SECRETS.md ->
"Dead credentials in reachable history"). Whether to rewrite is the operator's
call, not this PR's.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NNxEE4ktaHsXxNsxeWXWC5
Claude-Session-Id: 4b14058c-f3f5-4988-ae42-90910f7dbe43
Combined verification complete β and which rows are MEASURED vs DERIVEDThe body's last row said "(verifying)". It is now measured. Built Correcting the body's table β two of its rows were arithmetic, not measurements, and it did not say so:
The endpoints are measured and the arithmetic between them is consistent, but a derived number is a claim and should be labelled as one rather than sitting in a table that reads as five measurements. |
|
Obsolete β closing without merging.
Nothing to salvage: the β Two things this closure does not resolve, recorded so they are not lost:
|
Correcting my own closure commentI wrote that the doc "was fixed incidentally by an unrelated rewrite, not because anyone was chasing the guard." That is false, and I should have read their replacement before characterising it.
So they hit the same guard, diagnosed the same cause, and landed a fix while this PR was open β two sessions on one failure again, neither aware of the other. (I did take a This also retracts the second caveat in my closure comment. I said "nothing pinned this" and that the next doc pasting a live Their approach ( The history caveat is unaffected and still stands: the literal remains in |
The problem
mainfailsscripts/tests/test_no_client_hostnames.py::test_no_client_subdomain_literal_is_committed, on both tiers:Added by
6d488a1b(#1402).CLAUDE.md: this repo is PUBLIC β never commit a real third-party hostname used as an example. The apex is client topology.The fix
The snippet is a live check the operator actually runs, so placeholdering it would leave a command that goes nowhere. Per the guard's own guidance the value moves out of tracked source instead:
bar-urlreads~/.config/bar/urls.env(0600, untracked) β the same indirection thecivitaibar block already uses for its Grafana link, for exactly this reason (scripts/bar-url's own docstring cites the public-repo rule). An unset key exits 3 naming the key and the file, so the loop cannot silently check nothing.Verification β redβgreen, control watched failing
Same test, same instrument,
nix develop β¦ -c python3 -m pytest:origin/main@27d5028d, unfixedScope checked, not assumed. The other tracked
civit.aioccurrences are all<slug>.civit.aiplaceholders, which the guard tolerates by design. This changes only the one literal it flags βgit grepoutput reviewed rather than counted.β Forward-only
This fixes it going forward. The literal remains in git history, and all four content gates read
git ls-files, so they are blind to it (SECRETS.mdβ "Dead credentials in reachable history"). Whether to rewrite history on a public repo is the operator's call, not this PR's.Context β
mainis red for TWO independent reasonsThis is one of them. The other is #1407 (20 nebula tests failing on the sandbox tier,
/usr/bin/envabsent in the nix build sandbox). They are unrelated and neither fixes the other:main@27d5028dmain+ #1407main+ this PR