chore(release): v4.4.1 #616

Merged
claude-bot merged 1 commit from chore/release-4.4.1 into main 2026-09-12 03:25:50 +00:00
Collaborator

A point release for #614, the context-window recovery diagnosed in #613 and merged as 3e64396.

What this PR contains

  • APP_VERSION and BOT_EXPECTED_APP_VERSION → 4.4.1. check_version_sync passes: Version sync OK — app 4.4.1, bot contract v1.
  • One changelog entry, written for a GM rather than for the diff.

Upgrade notes

  • BOT_CONTRACT_VERSION stays 1. The bot API is untouched, so the backend and bot images remain independently upgradable.
  • No migration. #614 changes the transport and service layers only; the migration head stays a0f1a2b3c4d5.
  • No configuration change required. The correction #614 applies is measured from the server's own rejection and held in memory — it is never written into llm_config, so an operator's hand-set context window stays exactly as they set it.

What is fixed

A long session is read in windows, and the estimate of how much text fits in one was tuned for prose. A transcript is not prose — timestamps, speaker names, half-finished sentences — so the estimate ran ~60% under and a window could be refused as too large. The refusal was dropped with only RuntimeError in the log, and for the quote board a partial set of quotes replaced a complete one, leaving a board built from the last twenty minutes of a session with the good version already deleted.

Now a refusal teaches Quest Board how far its estimate was off for that endpoint, the window is re-split and asked again once, and a quote board is replaced only when every window came back. The same recovery covers beat extraction and the wiki-suggestion scan.

Sessions that already summarise correctly send byte-identical windows: the calibration cache is only ever populated by a rejection, so a successful call reaches none of the new code.

After merge

Tag v4.4.1, deploy dev, then verify functionally rather than only by health check — re-extract the quote board for the session that exposed this, on dev, where the configured context is still 65,536 and the self-correction therefore has to actually fire. Then production, and re-extract the affected session's board there; it currently holds 8 rows from the partial run.

🤖 Generated with Claude Code

A point release for #614, the context-window recovery diagnosed in #613 and merged as `3e64396`. ## What this PR contains - `APP_VERSION` and `BOT_EXPECTED_APP_VERSION` → **4.4.1**. `check_version_sync` passes: *Version sync OK — app 4.4.1, bot contract v1*. - One changelog entry, written for a GM rather than for the diff. ## Upgrade notes - **`BOT_CONTRACT_VERSION` stays 1.** The bot API is untouched, so the backend and bot images remain independently upgradable. - **No migration.** #614 changes the transport and service layers only; the migration head stays `a0f1a2b3c4d5`. - **No configuration change required.** The correction #614 applies is measured from the server's own rejection and held in memory — it is never written into `llm_config`, so an operator's hand-set context window stays exactly as they set it. ## What is fixed A long session is read in windows, and the estimate of how much text fits in one was tuned for prose. A transcript is not prose — timestamps, speaker names, half-finished sentences — so the estimate ran ~60% under and a window could be refused as too large. The refusal was dropped with only `RuntimeError` in the log, and for the quote board a **partial** set of quotes replaced a complete one, leaving a board built from the last twenty minutes of a session with the good version already deleted. Now a refusal teaches Quest Board how far its estimate was off for that endpoint, the window is re-split and asked again once, and a quote board is replaced only when every window came back. The same recovery covers beat extraction and the wiki-suggestion scan. Sessions that already summarise correctly send byte-identical windows: the calibration cache is only ever populated by a rejection, so a successful call reaches none of the new code. ## After merge Tag `v4.4.1`, deploy dev, then verify functionally rather than only by health check — re-extract the quote board for the session that exposed this, on dev, where the configured context is still 65,536 and the self-correction therefore has to actually fire. Then production, and re-extract the affected session's board there; it currently holds 8 rows from the partial run. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chore(release): v4.4.1
All checks were successful
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 1m57s
CI / Bot/backend version sync (pull_request) Successful in 24s
CI / Backend lint (ruff) (pull_request) Successful in 48s
CI / Bot tests and audit (pull_request) Successful in 3m23s
CI / Frontend tests, audit, and build (pull_request) Successful in 4m20s
CI / Docker image build (pull_request) Successful in 4m21s
CI / Backend migration, tests, and audit (pull_request) Successful in 13m54s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Successful in 14m48s
3f17db231c
A point release for the context-window recovery in #614, diagnosed in #613.

APP_VERSION and BOT_EXPECTED_APP_VERSION move to 4.4.1. BOT_CONTRACT_VERSION
stays at 1 — the bot API is untouched — so the two images remain independently
upgradable. No migration: #614 changes the transport and service layers only.

The changelog entry is written for a GM rather than for the diff: what went
wrong was that a refused window was dropped silently and a partial quote board
overwrote a complete one, and what changed is that a refusal now teaches the
app its own estimate was wrong and gets retried once.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
claude-bot scheduled this pull request to auto merge when all checks succeed 2026-09-12 03:09:17 +00:00
claude-bot deleted branch chore/release-4.4.1 2026-09-12 03:25:50 +00:00
Sign in to join this conversation.
No description provided.