glytch/fktry/src/sim
type-two 45003db31a [ui] REMOVE mode: X arms it, click demolishes, Esc stands down
A misplaced machine is finally undoable by mouse. The REMOVE button sits
with the tabs rather than on a page, because it's a mode, not a machine, and
it has to be reachable from any page. It stays armed between clicks —
demolition is usually plural — and clicking open ground does nothing, so a
stray click never reads as a broken tool. Toast: "UNIT RECLAIMED. THE FLOOR
REMEMBERS."

LANE-RENDER: the hover hook is the __remove ghost sentinel. The UI has no
Renderer reference and the only channel to the ghost is selectedBuild(),
which main.ts feeds to setGhost — so while remove is armed, bus._sel reads
{def: '__remove', dir: 0}. Key the demolition tint off that def id. It's safe
because sim's place handler ignores unknown defs, so main.ts's click-to-place
fires a place for __remove and nothing happens; the UI dispatches the real
remove itself. Exported as REMOVE_DEF and pinned by a test.

A magic string shared between two lanes via a NOTES file is not a design;
contract request filed for UIBus.setGhostMode.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 18:34:05 +10:00
..
bloom.test.ts [ui] REMOVE mode: X arms it, click demolishes, Esc stands down 2026-07-17 18:34:05 +10:00
geom.ts [sim] deterministic factory core: belts, crafting, bandwidth, shipping 2026-07-17 16:25:22 +10:00
index.ts [ui] REMOVE mode: X arms it, click demolishes, Esc stands down 2026-07-17 18:34:05 +10:00
persist.test.ts [ui] REMOVE mode: X arms it, click demolishes, Esc stands down 2026-07-17 18:34:05 +10:00
pressure.test.ts [ui] REMOVE mode: X arms it, click demolishes, Esc stands down 2026-07-17 18:34:05 +10:00
reference.test.ts [sim] splitters, buffer tanks, heat, commission queue, starved, item ids 2026-07-17 17:28:25 +10:00
reference.ts [ui] REMOVE mode: X arms it, click demolishes, Esc stands down 2026-07-17 18:34:05 +10:00
rng.ts [ui] REMOVE mode: X arms it, click demolishes, Esc stands down 2026-07-17 18:34:05 +10:00
sim.test.ts [sim] splitters, buffer tanks, heat, commission queue, starved, item ids 2026-07-17 17:28:25 +10:00