Files
lumbridge-code/docs/UI_SPIKE_SCORECARD.md
T
karti f75a3f0c78
CI / rust (push) Successful in 1m41s
Record Ubuntu native UI spike baseline
2026-08-31 15:47:13 -07:00

47 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Native UI spike scorecard
The GPUI and Floem programs under `spikes/` consume the same six-pane fixture.
No product framework decision is accepted until both rows contain measurements
from macOS and Linux and the hard gates pass.
| Criterion | Hard gate | GPUI | Floem |
|---|---:|---:|---:|
| Builds on macOS Apple Silicon | yes | pending | pending |
| Builds on Ubuntu | yes | conditional | pass |
| Builds on Omarchy/Arch | yes | pending | pending |
| Dependency/license closure permits Apache-2.0 distribution | yes | pending | pending |
| Keyboard navigation + AccessKit tree | yes | pending | pending |
| IME and composed Unicode input | yes | pending | pending |
| Isolated system browser child | yes | pending | pending |
| Cold startup, p50/p95 | record | pending | pending |
| Idle RSS / six-stream RSS | record | pending | pending |
| Key-to-present p50/p95 | record | pending | pending |
| Six-stream frame p95/p99 | record | pending | pending |
| Release binary/package size | record | pending | pending |
| Native menu/window/clipboard/drag-and-drop | review | pending | pending |
| API clarity and maintenance burden | review | pending | pending |
The current programs establish dependency, build, launch, and static layout
baselines. The next iteration adds deterministic streaming, input timestamps,
accessibility identifiers, a native Markdown editor, and one Wry browser child.
## Ubuntu baseline — metal, 2026-08-31
Host: Ubuntu 24.04 x86_64, Rust 1.94.1. Both candidates used the same 1280×800
six-pane fixture and were launched under the active X11 desktop.
| Observation | GPUI 0.2.2 | Floem `778bb5f2` |
|---|---:|---:|
| `cargo check` from downloaded dependency cache | 20.76 s, 1.04 GiB max RSS | 24.26 s first attempt + 4.06 s after enabling required editor feature, 753 MiB max RSS |
| Debug executable link | pass with a user-local linker symlink for installed `libxkbcommon-x11.so.0` | pass |
| Debug executable size | 442 MiB | 475 MiB |
| Native window launch and six-pane render | pass | pass |
| Root workspace CI | 8/8 tests, strict Clippy and doctests pass in 10.79 s | shared result |
These are cold-development baselines, not startup, release-size, or runtime
performance numbers. GPUI's Ubuntu row remains conditional because the host has
the runtime `libxkbcommon-x11.so.0` but lacks the unversioned development linker
name normally supplied by `libxkbcommon-x11-dev`. Floem current main also
requires its `editor` feature for the style/label modules used by this shell;
that feature is now explicit in the spike. Neither finding decides the UI stack.