← Cycles
Qnative (provisional) · c8
QGUIkit Cleanup
activekicked off 2026-11-12 — answers `design:c140` D14; steps 1–2 built the same day: the crate renamed `qguikit`, the token bridge moved here and checked in CI, six flaws fixed, the port specs committed; at review stop 1 with three calls; pushed 2026-11-12 on Mark's wordcreated 2026-11-12· last activity 2026-11-12· mode: formula (rulings applied as written), with evolution where a rename meets real code.
design c140's code rulings, in Mark's order (D14):
Why
Design c140 scored QGUIkit against twenty principles: our component system as drawn here in Rust on GPUI, the second surface beside the Vue one in q-nuxt-layer. Where a machine holds the work, the surface is sound. Where a person was meant to remember, it is soft:
- type and radius set by literals;
- a crate that holds an engine, a registry, the docs and a parser beside its components;
- names that half follow the web's;
- a scorecard stale within a day;
- small flaws only a reader found.
Mark ruled the fixes on 2026-11-12. This cycle carries them, so the next page ported here starts from a crate that matches its name and the web's vocabulary.
Objective
Done means:
- D2: the crate is
crates/qguikit, and everyuse layer::isuse qguikit::. The docs say what QGUIkit is. - D13:
- the port specs are committed in
cycles/c2.expressive-range/specs/; - design's bridge fixture carries
it_contact; - the six flaws are fixed;
- the token bridge has a
--checkmode, and CI runs it.
Review stop 1. - the port specs are committed in
- D9:
- the tour engine, the harness registry and the git-remote parser are out of the component crate;
- the doc pages are in a docs crate;
- the seven pantry pieces from the pages are in;
- there is one of each format helper.
- D8: every component carries its Vue name, with a deprecated alias for one release, and the scorecard has a
rustcolumn. - D5:
- type and radius via tokens;
- motion tokens on both surfaces;
- the colour leftovers given roles;
- the lint in CI.
Review stop 2, with the budget against c2's readings.
Scope
- This repo: every crate (the rename),
crates/layer→crates/qguikit,crates/app/src/pages/*,.github/workflows/build.yml,cycles/c2.expressive-range/specs/. - Design (named files only):
app/data/worlds/bridge/pilot.jsonandtypes.ts;scripts/tokens-to-kit.mjs;brand/component_philosophy.md's motion rule (step 5);- c140's records.
- The layer (step 5 only): motion tokens in
tokens.json, released with Mark's word. - Out:
- the slot APIs (design c140 D6: named now, refactored when a component is next touched);
- keyboard and focus (D7: after V1);
- the parity register (design c141);
/native-portandspec-measure(design, built in the same session).
Key Changes
- Kick-off (2026-11-12): the cycle opened from design c140 D14. Before it started,
mainwas fast-forwarded to c7 Web Rail (900578f, PR qpoint-io/qnative#1) on Mark's ruling "Merge c7, then clean up". Nothing was pushed. - Step 1, the name (2026-11-12,
a5ca520, D2):crates/layer→crates/qguikit, with 270 paths in 40 files.lib.rssays what QGUIkit is.- The workspace builds clean.
- Step 2, the small items (2026-11-12, D13):
- The token bridge moved here from design, with
--checkand CI'stokensjob (8b1af18). Design's private repo was out of reach for CI, and the layer is public. Design keeps a wrapper. - Six flaws fixed (
be4545f). - The ten port specs committed in
cycles/c2.expressive-range/specs/, and the bridge's source said (bc60635). - In design (uncommitted): the bridge fixture's
it_contactsynced back, the wrapper, and c140's qdash todo #4. - 175 tests pass.
- The merge thread was still active: it squash-merged c7 as e3ffc94 and reset
mainto it between this cycle's fast-forward and its first commit. The trees are identical.
- The token bridge moved here from design, with
- Pushed (2026-11-12, design c143): on Mark's word ("push this and anything else outstanding"), steps 1–2 (
a5ca520…40be83f) went toorigin/mainwith the commits stacked on them. Review stop 1's three calls stay open.