Every release, on the record.
Generated from the project's git history, newest first, mapped to a tagged release on GitHub.
- 1.7.0current release
- 20dated releases
- MITlicense
1.7.0 shipped July 14.
A counterexample compiler, a transcription cache, and a direct ONNX voice-activity detector, with zero new runtime dependencies.
- Typed SDKs for Python (
hotato.sdk) and TypeScript over the CLI's JSON contract. hotato init ciwrites the turn-taking gate for GitLab CI, Jenkins, Azure Pipelines, and CircleCI.- Audit-hardened release. Source archives build only from the tagged tree; published bytes match CI.
Twenty releases, newest first.
Each release bundles what shipped that day. Dates come from the CHANGELOG.
Date integrityA release-guard test blocks a version bump unless its CHANGELOG entry and its git tag line up, so the log and the tags move together.
-
- Typed SDKs for Python (
hotato.sdk) and TypeScript over the CLI's JSON contract. hotato init ciwrites the turn-taking gate for GitLab CI, Jenkins, Azure Pipelines, and CircleCI.- Audit-hardened release. Source archives build only from the tagged tree; published bytes match CI.
- Typed SDKs for Python (
-
hotato init cifor GitLab CI, Jenkins, Azure Pipelines, and CircleCI.- Docs rewritten for clarity; byte-identical artifacts across machines.
-
- First run leads with
uvx, so the first command works on an externally managed Python. - Demo and verify output reads as a designed surface. Missing metrics show
n/a; an intact bundle readsintegrity: intact.
- First run leads with
-
- Counterexample compiler turns one failing deterministic scenario into an offline regression capsule with an explicit proof status.
- Transcription cache replays a byte-identical stored transcript;
--no-transcribe-cachere-runs fresh and surfaces drift. - Silero VAD runs directly on onnxruntime; the
[neural]extra installs onnxruntime and numpy.
-
- Docs and packaging refresh. README and docs render cleanly on narrow screens; a Ruff gate and a pinned build action run in CI.
-
- Deleting a recording never destroys another workspace's evidence. The shared blob goes only when no workspace references it.
- Outbound HTTP hardened. Cross-origin redirects strip credentials; downloads are bounded.
-
- Evidence reads are scoped to your workspace.
hotato serve's/evidence/<digest>now authorizes each read against a live registry root in the caller's own workspace, not the mere presence of a blob in the shared store, and returns an identical 404 for an unreachable or absent digest — so a digest is no longer a cross-workspace key. - Share-safe records reject embedded absolute paths. The scrubber and validator catch drive-letter, UNC, and mixed-separator Windows paths anywhere in a string, closing a local-filesystem disclosure under the
share-safe-v1profile. - Reference runs are byte-reproducible. The conversation-manifest timestamp resolves from an explicit value, then
SOURCE_DATE_EPOCH, then a fixed epoch instead of the wall clock, and shipped kit and shell scripts are pinned to LF, so two seeded runs produce byte-identical artifacts and a normal Windows checkout no longer rewrites digest-pinned evidence. - Capability routing rejects an unknown caller
contract_uri, degrades an under-labelled addressed event toengagement_controlrather than returning nothing, and pairs a missed bid with a false trigger only within the same battery and configuration. - Machine output:
capture --format jsonandstartroute progress to stderr so stdout is a single JSON object; the MCP server reports hotato's own application version;start --demo --dircreates a missing nested output directory.
- Evidence reads are scoped to your workspace.
-
- PyPI's long description now resolves its links: it's generated from
README.mdwith every repo-relative link rewritten to an absolute GitHub URL, so links on the PyPI page land instead of 404ing. - The default Action gate makes zero package-index requests: the pinned checkout now runs straight off its own
PYTHONPATH, with no pip step, no isolated build backend, and no index contact. The exact-version pin mode still installs from PyPI, its documented intent.
- PyPI's long description now resolves its links: it's generated from
-
- Voice Failure Atlas builder: a deterministic, server-rendered site generator (
scripts/build_atlas.py) built from typed, schema-validated sources; every seeded record traces to a captured CLI run against bundled fixtures, never invented, and two builds from the same sources are byte-identical. - Delta prove-and-stop verifier (
scripts/verify_delta.py): a machine-verifiable gate confirming deliverables and tests, a frozen-surface check, and a recorded cold-path proof that a clean install runs the credential-lesshotato start --demowith no key and zero intervention.
- Voice Failure Atlas builder: a deterministic, server-rendered site generator (
-
- Interaction labels v1: optional, backwards-compatible per-event metadata (speech presence, addressed-to-agent, floor intent) supplied by a human, a trusted source, or a marked fixture -- never derived from timing, energy, transcript, or a model verdict.
- Capability routing v1: a deterministic router that reads supplied labels on a paired addressee-control battery and routes to the narrowest capability the evidence supports, or to no recommendation at all.
- A root composite GitHub Action (
action.yml) that installs the pinned revision itself with--no-depsand gates on hotato's own exit code, needing onlypermissions: contents: read.
-
- Failure Record v1: a content-addressed, five-lane record rendered from a test, suite, or contract result (
hotato record render) to JSON, Markdown, HTML, and SVG; outcome claims cite tool/state evidence, and transcript-only outcomes are refused. - Consumer GitHub Action (root
action.yml): pin it by commit SHA to run a committed suite, test, or contract from an unrelated repo and get a five-lane job summary on pass and failure. hotato regression prepare: turns one confirmed failure into a sanitized, deterministic, committed regression bundle; it prepares files locally and stops, never uploading or opening a pull request.- Read-only failure-record viewer in
hotato serve(/recordslist and detail view, token-gated).
- Failure Record v1: a content-addressed, five-lane record rendered from a test, suite, or contract result (
-
- The demo contract is built from the declared missed interruption, selected by evidence fields rather than candidate rank, so the demo failure is a scorable event with a measured talk-over that matches its printed story.
- Every example command
hotatoprints runs as-is on one line, across the demo next steps, scaffolds, hints, and help epilogs; a guard test walks the guided surfaces and the full help tree to keep them paste-safe. hotato serveopens the browser to the working token-carrying URL on start, prints that URL prominently, and greets a token-less visit with a short landing page; the five views were polished and stay token-gated and read-only.
-
- A first-run screen for
hotato(run with no subcommand): an ASCII logo, the one command to try (hotato start --demo), and the browser workspace (hotato serve). Color is optional and gated on an interactive terminal (respectsNO_COLOR), degrades to plain text when piped, and every command shown is copy-paste-safe. Still zero runtime dependencies.
- A first-run screen for
-
- Hardening pass across the 1.2/1.3 line, driven by an adversarial audit.
--gatenow fails closed: a run that greened on a judge that could not run now counts as a failure.- Credential-safe redirect fix on the
config inspectpath. - Cleaner first run: pip-led quickstart, no raw
Nonein output, and the five-dimension conversation-QA surface up front. - Self-host doc corrections.
-
hotato investigate: one call to a CI-ready contract, with authenticated capture, channel trust gate, ranked candidates, you label.hotato assert: a deterministic DSL (phrase, PII, policy, tool_call, outcome), no model, offline.- Signed Ed25519 label-records, via the opt-in
[sign]extra. - Opt-in
[transcribe](faster-whisper, local): transcript as context, never scored. - Copy-paste CI configs for GitLab, Jenkins, Azure DevOps, and CircleCI.
--notify URLon sweep and fleet; ahotato fleet trendHTML trend page.- Evidence kernel hardened.
-
- Docs consistency patch: corrected the MCP tool count.
- Added a release-guard test.
-
- Guardian/Fleet build-out: a bounded experiment engine, batch discovery with cross-call clustering, idempotent jobs, and one-click contracts.
- Capture-receipt attestation, unlocking the ATTESTED evidence tier.
- Wired privacy controls: retention, delete, and redact.
- 3 new MCP tools. It recommends a change and leaves deploying it to you.
-
- Evidence-integrity hotfix: closed the paths where a green artifact could come from an input that wasn't what it claimed to be.
- Each closed path is held by a release-blocking adversarial test.
-
- First stable release.
- Evidence kernel plus Guardian/Fleet feature-complete; schemas stable and additive from here.
-
- Guardian/Fleet: a private, self-hosted control plane.
- Recompute-from-audio proof gate.
- Evidence vector and lattice (weakest tier wins, never blended), plus capture receipts.
-
hotato trustmeasures cross-channel leakage (≥ −40 dB) and very-low signal, so a bad export is caught before it becomes a verdict.
-
- Fresh-capture provenance guard for
fix trial. - Windows connect crash fixed.
- Fresh-capture provenance guard for
-
hotato explain: root cause by layer; it refuses when the evidence can't support the call.hotato fix trial: a candidate fix to a before/after proof, fail-closed.
-
hotato contract create/verify/inspect/pack/unpack: a portable.hotatoCI contract.hotato trace ingest/attach/export: an OpenTelemetry bridge.hotato start --demo: a credential-less first run.
-
hotato trustinput-health check.hotato apply --clone: a guarded, staged apply.
The full history, entry for entry, lives with the source: CHANGELOG.md on GitHub →
Read the log. Run the suite.
MIT-licensed, self-hosted conversation QA. One command starts it.
$ uvx hotato start --demo
Read the docs, or browse the source. Get started → · GitHub →