You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
hotato explain, root cause by layer without guessing: reads the
evidence a run already produced (score results, fix plans, trust reports,
contract bundles, attached voice traces) and emits an attribution per
failure: the likely layer (turn-taking taxonomy: failure layer, type,
confidence, fixability, opposite risk), the evidence for and against it,
the explicit unknowns (for example, no client-side playout trace attached),
and one safe next action. When the evidence cannot support an attribution
(an unlabeled candidate, a not-scorable input, conflicting signals) it
REFUSES with the reason instead of guessing. Text, --format json
(schema hotato.explain.v1), and HTML report output. Explain reports
timing evidence; it does not prove root cause and does not infer intent.
hotato fix trial, one command from candidate fix to before/after
proof: composes the shipped primitives (apply --clone, the verify
battery, contract verification, and the opposite-risk guardrails) into a
single fail-closed trial: baseline on the recorded failure, apply the
candidate change in a clone (production config is never touched), re-run,
and check neighbouring and opposite-risk cases. Verdicts: improved
(exit 0), regressed (exit 1, forced by ANY fixture or opposite-risk
regression even when everything else improved), inconclusive (exit 3,
refused rather than softened). The report embeds the explain attribution
for the failure under trial.
Operator-grade capture depth for LiveKit and Pipecat in the starter
templates and docs: where turn-taking configuration lives in each stack
and how to capture per-party audio for scoring.
Fixed
hotato contract unpack now treats every archive as hostile input:
rejects path traversal (including backslash and drive-letter forms),
symlinked and encrypted members, duplicate member names, members not
declared in the manifest, oversized decompression (512 MiB default, --max-bytes / HOTATO_CONTRACT_MAX_UNPACK_BYTES override, enforced
against actual streamed bytes, not just declared metadata), and
compression-ratio bombs. Extraction stays atomic: a refused archive
leaves nothing behind. pack cross-platform byte determinism is now
explicit rather than incidental.