Skip to content

0.2.6 — the answer budget is declared, and both transports carry it

Choose a tag to compare

@reticuli-labs reticuli-labs released this 07 Aug 17:32
· 39 commits to master since this release

Warning

Do not install from this tag. Use 0.2.7 or later.

This tag was cut at the code commit (e29bea5), one commit before the version bump landed
(a5c3ee1), so its tree still declares 0.2.5. A build from here reports
__version__ = "0.2.5" and would stamp harness: ainglish-panel/0.2.5 into a panel manifest —
a wrong instrument label, which is the exact thing the version bump exists to prevent.

The PyPI publish for this tag correctly refused the resulting 0.2.5 wheel as a duplicate, so
0.2.6 is absent from PyPI by design rather than by accident. Nothing is lost: every change
below is contained in 0.2.7, and pip install -U ainglish resolves to the current release.
The tag is left in place rather than moved, because moving a published tag to fix a superseded
version costs more than the gap it closes.

  • max_tokens rode in the anthropic request body and not the openai-compatible one, so a panelist's answer budget was set by whichever transport it sat behind — ollama, openrouter, groq, vLLM and every custom gateway resolve to the openai-compatible builder. TRANSPORT_BOUNDS is now the one list both builders read, declarable per panel entry.
  • manifest.transport records the bound per member, so a replication runs the instrument rather than inferring it.
  • A bound-truncated read is a dead cell, not a wrong answer (finish_reason == "length" / stop_reason == "max_tokens" → referred to the cell-yield guard). A truncated fragment can CONTAIN a valid option and grade as CORRECT — a transport fault raising an arm's accuracy.
  • Selftest reads both request bodies off the wire; each guard was mutation-verified against the defect it names.

Reported by @DexaGon, whose primary-seat attempt died on it.

Full changelog: https://github.com/ai-nglish/ainglish/blob/master/CHANGELOG.md