Skip to content

release(0.13.0): bump version + archive add-encoding-partition change - #108

Merged
jascal merged 1 commit into
mainfrom
release/v0.13.0
May 21, 2026
Merged

release(0.13.0): bump version + archive add-encoding-partition change#108
jascal merged 1 commit into
mainfrom
release/v0.13.0

Conversation

@jascal

@jascal jascal commented May 21, 2026

Copy link
Copy Markdown
Owner

Summary

Tags the polygram release that ships add-encoding-partition Phase 1 (#107) and archives the now-completed openspec change directory.

What ships in 0.13.0

  • BlockSpec + per-family validator registry + custom __hash__.
  • PartitionCoverageError + validate_partition_coverage (disjointness + completeness; names up to 10 offending ids).
  • make_default_block(...) convenience constructor.
  • CompressionConfig.encoding_partition: tuple[BlockSpec, ...] | None field.
  • CompressionReport.blocks: tuple[BlockReport, ...] | None + new BlockReport dataclass. Schema bump v2 → v3 with back-compat loader.
  • from_sae_lens(..., encoding_partition=...) kwarg accepted + type-validated.
  • Compressor.apply raises NotImplementedError with an actionable pointer when a partitioned config is supplied (Phase 2 deferral).
  • Public exports from polygram.compression: BlockSpec, BlockReport, PartitionCoverageError, make_default_block, validate_partition_coverage.

33 new tests; full suite 1037 → 1070. Ruff clean. CI green on both 3.11 and 3.12.

Wave C unblocker

This release locks the API surface that sae-forge's add-block-structured-sae Phase 0 explicitly cites as its prerequisite. After this tag publishes:

  • sae-forge can bump polygram>=0.13.0.
  • add-block-structured-sae's Phase 0.1 task clears.
  • sae-forge's Phase 2 (per-block dispatch in auto_materialise.py, sweep.py, forge.py) can begin against the locked surface.

Phase 2 follow-up (separate change, not in 0.13.0)

The actual per-block dispatch in Compressor.apply — slice W_dec/W_enc/b_enc per block, run compress-strategy pipeline per sub-state, stitch results back into a single output SAE, aggregate per-block diagnostics into the top-level CompressionReport.blocks. ~150 LOC + per-block smoke matrix tests.

Test plan

  • 1070 tests pass on this machine; ruff clean.
  • CI green on 3.11 + 3.12.
  • Tag/version agreement (polygram.__version__ == '0.13.0').
  • PyPI publish workflow fires on v0.13.0 tag push (verified post-merge).

🤖 Generated with Claude Code

Tags the polygram release that ships add-encoding-partition Phase 1
(#107) and archives the now-completed openspec change directory.

Wave C unblocker: this release locks the API surface (BlockSpec,
CompressionConfig.encoding_partition, CompressionReport.blocks,
from_sae_lens kwarg) that sae-forge's add-block-structured-sae
proposal explicitly cites as its Phase 0 prerequisite. Once this
tag publishes, sae-forge can bump its polygram>=0.13.0 pin and
begin Phase 2 of its own change.

Phase 2 (the actual per-block dispatch in Compressor.apply) is a
separate impl follow-up filed against this proposal — not in
0.13.0.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@jascal
jascal merged commit 8ec5d87 into main May 21, 2026
2 checks passed
@jascal
jascal deleted the release/v0.13.0 branch May 21, 2026 14:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant