fix(ci): unblock antipattern + delete duplicated TS check#47
Merged
Conversation
…ource Two related fixes for CI checks that have been red on main for weeks (precursor to merging #46 — both unrelated to that port but blocking its clean merge). 1. .github/workflows/rsr-antipattern.yml — the "Check for TypeScript" step had two PYEOF tokens in succession but only one opening `python3 << 'PYEOF'`, leaving the second Python block dangling as bash commands. Bash interpreted `BUILTIN_GLOBS = [...]` as a command and exited 127. The first Python block already does the full TypeScript exemption check (universal allowlist + parsed .claude/CLAUDE.md table), so the duplicated second block is removed. No behaviour change beyond the workflow running to completion. 2. .github/workflows/language-policy.yml — the "Check for TypeScript files" step duplicated the rsr-antipattern check but with no allowlist beyond node_modules + *.d.ts, false-positiving on legitimate bridge files (e.g. lol/test/vitest.config.ts which lives under the *vscode*-or-tests/ universal allowlist that rsr-antipattern honours). The duplicate step is removed; the other language checks (ReScript, Go, Python, V-lang, ATS2, Java/Kotlin, Swift, Flutter/Dart, Makefiles, package.json runtime deps) all stay — they remain the single source of truth for those languages. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
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.
Summary
Two related CI fixes — both unblocking workflows that have been red on
mainfor weeks.1.
.github/workflows/rsr-antipattern.yml— heredoc syntax bugThe "Check for TypeScript" step had two
PYEOFtokens in succession but only one openingpython3 << 'PYEOF', leaving the second Python block dangling as bash commands. Bash sawBUILTIN_GLOBS = [...]as a command and exited 127. Every commit tomainsince the check was added has hit this. Same bug was inhyperpolymath/my-lang(see hyperpolymath/my-lang#13).The first Python block already does the full TypeScript exemption check honouring the universal allowlist and the parsed
.claude/CLAUDE.mdtable. The duplicated second block is removed.2.
.github/workflows/language-policy.yml— duplicate TS check with no allowlistThe "Check for TypeScript files" step did a blunt
find . -name "*.ts"filter with no allowlist beyondnode_modulesand*.d.ts. False-positived on legitimate bridge files likelol/test/vitest.config.ts, which lives under the**/test/**universal-allowlist pattern thatrsr-antipattern.ymlhonours.Two checks for the same banned-language family is also a single-source-of-truth violation. This PR removes the duplicate from
language-policy.yml;rsr-antipattern.ymlremains the canonical TypeScript-detection check. All otherlanguage-policy.ymlsteps (ReScript, Go, Python, V-lang, ATS2, Java/Kotlin, Swift, Flutter/Dart, Makefiles, package.json runtime deps) stay — they remain the single source of truth for those languages.What this PR fixes vs. what stays red
Fixed by this PR:
antipattern-checkno longer exits 127 on the heredoc syntax bug. It now runs to completion.Check for Banned Languages / Check for TypeScript filesno longer false-positives onlol/test/vitest.config.ts.Surfaces real pre-existing migration debt (out of scope for this PR):
antipattern-check / Check for ReScriptflags ~30 real.resfiles underrhodium-standard-repositories/satellites/{consent-aware-http,cccp/.../7-tentacles}/. These were previously hidden behind the heredoc crash — the check never reached this step before. The fix here unblocks the workflow's ability to surface them; the actual migration is its own multi-PR effort.Check for Banned Languages / Check for ReScript files(inlanguage-policy.yml) also flags the same.resfiles. Same observation.Hypatia Neurosymbolic Analysis (Dogfooding)—hypatia-cli.sh scan .exits 1 with no diagnostic across multiple repos. Filed at hyperpolymath/hypatia#213.So this PR doesn't turn the standards CI fully green — that would need the ReScript migration and the Hypatia scanner fix. But it does:
Why now
Both bugs surfaced while merging the affinescript#64 port work in #46. Pre-existing — unrelated to that port — but kept its merge state at
BLOCKEDuntil force-merged with--admin. Fixing now so future port PRs have less friction.Test plan
antipattern-checkrunning to completion (not exit 127).Check for Banned Languages / Check for TypeScript filesstep passes (no spurious vitest.config.ts hit).🤖 Generated with Claude Code