The old panels have strict grammar.
Marcin Wichary photographed modular control panels in German and Polish museums. The panels vary in age and purpose, but the useful pattern is consistent. Lamps, counters, switches, labels, and guards occupy fixed modules. A damaged or removed module leaves an obvious hole. Status is attached to a place, not floated over a picture.[1]
This is more than a retro look. A fixed module forces the designer to answer basic questions. What does this control operate? What state can it show? What happens after someone touches it? A generic icon rail can avoid those answers.
A cockpit becomes legible when each square has one contract.
Modern agent tools are adding more objects.
Visual Studio Code 1.140 adds experimental multi-folder sessions and remote delegation. One agent session may now contain chats tied to different folders or worktrees. Connected hosts may run delegated work elsewhere. The release notes also say the dedicated agent-host process can support the same session across several editor windows.[2]
Zed 1.22 adds per-spawn model selection for subagents and shows the active model in the subagent card. The same release removes Stop controls from terminals owned by an external agent. That change matters because the display was not the process owner.[3]
These products need more interface, but not more anonymous chrome. Folder, worktree, host, model, owner, and completion state should live on named modules. If a control cannot reach the object, it should not look like an actuator for that object.
A tiny target is still a bad switch.
WCAG 2.2 sets a 24 by 24 CSS pixel minimum target size at Level AA, with defined exceptions for spacing, equivalent controls, inline targets, browser-owned controls, and essential presentations. The guidance also says larger targets help many people and points important controls toward the stricter target-size criterion.[4]
A physical panel makes control size part of the design. Software often treats it as spare space. Give frequent and risky actions a real module. Keep their labels visible. Do not make a user steer between six twelve-pixel glyphs to find the one that can delete, stop, merge, or delegate.
Use three module classes.
An observe module reports state and does not pretend to command anything. A command module names the object and the owner that receives the action. A receipt module keeps the response, exit state, revision, or other proof. Products can combine the three in one card, but the labels should keep the roles separate.
Start with the object, not the visual treatment. Write the label. Name the state. Name the action. Decide what response stays visible. Only then choose the lamp, switch, counter, or guard.