Skip to content

v0.39.1 - FlameFrame GAS integration fix (2026-03-23)

What Changed?

This release fixes two issues introduced in v0.39.0. FlameFrame and FlameFrameErrors were not registered in the GAS global namespace, making them inaccessible as gaslamp.FlameFrame in GAS projects. A GAS integration test suite for FlameFrame was also added to pilotlamp.


What's New

Main Feature: pilotlamp FlameFrame test suite

What it does: Adds suiteFlameFrame.js to pilotlamp with GAS-environment integration tests covering construction from columns and sheets, transformations, error reporting, and strict mode.

How to use it (from GAS editor):

JavaScript
runFlameFrame();   // Run FlameFrame suite only
runAll();          // Include FlameFrame in the full test run

Added

  • pilotlamp/suites/suiteFlameFrame.js — GAS integration tests for FlameFrame (12 tests across 5 suites)
  • runFlameFrame() entry point in pilotlamp/main.js
  • Smoke checks for FlameFrame and FlameFrameErrors exports in smokeModules.js

Fixed

  • FlameFrame and FlameFrameErrors were not registered in GASGlobalThis — added import and globalThis assignment in src/index.ts
  • instanceof TypeError check in pilotlamp strict mode test fails across GAS script boundaries — replaced with e.name === "TypeError"

Is It Safe to Upgrade?

  • Breaking Changes: No
  • Backward Compatible: Yes

Release Details

  • Date: 2026-03-23
  • Version: v0.39.1
  • gaslamp: clasp version 86
  • pilotlamp: clasp version 43
  • Files Changed: 4 (src/index.ts, pilotlamp/main.js, pilotlamp/smoke/smokeModules.js, pilotlamp/suites/suiteFlameFrame.js)
  • Commits:
  • 98818c2 fix(pilotlamp): use e.name === "TypeError" instead of instanceof in strict mode test
  • ef53537 fix(index): register FlameFrame and FlameFrameErrors in GAS globalThis
  • 67e37cc test(pilotlamp): add FlameFrame GAS integration test suite
  • 2b12126 docs: update README and CLAUDE for v0.39.0 FlameFrame

Known Issues

  • ValidationError.expected is always "unknown" because Flame<T> guards do not expose their type name at runtime.

Next Steps

  • Consider adding fromRange / fromSheet factory methods directly to FlameFrame