diff --git a/TASKS.md b/TASKS.md index 9caf9db..4cb8ecc 100644 --- a/TASKS.md +++ b/TASKS.md @@ -188,7 +188,7 @@ Per-component lines live in `tasks/`. Tags there: - [x] T51 Showcase · an apps page fed by a public repo — `tasks/showcase.md` - [x] T52 Logo · an isometric mark for the header, favicon and OG image — `tasks/logo.md` - [x] T53 Panics · handlers move into `new`, live states log and show, asserts audited — `tasks/panics.md` -- [ ] T54 GPUI Kit · Ely and Kit share one app and one window — `tasks/kit.md` +- [x] T54 GPUI Kit · Ely and Kit share one app and one window — `tasks/kit.md` ## T00 detail diff --git a/tasks/kit.md b/tasks/kit.md index 126fe73..c250759 100644 --- a/tasks/kit.md +++ b/tasks/kit.md @@ -18,7 +18,7 @@ Rules: the work order follows dependencies, since the PRD has no chapter for it. - [x] K03 Assets: `init` checks every embedded file through the app's source; one source serves Ely's files and another's - [x] K04 `compat/kit`: a crate on the newest Kit that runs both libraries in one window, in `scripts/check.sh` and CI - [x] K05 Docs: README, the site's guide, AGENTS.md -- [ ] K06 Acceptance table +- [x] K06 Acceptance table ## Log @@ -29,3 +29,20 @@ One line per item: what changed, what stayed and why, review rounds. - K04: `compat/kit`, its own workspace, opens Ely's root scope inside Kit's `Root` and tests Tab through both libraries in each `init` order (red with K02 undone), Kit's dialog from an Ely button by key and by pointer, Ely's dialog over Kit's fields, and one asset source for both. `check.sh` resolves it afresh and holds `gpui-kit` to the newest release, so a Kit release on another gpui fails resolution naming `gpui-pre` (shown with Kit 0.7.0). Review: 2 rounds. - K05: the site's GPUI Kit guide (`/docs/gpui-kit`): dependencies, the start in four steps, focus, two themes, the inspector; the README points to it. `compat/kit/examples/start.rs` is a whole app, compiled by `check.sh` and run on Windows, where both libraries draw in one window. The guide says an app's Cargo keeps the newest Kit that shares Ely's GPUI, and names no unreleased Kit feature. Review: 2 rounds. - K04, reopened: CI's macOS job colors Cargo's output, so `cargo search` hid the version from `sed` and `check.sh` stopped there; the search now passes `--color never` (red with `CARGO_TERM_COLOR=always`, green with the flag). Review: round 3. +- K06: the table below; every row checked against the commits, the reviews and CI. Review: 1 round. + +## Result + +| Surface | Before | Now | Proof | +|---|---|---|---| +| gpui | Zed's git at `1a28cff`; Kit on `gpui-pre =0.3.8`: two crates whose elements do not mix | `gpui-pre =0.3.8` for gpui, gpui_platform and gpui_web | The lock holds one copy of each; Kit 0.7.1 and Ely resolve to one `gpui-pre` in `compat/kit` | +| Ely on the new gpui | — | Builds natively and for wasm32 | `check.sh`; the web build (20.0 MB) drawn in headless Chromium | +| Tests' leak guard | `gpui-pre` dropped leak detection from `test-support` | `test-support` turns on `gpui/leak-detection` | `tests::a_leaked_entity_fails_its_test`, red without it | +| Actions, key contexts | No collision | Unchanged | Namespaces `ely*` against Kit's `root`, `input`, `ui`, `dock`, `number_input`, `inspector` | +| Tab | No context: Kit's code editor won or lost by the order of `init` | Under `ElyFocus`, the scope's context | `a_deeper_context_keeps_its_own_tab_whatever_init_ran_last`; `compat/kit` `focus`, red with the binding undone | +| Assets | One icon checked; Kit's source passed and Ely's other files went missing | Every bundled file checked; `Assets::before` joins Kit's | `assets::tests`; `compat/kit` `assets` | +| Root and dialogs | Untested | Ely's scope inside Kit's `Root`; each library's dialog keeps Tab and hands focus back | `compat/kit` `dialogs`: by key, by pointer, Ely's over Kit's fields | +| Themes, locales, inspector | Separate | Separate, by design; the guide names both switches and the inspector order | The guide; `compat/kit/examples/start.rs` | +| A real window | — | Both libraries draw in one window | `start` run on Windows | +| Kit's next release | Unwatched | `check.sh` asks for Kit's newest release and fails on another gpui, naming `gpui-pre` | Shown with Kit 0.7.0; CI run 37661560047: macOS ran 1,693 Ely tests and the 6 in `compat/kit`, and five platforms built | +| `gpui-fast` | — | Out of scope, at the owner's word | Unreleased in Kit 0.7.1 |