Repository navigation
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013Z8iBUNj6C627mxmm1CurV
This was referenced Nov 4, 2026
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
Adds GitHub Actions checks that run on every pull request (whatever branch it targets, so stacked PRs are checked too) and on every push to
master. The app itself doesn't change.node --checkon everyjs/*.jsand the inline<script>inindex.html<script>withintegrityhascrossorigin, and its hash matches what the CDN serves todaycrossoriginis missing, or the CDN can't be reachedScripts without
integrity(Chart.js, PapaParse, Day.js onmastertoday) are a warning, not a failure. #22 adds SRI to all of them. Once it merges, setMISSING_IS_ERROR = Truein.github/scripts/check_sri.py.Version: v2.0.0 (CHANGELOG,
index.htmlfooter, README, Settings → General, CLAUDE.md §1).Why no ESLint (yet)
FinLens shares one global scope across files by design, so ESLint's most useful rule (
no-undef) would flag every cross-file call unless we list hundreds of globals. It would also add an npm config file to a no-npm project.node --checkcatches what actually breaks the app (syntax errors) with no config. Worth revisiting if the code moves to modules.How it was tested
check_syntax.pyrun locally on this branch: all 16 JS files and the inline script pass.check_sri.py: the CDN is blocked from my workspace, so I checked the hashing against the same files from npm (marked@15.0.12,dompurify@3.4.17). Both match theintegrityvalues inindex.html. The live CDN download is only verified by the Actions run on this PR.Manual testing (step by step)
okfor marked and DOMPurify, and three yellow warnings for Chart.js, PapaParse and Day.js.js/file andindex.html (inline script 1)should sayok.integrityhash inindex.htmland push. The SRI job should fail with "SRI hash mismatch" and show both hashes. Delete the scratch branch afterwards.index.htmllocally and check the sidebar footer and Settings → General both say v2.0.0.Please check before merging
MISSING_IS_ERRORtoTruemaster(possible now the repo is public)https://claude.ai/code/session_013Z8iBUNj6C627mxmm1CurV
Generated by Claude Code