mirror of
https://github.com/got-feedBack/feedBack.git
synced 2026-07-23 05:11:34 +00:00
One attribute. #871/#872/#874/#875 exist to make this line safe. app.js's 385 top-level `function` declarations stop being implicit `window` properties: 87 stay reachable via the explicit contract (#874's Object.assign block + the 47 pre-existing `window.X = X` assignments), and 298 become module-private. Verified NO unexposed name is read from outside app.js. Strict mode (modules are always strict) checked ahead of the flip: app.js parses clean as `sourceType: module` (no octal, dup params, `with`), and has no implicit globals, no `eval`/`new Function`, no top-level `this`. `registerShortcut` is called bare at 15 top-level sites but is assigned at `window.registerShortcut` (app.js:10387) before its first call (10648), and a bare identifier in a module still resolves through the global object — verified `typeof window.registerShortcut === 'function'` in the browser. HARD GATE — app.js IS the plugin loader: - /api/plugins script_type passthrough: editor/stems/studio = "module" - /api/plugins/stems/src/main.js -> 200; conditional GET -> 304 (live-edit ETag) - deep graph: stems/src/transport.js, editor/src/state.js -> 200 - window.loadPlugins present; 5 plugin screens mount; the 3 migrated plugins injected as <script type="module"> - 37 capability participants, 14 compatibility shims, bus + capabilities v1 Every one of the shell's 336 inline handlers resolves on window under module scope, and the A-Z rail / pagination execute 6/6 with no ReferenceError. A/B against origin/main: the ONLY unresolvable handler is `editorToggleStemMixer`, which is equally broken on main (a dead handler in the editor plugin — not defined anywhere in its source; pre-existing, flagged separately). Codex preflight raised a [P1] claiming restartCurrentSong / requestExitSong / editRegionInEditor / returnToEditorFromHighway would ReferenceError — FALSE POSITIVE. It scanned only #874's new Object.assign block and missed app.js's 47 scattered `window.X = X` assignments; all four are at app.js:7086/7204/8492/8511 and all four resolve as `function` in the browser with app.js loaded as a module. pytest 2396, node 1032/1032, ESLint 0 errors, tailwind-fresh clean. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| avatars | ||
| brand | ||
| pedals | ||
| audio-routing.js | ||
| badges.js | ||
| brand.js | ||
| card-actions-core.js | ||
| dashboard.js | ||
| feedbarcade.js | ||
| image-picker.js | ||
| index.html | ||
| interface-size-nudge.js | ||
| interface-size-ui.js | ||
| lessons.js | ||
| live-guitar-tone-source.js | ||
| live-performance-hud.js | ||
| manifest.json | ||
| match-review.js | ||
| notifications.js | ||
| onboarding-tour.js | ||
| overlay-active.png | ||
| overlay-inactive.png | ||
| pedal-cables.js | ||
| pedal-default.svg | ||
| pedal-frame.svg | ||
| player-chrome.js | ||
| playlists.js | ||
| plugins-page.js | ||
| profile.js | ||
| progress.js | ||
| progression-core.js | ||
| scoreboard-pref.js | ||
| settings.js | ||
| shell.js | ||
| shop.js | ||
| songs.js | ||
| stats-recorder.js | ||
| theme-core.js | ||
| tuner-core.js | ||
| v3.css | ||
| venue-instrument-pov.js | ||
| venue-mood-fx.js | ||
| venue-scene-3d.js | ||
| venue-viz.js | ||