The desk sergeant implied the SPACE was out of GPU — it's the visitor's own
per-user ZeroGPU ration (2 min/day logged out). Copy now says so and points
at signing in. Also lowered the Inspector's duration request from 95s to 75s:
a call only starts if the caller has the full ask free, so 95s locked
logged-out players out of Grey after ~one game; his real turns run 10-30s.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Md6C7wMyiQuBeiDR1M9x25
Every wait-line, entrance-ritual beat, telegraph, and demand/q20 line shown
during a turn is now captured into the qa entries and the accusation, carried
into the dataset record, and packed into the replay payload. The tape player
plays each turn's theater as ONE self-animating step — lines fade in on a
0.85s stagger inside a single NEXT click, so the comic timing survives without
tripling the click count (earlier steps sit still). Payload stays lean
(capped lines per turn; typical link ~1.4k chars).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Md6C7wMyiQuBeiDR1M9x25
1. Wait-lines now have a minimum on-screen time (2.6s) and entrance rituals
always play to their end — a fast GPU turn can no longer eat the scene.
2. Replays: the finished game is zlib-compressed into the share URL fragment
itself (nothing hosted, nothing expires, never hits a server log). A new
/replay route serves a standalone tape player in the house design system —
claims docket, step-through transcript (buttons + arrow keys), accusation
stamp, verdict, and a PLAY CTA back to the game. Share row on the after
screen: WATCH THE REPLAY + X/Twitter, Facebook, LinkedIn intent links; the
replay link also lands in the copyable case file. Payload excludes the
hidden analysis.
3. Buttons unified into one key system: identical height/type/tracking across
primary, secondary, share keys, and the replay controls; equal-width
after-actions; press feedback; LIGHTS exempted as a mini-key.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https:/…
The precinct now has procedures for fog. A deterministic vagueness read on each
answer (hedges, length, checkable-detail heuristics) drives three layers:
1. Branched fallback banks per detective — fq_specific (drilling questions,
{C}-quoting), fq_vague (the fog itself becomes the subject, {A} quotes the
player's own vague answer back at them), fq_streak (2+ vague in a row:
Gimlet goes off the laminate, the Inspector goes glacial). Plus vague_waits
decks (the room reacting to fog) and per-character one-word callouts.
2. Prompt steering — the model is told whether the last answer was vague,
stonewalling (streak), or detailed, and how to play each.
3. A gameplay rule with noir logic: stonewall him 3+ times and the accuse
gate loosens — he stops waiting for evidence and goes with his gut.
Vague flags recorded per turn + behavior stats in the dataset record.
Writers-room material (4 lenses + showrunner): Form 12-B, "{A} is not an
answer, it's weather", "The rain has more…
Detective lines step in 22px from the left with a soft cap off the right edge;
player answers mirror it from the right — the two voices face each other
across the table instead of hugging the container walls.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Md6C7wMyiQuBeiDR1M9x25
Chatbot height now content-driven (height="auto", capped) instead of a fixed
440px void; spacing rebuilt as tight-within-groups / generous-between-sections;
status trackers and progress stripes hidden (the theater IS the loading state);
answer field label sits above its box without double borders. New LIGHTS key
(top right) flips dark mode via body class and persists in localStorage,
restored on load. Dark palette contrast raised (ink #f2efe8, brighter
secondary/tertiary greys, stronger hairlines).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Md6C7wMyiQuBeiDR1M9x25
Claims spoken as words, never letters + sidebar case docket
Players don't remember which claim was "B": the detective now quotes the
claim's own words. Three layers: prompt rule (letters are filing codes, JSON
only), display-time substitution catching any 'claim B' the quantized model
still emits, and fallback banks rewritten around a quoted-snippet {C} slot.
Accusation monologue and win/lose screens quote the claims too; claim
attribution for the least-questioned heuristic now works by word overlap.
New right sidebar docket ("Your claims — as filed") shows the player's three
claims through the whole game, styled as evidence cards.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Md6C7wMyiQuBeiDR1M9x25
Writers-room pass: character depth, new names, emoji purge, 12 funny claim sets
Det. Const. Sonny Gimlet (8B) and Insp. Everard Grey (27B) replace the old
names. Wait-lines rebuilt as slow character portraits: 20 normal + 6 escalation
lines each with recurring props and canon (Gimlet: Day 61, the framed
third-attempt pass slip, the boat he keeps drawing; the Inspector: the Bellbird
file, opened 1987, never explained). Both get first-wait entrance rituals.
All emoji removed except the masthead koala; share grid now monochrome rings.
12 placeholder claim sets across distinct comic territories, randomized per
session via demo.load and per case. Fallback questions, telegraphs, win/lose
lines, and Wattle's margin note all rewritten in the unified deadpan voice.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Md6C7wMyiQuBeiDR1M9x25
Full visual redesign: warm-grey paper/ink system in light and dark, hairlines
instead of boxes, mono type for the instrument panel (REC strip, question
counter with 20-segment progress track, stamps), typographic screenplay-style
transcript instead of chat bubbles, segmented lie selector, dossier-card
detective select, control-panel keys for buttons. Exactly one color: signal
red for the recording light and the accusation ink. Answer controls recede
via :has() while the accusation is on the table. gr.themes.Monochrome base.
Critical gameplay fix found by driving the real UI with Playwright: chained
detective_turn events were silently DROPPED (default trigger_mode="once")
because the previous turn's generator stream lingers open a beat — real
browser players froze after their second answer. Now trigger_mode="always_last".
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Md6C7wMyiQuBeiDR1M9x25
First live game surfaced two issues: the detective cited "the observer notes"
to the suspect (confidentiality leak — now scrubbed at parse + forbidden in
prompt), and lightly reworded duplicate questions slipped past exact matching
(now caught via word-overlap coefficient >= 0.7 and swapped for the fallback
bank). Also nudges the detective toward describe-questions over yes/no.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Md6C7wMyiQuBeiDR1M9x25
Pin sdk_version 6.19.0 — 6.20.0 container flaps at the edge (500/503); 6.19 is the proven guess baseline
Koala-noir 20-questions game on ZeroGPU: player files 3 claims (one lie),
Det. Pip Barrow (Ternary-8B) or Insp. Marlowe Grey (Ternary-27B) interrogates
and accuses. Hidden analyst instance (Sgt. Wattle) profiles answers each turn
and briefs the detective — never shown during play, disclosed in the post-game
case file. Loading-as-theater wait lines, staged accusation beats, share card,
session streaks. Every game recorded (consent-gated, REC banner) to local JSONL
+ CommitScheduler push to a private dataset repo. MOCK_LLM=1 dev mode + full
game-loop test suite. llama-server scaffolding vendored from the guess Space.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Md6C7wMyiQuBeiDR1M9x25