Files
minesweeper/web
pastilhasandClaude Opus 5 b94c1a6557 workspace layout: two empty panels left, the game right
The arrangement the rest of the app uses for controls beside a surface, and
the same shape as Atelier's. 25/75 rather than Atelier's 30/70, because the
board is drawn at a whole-number scale and a quarter of the width is enough to
drop it a step.

The left panels are `appType: null`, which is the framework's empty-panel
state rather than a missing app. That distinction is load-bearing here:
PluginScreen passes `appTypes.allowed` built from the plugin's own panel keys,
and this plugin has exactly one. Anything not on that list is rewritten to the
fallback — so if `null` were not explicitly allowed by `normalizeLayout`, this
layout would render three Minesweepers. It is allowed, and there is a test for
it.

The screen is `locked`, so an empty panel renders as a plain bordered box with
no app picker. That is the intended look until something goes in them.

The game panel keeps the id `minesweeper` it had as a single panel, so any
per-panel state keyed on it survives.

Checked before writing it: no persisted layout exists for this screen in
`user_state`, so the new default actually applies rather than being shadowed by
a saved one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Officer-Session: de3ed4e6-f88a-429c-94e6-a760336ba83b
2026-08-23 23:07:56 +00:00
..