Releases: blackwell-systems/gcf-proxy
Release list
v0.11.3: gcf-go v1.5.0 (encoder/session/delta fixes)
- Upgrade gcf-go to v1.5.0 (from v1.3.2). Inherited encoder fixes relevant to the proxy: graph edges are emitted in deterministic source-then-target order (SPEC 16.1); the
--sessionpath now uses stable session-global IDs and omits zero-valued header fields; the--deltapath emits the mandatoryprofile=graphdiscriminator and the trailingdistancefield on## addedlines (SPEC 3.4.1); and the streaming graph trailer is deterministic, with an opt-in labeledcountsform (SPEC 8.4.1). The library also gains generic-profile delta (SPEC 10a) and graph delta decode/verify. Encode-only proxy, so these are inherited from the dependency; no proxy code change. Build and tests pass unchanged.
Full Changelog: v0.11.2...v0.11.3
v0.11.2
- Upgrade gcf-go to v1.3.2: nested-null flatten losslessness fix. A nested object that was null at an intermediate level (e.g.
{"meta":{"owner":null}}) was flattened such that itsnullreached the model as an absent field rather thannull; it now round-trips correctly (the field falls back to the attachment encoding). Encode-only proxy, so this is inherited entirely from the gcf-go dependency; no proxy code change. - Fuzz hardening:
TestProxyFuzzRoundTripnow decodes the rewritten GCF and compares it back to the input rather than only checking theGCFheader prefix, so a losslessness regression in the codec is actually caught. The generator also produces aligned nested-object arrays with null at depth (the v3.2 flatten path the prior random/scalar generator never exercised).
Full Changelog: v0.11.1...v0.11.2
v0.11.1
New
--no-flattenflag: uses expanded encoding for nested objects (open-weight models currently comprehend this form better; GCF still outperforms JSON either way)- CI workflow on push
- Fuzz test: 20K round-trips with both flatten modes and
>in keys
Changes
- Bumped gcf-go to v1.3.1 (flatten opt-out + field names containing
>fix) - Updated benchmark tables with general/adversarial split
- Added flags table to README
Full changelog: v0.11.0...v0.11.1
Full Changelog: v0.11.0...v0.11.1
v0.11.0
v0.10.4
Bump gcf-go to v1.2.1. Fixes encoder quoting for edge cases involving bracket-colon patterns in string values.
Full Changelog: v0.10.3...v0.10.4
v0.10.3
What's new
--stats-file <path>: Write JSON stats to a file after each tool call rewrite. Enables hooks and plugins to read session savings in real time.
Install
npm install -g @blackwell-systems/gcf-proxy
pip install gcf-proxy
go install github.com/blackwell-systems/gcf-proxy@v0.10.3Full Changelog: v0.10.2...v0.10.3
v0.10.2
GCF v3 encoder + MCP Registry
- GCF v3 inline schema encoding: upgraded to gcf-go v1.1.0 with inline object schemas, shared array schemas, and positional attachments. 10% fewer tokens on nested data, zero regressions on flat data.
- Published to Official MCP Registry: gcf-proxy is now discoverable at registry.modelcontextprotocol.io
- Added
mcpNameandserver.jsonfor MCP Registry integration
Install
# Go
go install github.com/blackwell-systems/gcf-proxy@v0.10.2
# npm
npx @blackwell-systems/gcf-proxy --session --cache your-mcp-server
# pip
pip install gcf-proxyLinks
- GCF Spec: github.com/blackwell-systems/gcf | gcformat.com
- MCP Registry: registry.modelcontextprotocol.io
- Cost Calculator: gcformat.com/calculator
- Implementations: Go · TypeScript · Python · Rust · Swift · Kotlin
Full Changelog: v0.10.1...v0.10.2
v0.10.1
Fix: cache + session dedup interaction
When --cache and --session were both active, the output cache returned stale responses with full symbols instead of bare refs. Repeat calls got zero session savings.
Root cause: The output cache stored the encoded GCF from the first call. On cache hit, it returned that verbatim, bypassing the session dedup path that would emit bare references for already-transmitted symbols.
Fix: Added a payload cache layer that stores decoded Payload objects. On cache hit with an active session, the payload is re-encoded with current session state, producing correct bare refs.
Result: 42% smaller responses on repeat calls (bare refs) vs serving identical first-call output. Cache and session now compose correctly.
Install
# Go
go install github.com/blackwell-systems/gcf-proxy@v0.10.1
# npm
npx @blackwell-systems/gcf-proxy --session --cache your-mcp-server
# pip
pip install gcf-proxyUsage
gcf-proxy --session --cache --verbose your-mcp-serverLinks
- GCF Spec: github.com/blackwell-systems/gcf | gcformat.com
- Implementations: Go · TypeScript · Python · Rust · Swift · Kotlin
- Whitepaper: DOI 10.5281/zenodo.20579817
Full Changelog: v0.10.0...v0.10.1