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).
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.