v0.28.7 - Centralize GAS Global Namespace Registration (2026-03-21)¶
What Changed?¶
This release refactors how all modules register their symbols into the GAS global namespace.
Previously, each module's index.ts managed its own globalThis assignments independently.
Now, all registrations are consolidated in src/index.ts with a single typed GASGlobalThis interface,
making it easy to see at a glance which symbols are available in GAS environments.
What's New¶
Main Feature: Centralized GAS Global Namespace¶
What it does:
All globalThis assignments are now managed exclusively in src/index.ts.
A single GASGlobalThis interface lists every class and function registered as a GAS global,
replacing the previous pattern of scattered declare const globalThis: any blocks across modules.
How to use it:
No changes required for existing GAS scripts.
All previously available globals (DataFrame, FlameGuards, AfterGlow, etc.) remain accessible as before.
Code example:
// src/index.ts — all GAS globals defined in one place
interface GASGlobalThis {
DataFrame?: typeof DataFrame;
FlameGuards?: typeof FlameGuards;
AfterGlow?: typeof AfterGlow;
// ...
}
if (typeof globalThis !== "undefined") {
const gas = globalThis as unknown as GASGlobalThis;
gas.DataFrame = DataFrame;
gas.FlameGuards = FlameGuards;
gas.AfterGlow = AfterGlow;
// ...
}
Added¶
src/remnantflicker/index.ts— added missing entry point for consistency with other modulesdocs/dev/patterns.md— documented Entry Point Pattern and GAS Global Namespace PatternCLAUDE.md— added both patterns to Key Architectural Patterns section
Changed¶
src/index.ts— now centralizes allglobalThisregistrations with a typedGASGlobalThisinterfacesrc/index.ts— now exportsjestliteandremnantflickerdirectly (previouslyjestlitewas re-exported viatorch/index.ts)src/torch/index.ts— removedjestlitere-export (moved tosrc/index.ts)- All module
index.tsfiles — removedglobalThisregistration blocks
Fixed¶
src/jestlite/index.ts— replacedrequire()calls with already-imported symbols (GAS-incompatible pattern)src/afterglow/index.ts,src/gears/index.ts— replaceddeclare const globalThis: anywith typedGASGlobalThisinterface
Is It Safe to Upgrade?¶
- Breaking Changes: No
- Backward Compatible: Yes
All GAS globals remain available under the same names. No changes to the public TypeScript API.
Release Details¶
- Date: 2026-03-21
- Version: v0.28.7
- gaslamp: ??
- pilotlamp: ??
- Files Changed: 8
- Commits:
ebc98b4bump: version 0.28.6 → 0.28.7981ed5edocs(claude): add Entry Point and GAS Global Namespace patterns8dbd63edocs(dev): add Entry Point and GAS Global Namespace patterns023a14brefactor(index): centralize GAS globalThis registration61a376drefactor(torch): move jestlite re-export to src/index.ts53eecd5refactor(jestlite): remove globalThis registration7736381refactor(gears): remove globalThis registration2573c49refactor(afterglow): remove globalThis registration2e1dfa8refactor(flamewright): remove globalThis registrationd144ef4refactor(torch/dataframe): remove globalThis registration2856761feat(remnantflicker): add index.ts entry pointd1c7fedrefactor(gears): replace declare any with GASGlobalThis interface6ba0ccerefactor(afterglow): replace declare any with GASGlobalThis interfaced126eb7refactor(jestlite): replace require() with import in globalThis registration
Known Issues¶
- GAS version numbers for v0.28.3–v0.28.7 are not yet recorded in
RemnantFlicker.versions.
Next Steps¶
- Push bundle to GAS and record the GAS version number for v0.28.7.