Skip to content

fix(studio): light the tables that work, and a floor with no two tables alike - #41

Merged
piotrlaczkowski merged 1 commit into
mainfrom
claude/live-screen-animation-ux-w9eppr
Sep 25, 2026
Merged

piotrlaczkowski merged 1 commit into
mainfrom
claude/live-screen-animation-ux-w9eppr

Conversation

@piotrlaczkowski

Copy link
Copy Markdown
Contributor

What was broken

In v0.27.0, only the command center moved during a real run; the team tables stayed dark. I captured a real two-team Studio run (backend-go + docs, driven by the fake model) and replayed its event log through the floor model, one event at a time. That found four model bugs:

  • The agent doing the work was lit at no table. docs names no worker, so the pipeline's go-worker did its ticket T1. At backend-go (its home) T1 isn't that table's ticket, and the visitor seat skipped anyone on any roster. Now it sits at the table whose ticket it works, drawn as "lent by the Backend · Go". Its home chair is empty and says "📤 at Docs".
  • A phantom worker appeared in the command center. The execute loop also logs file_change/latency lines under the generic worker/tester names. Those now count as the specialist's lines.
  • Some agents stayed lit forever. A few starts never get an end, e.g. split's "assigned go-worker" and test's "verification pass". Those are now dropped when the run moves to another phase.
  • Debug and latency lines made agents "speak". They no longer do.

I re-ran the real Studio run on the fixed build. go-worker is lit at the Docs table for its whole turn, then go-tester lights up during testing, then the command center takes over.

A livelier floor with no two tables alike

  • Each table has its own habits (a culture seeded from its id) and its own party programme on its own clock. Each agent has a favourite pastime.
  • New idle activities: chatting with a neighbour, scrolling a phone, thinking, and a stroll path unique to each agent. Managers present at the board.
  • A shared break room sits behind the tables: a coffee bar (espresso machine with steam, water cooler, cups), a foosball table with spinning rods, a sofa and plants. Coffee breaks and foosball rounds walk agents round their table and over to it, so people from different tables meet there. The command-center crew walks out through its sliding door to join them. The crew's private coffee machine is now an arcade cabinet.
  • Tables react to real events: 👏 when a ticket lands, 🤦 when one fails, heads turn when a teammate starts working. A clicked agent 👋 waves back.
  • A long wait in a live run no longer forces the whole table to sleep. Naps are now an occasional doze.
  • The flat map and the dossier show the same moods, including "away".

Testing

  • New floorModel tests built from the captured run: the lent worker is lit at the right table and away at home, the generic line is attributed to the specialist, a start with no end is cleared, and bookkeeping lines don't count as speech.
  • New floorLife tests: tables differ in party timing and habits; reactions, the click-to-wave and "away"; the break room and presenting.
  • make web-check: lint, typecheck, 202 tests and the build all pass.
  • make check stops at golangci-lint locally: the installed binary was built with go1.25 but the module targets 1.26.7. No Go code changed; CI runs lint with the pinned version.
  • Checked visually in the real Studio UI (embedded build, real binary) and in a three-table 3D preview.

🤖 Generated with Claude Code

https://claude.ai/code/session_01MursiSjrf51muBCzrWus9Y


Generated by Claude Code

…es alike

A captured two-team Studio run (backend-go + docs, where docs names no
worker and the pipeline's go-worker does its ticket) showed the tables
dark while only the command center moved. The floor model was reading
the real log wrong:

- A rostered specialist working another team's ticket was lit at no
  table: at home the ticket was not theirs, and the visitor seat skipped
  anyone on any roster. They now sit at the table whose ticket they
  work, drawn as lent by their team, and their home chair is marked away.
- The execute loop's generic "worker"/"tester" lines (file_change,
  latency) became a phantom person at the command center. They now
  count as the specialist doing the work.
- Starts with no end (split's "assigned go-worker", test's
  "verification pass") lit an agent for the rest of the run. They are
  dropped when the run moves to another phase.
- Debug and latency lines no longer make anyone "speak".

And the floor was repetitive, and fell asleep: every table shared one
party clock and one set of odds, and five idle minutes forced a nap.
Now each table has its own habits and party programme, each agent a
favourite pastime; idle agents chat, scroll a phone, think, stroll a
path of their own, and walk to a shared break room (coffee bar and
foosball) where every table and the command center's crew meet.
Managers present at the board, tables applaud a landed ticket and wince
at a failed one, a clicked agent waves, and a long wait in a live run
no longer puts a whole table to sleep.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MursiSjrf51muBCzrWus9Y
@piotrlaczkowski
piotrlaczkowski merged commit c3d419c into main Sep 25, 2026
7 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.

2 participants