Repository navigation
Apply the site audit's own fixes, add the experiment ledger, and run the three checks in CI - #653
Merged
Merged
Conversation
anomaly-register A48: this project does not fail by missing things. Its site
audit, its claim-guard and its five-label framework all caught the same
overclaims, and every one failed at the step AFTER the finding -- the audit
was written, then deleted, and the numbers stayed six months.
So the three checks run on every PR touching apps/website:
typecheck:ratchet errors may fall, never rise. 184 today. `npm run build`
once claimed to typecheck, never ran in the deploy path,
and 231 errors accrued unseen -- among them seven React
branches that were statically false, so four panels
rendered nothing in production.
check:api a field the UI formats that no server emits, and any
fallback not tagged with sample().
check:render real Chrome over CDP, every panel on all nine canvas
layers, fails on the first uncaught error. vite build was
green through all of the above: it proves the bundler
succeeded, not that the page renders.
Two changes to render-check for CI: CHROME_PATH is consulted first so it can
override rather than only fill a gap, and Linux paths are added. A missing
browser now skips with exit 0 instead of failing -- a missing browser is a
fact about the environment, not a defect in the change, and a check that
fails for a reason it already knows about gets muted within a week.
Три проверки, которые существовали и не запускались, подключены к CI на
каждый PR, трогающий сайт.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
I committed the CI workflow in 729363d while this check was failing, and found out by running it afterwards rather than before. Recorded because that is the failure the workflow exists to prevent. Three compounding bugs, all in how the check reached a layer: 1. It pressed each digit up to four times if the DOM did not change. Layer 1 is 'petals', which is where /canvas already starts, so the press is a no-op and it pressed three more times -- each re-entering switchLayer, which holds a `transitioning` flag across a 200ms fade and returns early while set. Hammering left the flag stuck and every LATER layer silently refused to switch. Nine empty layers, twice in a row, from a page that was fine. 2. Walking 1..9 in sequence chains the switches, so one missed press shifts everything after it -- a run reported the tools panels on layer 8 rather than 7. Now Escape returns to petals before each layer, making every switch a single hop from a known state. 3. Even then, runs alternated between 4 panels and 0 on an unchanged build. Zero panels is the correct answer for most layers and a symptom on the one that has them, and a single attempt cannot tell those apart. Each layer that yields nothing now redoes the whole hop once before believing it. Four consecutive runs now find the same four panels on layer 7. The cost is about 50s per run, since every empty layer pays for its retry. No change is also what "already on this layer" looks like, and that is not a failure -- the check says so and moves on rather than retrying into the lock. Проверка рендеринга сообщала о собственном замке переходов, а не о странице. Три ошибки: повтор нажатий залипал на замке, последовательный обход сдвигал слои, одиночная попытка не отличала пустой слой от неуспевшего. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The workflow ran on PR #653 -- which is the point, since I committed it without checking -- and failed at the render step: Error: Chrome exited (null) before listening CI runs Chrome as root in a container with no user namespaces, so the sandbox cannot start and Chrome dies before printing a debugging port. The message reads like a broken check rather than a missing kernel feature, which is why it is worth a comment rather than just a flag. --no-sandbox and --disable-dev-shm-usage, on Linux only. Dropping the sandbox on a developer's own machine is a real cost for no benefit, and this check runs there far more often than it runs here. Local run still finds the same four panels. Проверка рендеринга не могла запустить Chrome на раннере: в контейнере без user namespaces песочница не стартует. Флаги добавлены только для Linux. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
Follows #648, #649, #651.
The audit's
Recommended Fixessection, applied six months latedocs/site_audit_report.mdends with before/after wording for each overclaim. It was written 2026-02-04, deleted 2026-03-06 in a commit about the Ralph Orchestrator, and never applied.Applied across 14 places in
en.jsonand the same inde,es,ru,zh. Compact tiles keep the bare number with a*; four sections render the audit's own footnote.It does not pick a number. The audit's
20× (verified)/500× (projected)pair would replace 578.8×, and choosing between them is a claim about hardware. Qualifying an unsourced figure is not sourcing it.37 documents git could not see
The
!docs/rule un-ignored the directory while*.mdmatched the files inside it. Behind it: 4,554 lines, including five research-paper directories (Hybrid, JEPAT, NCA, Ternary, VSA),docs/experiments/, a whitepaper, andFOUND_EXPERIMENTS_SUMMARY.md— 20 training experiments recovered from git history and then lost to git.Two results from it that are worth more than any efficiency multiplier, because a reader can argue with them:
All 115 markdown files under those trees pass
claim-guardclean.The three checks now run on every PR touching the site
typecheck:ratchetcheck:apicheck:renderAnd the render check was failing when I committed the workflow. Three bugs, all making it describe its own harness rather than the page — the retry hammered
switchLayer's transition lock until every later layer refused to switch. Fixed; four consecutive runs agree.🤖 Generated with Claude Code