Releases: blackwell-systems/gcf-typescript
v2.2.1
Flatten Opt-Out
encodeGeneric(data, { noFlatten: true })disables nested object flattening- Backward compatible:
encodeGeneric(data)unchanged
Bug Fixes
- Field names containing
>excluded from tabular columns (spec rule 7.4.6.1.4) - Field names containing
>no longer eligible for flattening analysis - Decoder no longer treats literal
>in key names as a path separator - Decoder accepts orphan attachments (fields excluded from column list)
- 200K round-trips (both modes, > in keys) zero failures; 12 targeted edge case tests
Full changelog: v2.2.0...v2.2.1
Full Changelog: v2.2.0...v2.2.1
v2.2.0: Nested Object Flattening (Spec v3.2)
Nested Object Flattening
Encoder automatically flattens fixed-shape nested objects into > path column names. Decoder reconstructs nesting from > paths.
- 20-48% fewer tokens on deeply nested API data
- 100% comprehension on every frontier model
- Zero regression on 200K random + adversarial round-trips
- Falls back to attachment mechanism for non-flattenable cases
Install: npm install @blackwell-systems/gcf@2.2.0
Full Changelog: v2.1.2...v2.2.0
v2.1.2
Patch release. Fixes encoder quoting for edge cases involving bracket-colon patterns in string values. 100M fuzz iterations, zero failures.
v2.1.1
CommonJS support
Added CommonJS bundle (dist/cjs/index.cjs) for compatibility with CJS environments like n8n, serverless runtimes, and older Node.js projects.
The exports map now includes both import (ESM) and require (CJS) conditions. No changes needed for existing ESM consumers.
This fixes: No "exports" main defined errors when using @blackwell-systems/gcf in CommonJS projects.
v2.1.0
Spec v3.1 Conformance
Spec change
toolfield in graph profile header is now optional (SHOULD be present for MCP, not required)
Bug fixes
- Quote strings containing commas in scalar values
- Decode v2-format indented attachments in tabular rows
- Reject duplicate attachments on the same row
- Reject orphan attachments on rows without
^cells
Conformance
- 157/157 fixtures passing
- 23.25B+ round-trips verified across all 6 implementations, zero failures
Full spec release: gcf v3.1.0
v2.0.2: Inline Schema Encoding
v2.0.2: Inline Schema Encoding
The generic profile encoder now produces inline schema format for nested objects with 3+ scalar fields.
Breaking Changes
encodeGenericoutput format changed (inline schemas, no attachment indentation)- Decoder no longer accepts v1.x indented attachment syntax
- Comma no longer quoted in pipe-delimited contexts (only in comma-delimited inline arrays)
- Strings starting with digits no longer quoted unless they match JSON number grammar
New Features
- Inline object schema (
^{fields}): nested objects encoded positionally - Shared array schemas: identical nested arrays omit field headers after first row
- Browser-safe entry point (
"browser"field in package.json): excludes Node-onlypackRoot/deltamodules - 25.5% fewer tokens than TOON across 15 real-world datasets
Integrity
- 141M lossless round-trip iterations
- 100% comprehension accuracy on every frontier model tested
- 156 conformance fixtures passing
Migration
- import { encodeGeneric } from '@blackwell-systems/gcf' // works in Node
+ import { encodeGeneric } from '@blackwell-systems/gcf' // works in Node AND browserpackRoot and encodeDelta are Node-only (require crypto). Import directly if needed:
import { packRoot } from '@blackwell-systems/gcf/dist/packroot.js'
import { encodeDelta } from '@blackwell-systems/gcf/dist/delta.js'Full spec: https://github.com/blackwell-systems/gcf/releases/tag/v3.0.0
v2.0.0: Inline Schema Encoding
v2.0.0: Inline Schema Encoding
The generic profile encoder now produces inline schema format for nested objects with 3+ scalar fields. This is a breaking change from v1.x output.
Breaking Changes
encodeGenericoutput format changed (inline schemas, no attachment indentation)- Decoders no longer accept v1.x indented attachment syntax
- Comma no longer quoted in pipe-delimited contexts (only in comma-delimited inline arrays)
- Strings starting with digits no longer quoted unless they match JSON number grammar
New Features
- Inline object schema (
^{fields}): nested objects encoded positionally - Shared array schemas: identical nested arrays omit field headers after first row
- 25.5% fewer tokens than TOON across 15 real-world datasets
Integrity
- 1B+ lossless round-trip iterations across 6 language implementations
- 100% comprehension accuracy on every frontier model tested
- 156 conformance fixtures passing
Full spec: https://github.com/blackwell-systems/gcf/releases/tag/v3.0.0
v1.0.1: CLI generic profile
- CLI:
encode-genericanddecode-genericsubcommands - Both graph and generic profiles supported from the command line
gcf-typescript v1.0.0
SPEC v2.0 implementation
130/133 conformance fixtures passing (3 skipped: session, delta, binary UTF-8). 40M property-based round-trips with zero failures.
Breaking changes from v0.6.1
encodeGenericemitsGCF profile=genericheaderdecodeGenericrequiresGCF profile=header- Strings colliding with typed literals are quoted (
"true","123","-") - Full JSON string escaping and number grammar
-for null,~for absent,^for nested attachments##! summarytrailer replaces## _summary- Graph encoder emits
profile=graph, sorts by score descending
New
scalar.ts: common scalar grammar (quoting, escaping, parsing, number formatting)- Property-based round-trip tests (40M verified, configurable via
GCF_ITERATIONS) - Conformance test runner (133 fixtures)
Install
npm install @blackwell-systems/gcf@1.0.0
v0.6.1: docs update
What's new
Updated all documentation with multi-model benchmark data:
- 1,300+ LLM evaluations across 10 models, 3 providers, and 51 independent test runs
- 90.5% average comprehension accuracy (four models hit 100%: Sonnet, Gemini 2.5 Pro, Gemini 3.1 Pro, Gemini 3.5 Flash)
- 5/5 generation validity on every frontier model from Anthropic, OpenAI, and Google
- TOON's official decoder rejects LLM-generated output on 7 of 9 models tested
- GCF wins all 6 datasets on TOON's own benchmark
Full benchmarks: https://gcformat.com/guide/benchmarks.html