Skip to content

v0.64.0 - FlameFrame extends BareFrame (2026-04-04)

What Changed?

FlameFrame now extends BareFrame directly, so frame.length, frame.headers, and all other BareFrame properties and methods are available directly on frame. FlameFrame.from now returns only valid rows in frame; rows that failed schema guards are excluded and recorded in errors with their original row index from the source df.


What's New

Main Feature: FlameFrame as a BareFrame subclass

What it does:

FlameFrame<T> now extends BareFrame. frame contains only rows that passed all schema guards. errors records which rows and columns failed, using the original row index from df.

How to use it:

JavaScript
const df = gaslamp.BareFrame.fromSheet(sheet);
const { frame, errors } = gaslamp.FlameFrame.from(df, {
  name: gaslamp.FlameGuards.isString,
  age:  gaslamp.FlameGuards.isNumber,
});

// frame exposes BareFrame properties directly
Logger.log(frame.length);   // number of valid rows
Logger.log(frame.headers);  // column names

if (errors.hasErrors) {
  // errors.rowIndex refers to the original df row
  Logger.log(errors.toDataFrame().toString());
}

// frame contains only valid rows — safe to write directly
frame.toSheet(outputSheet);

Added

  • unfoldColumns user guide (docs/guides/unfold.md)
  • display user guide (docs/guides/display.md)
  • BareFrame-First Design developer guide (docs/dev/guides/bareframe.md)

Changed

  • FlameFrame<T> now extends BareFrameframe.length, frame.headers, and all other BareFrame methods are accessible directly on frame
  • FlameFrame.from returns only valid rows in frame; previously all rows were included
  • errors.rowIndex refers to the original source BareFrame row index
  • BareFrame constructor changed to protected to support subclassing
  • BareFrame.getData() added as a protected static accessor for subclasses
  • FlameFrame.toString() and FlameFrame.toSheet() removed (inherited from BareFrame)
  • FlameFrame.toDataFrame() retained for backward compatibility

Is It Safe to Upgrade?

  • Breaking Changes: Yes
  • Backward Compatible: Partial

Existing code that calls frame.toDataFrame() continues to work. Code that assumed frame contained all rows (including invalid ones) will see different behavior — frame now contains only valid rows.


Release Details

  • Date: 2026-04-04
  • Version: v0.64.0
  • gaslamp: 123
  • pilotlamp: 81
  • Commits:
  • e22d8617 feat(torch): FlameFrame extends BareFrame; from returns valid rows only
  • 894140b6 docs(torch): update FlameFrame docstrings for extends redesign
  • 59e70d6e docs(guides): add unfold.md and register in nav and index
  • 32ee18f2 docs(getting-started): update README to BareFrame-first
  • 5cb01be7 docs(guides): rewrite display.md
  • 0ffa68bb docs(guides): simplify dataframe.md
  • 96ddf03b docs(installation): replace FlameFrame.fromArrays with BareFrame-first pattern
  • de61e13b docs(dev/guides): add BareFrame-first design guide

Next Steps

  • Update user guides (flameframe.md) to reflect the new frame.length / frame.headers usage