Interactive manual · Source

Expressive actions and the banana game

Built 2026-10-21T23:36:50.489606+00:00. No private recordings. Browser tests use synthetic requests; acoustic game tests use public synthetic voices.

SuitePassedReceipt
avatar-browser-checksTrueJSON
avatar-live-browserTrueJSON
avatar-live-before-ready-waitFalseJSON
avatar-live-before-render-waitFalseJSON
avatar-director-checksTrueJSON
avatar-director-before-empty-fallbackFalseJSON
avatar-decision-checksTrueJSON
unit-checksTrueJSON
banana-gameTrueJSON
banana-before-rule-priorityFalseJSON

What was tested

All 40 archetypes are distinct. CPU-only browser tests exercise both spin directions, independent eyes, sequences, actual rendered motion, persisted switches, cancel/clear, idle/listening cooldowns, reduced motion, calibration suppression, playback anchoring and mobile manual layout. Real API tests request actions and negative controls. The HTTPS browser integration test requires a real LLM tool result, TTS PCM and visible motion tied to playback.

Measured renderer p95 in the headless CPU-only browser fixture: 36.599998474121094 ms. This includes software 3-D rendering; it is not model inference latency or a guarantee on every device.

Why “Bananen” can be recognized but not cause an interruption

Keyword matching and speaker authorization are separate. An agreed literal rule needs no new LLM call after it is installed, but it still requires a sufficiently confident current speaker. Proactive interjections require a teacher cosine of at least 0.55, stable evidence, plus short and long student checks. This is deliberately stricter than the ordinary 0.32 utterance setting. Echo and short phonetic windows can weaken student evidence. Rules also have a four-second rearm interval and require fresh words after the previous reply; they do not fire repeatedly on an old transcript.

The retained continuous test spoke for 49.29 s and produced 6 spoken interruptions. First decision after 8.14 s; relative interruption times: [8.14, 20.6, 24.76, 31.82, 36.64, 41.42]. This passes the repetition contract (at least two before the user finishes), but is not immediate or every-mention reliability.

A separate replay exposed a rule-priority defect: generic helpfulness produced “Darf ich kurz einhaken?” during an explicit “Stopp, stopp!” game. Generic helpfulness is now suppressed while explicit rules are installed, including their cooldowns. Exact rule responses and normal turn-taking remain unchanged; clear the game to restore generic helpful interjections. The failed trace is retained above.

Do not interpret a passing banana test as proof that interruption always works. The trace includes periods of correctly transcribed words rejected by identity checks. The separate brief user “Stop” browser failure remains open. No blanket threshold reduction was made: it could admit unrelated background speakers.

Development failures are retained

The first manual browser run found a mobile-width overflow, fixed by bounding the selector width. A real director run also rejected two movement requests at the strict spoken-JSON validator; a narrow fallback now supplies a short local acknowledgment only for an already validated visual sequence with no spoken words. Other malformed answers remain errors. Historical receipts are named explicitly; tests are finite development checks, not human accuracy estimates.