fix(detect): extract Google Apps Script files - #2747
Conversation
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
This PR adds support for .gs (Google Apps Script) files by treating them as JavaScript. It adds the .gs extension to the code extensions set in detect.py, maps it to the JS language family and dispatch/cache-bypass logic in extract.py and extractors/models.py, and adds tests verifying .gs files are classified as code and routed through the JS extractor.
No blocking issues surfaced. 1 lower-confidence candidate did not survive cross-model review.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 2234 functions depend on the 1012 functions this change touches.
Health — this change adds coupling hotspots:
- worse:
extract()— 455 callers, 41 callees - worse:
classify_file()— 44 callers, 3 callees
Verification — 2234 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 2055 function(s) in the blast radius were not formally verified this run
· 2 more finding(s) on lines outside this diff (see the check run).
bb31f2d to
587465d
Compare
|
I have rebased this branch onto �8 to resolve the merge conflict in graphify/detect.py (which arose from other languages being added to CODE_EXTENSIONS). Everything is clean and ready to go! |
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
Adds .gs (Google Apps Script) support by treating it as JavaScript: registers the extension in CODE_EXTENSIONS, the jsts language family, the _DISPATCH map to extract_js, and the JS cache-bypass suffixes. Includes tests covering .gs classification and JS extraction.
No blocking issues surfaced.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 2323 functions depend on the 1046 functions this change touches.
Health — this change adds coupling hotspots:
- new:
extract()— 469 callers, 41 callees - new:
_rebuild_code()— 98 callers, 51 callees - new:
detect()— 107 callers, 15 callees - new:
save_manifest()— 34 callers, 11 callees - new:
extract_files_direct()— 17 callers, 20 callees - new:
extract_xaml()— 19 callers, 17 callees - new:
extract_corpus_parallel()— 26 callers, 10 callees - new:
dispatch_command()— 2 callers, 117 callees - …and 38 more — each is listed as a finding
Verification — 2323 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 2141 function(s) in the blast radius were not formally verified this run
· 46 more finding(s) on lines outside this diff (see the check run).
Summary
This addresses the Google Apps Script portion of #2698. CSS and extensionless-config classification remain separate work.
Validation
Note: the combined detect/extract suite has two pre-existing Windows Unicode normalization failures; the remaining 425 tests passed.