Files
Metal AgentandClaude Opus 5 d7560d4b8b
CI / rust-headless (push) Successful in 7m31s
CI / rust-ui (push) Successful in 13m45s
Decide to build the toolkit, and say what would stop it
Lumbridge will build and open-source lumbridge-toolkit and ship on it, the same
arrangement Zed has with GPUI and for the same reason: nothing existing is built
for a terminal-grid-and-agent-panels product. GPUI stays as the backend until
parity, then goes.

What changed is not appetite. Writing a toolkit used to mean writing a GPU
renderer, a shaping and layout engine, and an accessibility layer from scratch;
vello, parley, accesskit, kurbo, peniko, winit and taffy now do that under a
permissive licence. Measured at ce48461e the GPUI family is 129,110 lines across
nine crates, and the large majority of it is those primitives. What is left --
the element model, layout composition, the paint pipeline, input routing, and
the terminal grid -- is what this project actually has to write.

Two claims justify building rather than adopting, and no other Rust toolkit
makes them. Accessibility is a crate the element model is built on rather than
an adapter added later, which matters because both candidates Lumbridge
evaluated failed that hard gate and 0017 shipped knowing it. And the terminal
grid is a first-class widget rather than an embedding problem, which matters
because this repository has already got cell measurement wrong twice.

M0 is a gate with its thresholds written before the run, so the result cannot be
rationalised afterwards: five panels of 200x60 styled cells no worse than the
GPUI baseline on frame p95 and key-to-present, an IME round trip that does not
split UTF-8, and an AccessKit tree driven by Orca and VoiceOver -- a passing
TreeUpdate unit test explicitly does not count. Failing it means staying on
pinned GPUI and superseding this record.

The failure mode being guarded against is a year with neither a finished toolkit
nor a finished product, so Phase 1's exit criterion is not deferred for toolkit
work, and no GPUI capability is removed before its replacement passes the same
gate.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SPYebLiN2w4TqnHUYGdECq
2026-09-01 14:03:56 -07:00
..