Skip to content

tooling: release-blocking public-surface reconciliation gate#36

Merged
quantumCF merged 2 commits into
mainfrom
fix-qa-1.13.1
Jul 22, 2026
Merged

tooling: release-blocking public-surface reconciliation gate#36
quantumCF merged 2 commits into
mainfrom
fix-qa-1.13.1

Conversation

@quantumCF

Copy link
Copy Markdown
Contributor

Adds scripts/check_public_surfaces.py + test + RELEASE-CHECKLIST wiring. Cross-checks the version across pyproject/init/tag/README-pin/CHANGELOG/llms.txt (offline) and PyPI/hotato.dev/release.json (--online). No package behavior change, no version bump. Closes the gap the external audits exposed: proving public surfaces are reconciled, not trusting a publisher success signal.

https://claude.ai/code/session_01BqJW5Dey1DzqBeBCAJXrH9

Two external audits reported cache-stale public version numbers that no live
fetch returned; there was no mechanical way to prove the public surfaces are
reconciled to the shipped version. scripts/check_public_surfaces.py closes that:
- Group A (offline, CI-safe): the version agrees across pyproject, __init__,
  the git tag, the README Action pin + hotato-version input, the CHANGELOG top
  entry, and llms.txt; any drift exits 1.
- Group B (--online): PyPI JSON, hotato.dev/release.json, hotato.dev/llms.txt,
  and the hotato.dev landing page (Googlebot UA, no-cache) all report the
  shipped version and positioning, with no retired overclaim.
Stdlib-only, no pipe-to-shell of fetched bytes; 16 tests (drift detection
proven); wired into docs/RELEASE-CHECKLIST.md as a release-blocking step.

Claude-Session: https://claude.ai/code/session_01BqJW5Dey1DzqBeBCAJXrH9
@github-actions

Copy link
Copy Markdown

hotato turn-taking eval

8 of 8 scenarios pass. 0 fail. No regression.

scenario expect yielded time to yield talk over result
01-hard-interruption yield yes 0.50s 0.50s pass
02-backchannel-mhm hold no - 1.57s pass
03-filler-start yield yes 0.65s 0.56s pass
04-correction yield yes 0.50s 0.50s pass
05-telephony-8khz yield yes 0.50s 0.50s pass
06-double-talk yield yes 1.05s 1.05s pass
07-echo-bleed hold no - 3.00s pass
08-rapid-turn-taking yield yes 0.50s 0.50s pass

Regressions

None.

Reproducible timing measured locally from call audio. Swap the bundled self-test step for your own captured recordings to gate on your agent. github.com/attenlabs/hotato

…e step)

The reconciliation-gate checklist edit feeds llms-full; regenerate so the
committed copy matches the build (test_llms_full_txt_committed_copy_is_up_to_date).

Claude-Session: https://claude.ai/code/session_01BqJW5Dey1DzqBeBCAJXrH9
@quantumCF
quantumCF merged commit 09c83c6 into main Jul 22, 2026
15 checks passed
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