Skip to content

Shell stack: upgrade to gpui-kit 0.8.1 #74

Closed

Description

@elementalvoid

What to build

The app builds, runs, and passes its suite on gpui-kit 0.8.1 with no behaviour change, so the component tickets that follow are built on the fixed focus, keyboard, and accessibility behaviour of 0.8 instead of working around 0.7.2.

This is a prefactor, not a feature. Nothing a user sees should change.

Acceptance criteria

  • The workspace pins gpui-kit 0.8.1 exactly, as the shell stack is pinned today, and the pin's rationale in the manifest and in ADR 0001 is updated to say why.
  • The dependency graph holds a single gpui-pre: the tray's backend range must still resolve to the version 0.8.1 requires, and the lock file must not carry two copies.
  • The upstream changes the 0.8.0 and 0.8.1 notes call out are applied where the app uses them: modifier helpers that now need the app context, key bindings that now require static strings, and the scroll-wheel input rename.
  • cargo test --workspace is green. Test bodies are not changed except where an upstream signature forces it.
  • The app renders under Xvfb in both themes, and the captured views match the current screenshots apart from spacing owned by the components themselves.
  • macOS, Windows, and Linux behaviour is unchanged: the tray, the menu bar items, and the window show/hide path still work on their host platform.

Notes

The tray is the risk in this ticket, not the components: gpui-tray 0.1.4 asks for gpui-pre ^0.3.4, which admits the version 0.8.1 pins, so no tray bump is expected — but verify it rather than assuming, and stop if the graph wants two copies.

Activity

  1. elementalvoid commented on Oct 30, 2026

    @elementalvoid
    OwnerAuthor

    Landed on the integration branch, not main: b39d6ba on integration/kit-surface (commits ee4996d + 78ac2da).

    Gate on the merged tree: cargo fmt --check clean, cargo clippy --workspace --all-targets -D warnings clean, cargo test --workspace 860 passed / 0 failed / 2 ignored. One gpui-pre (0.3.10) in the graph; gpui-tray unchanged at =0.1.4.

    Review on both axes found one blocker, fixed before merge: the bump loosened the settings role helper to accept TextInput | PasswordInput, so it stopped asserting the role at all. It now takes the expected role per field and asserts it. ADR 0001's additive note was corrected to record the three breakages this app actually paid for, and to drop two the release did not require here.

    Closing when the full GPUI-Kit stack merges to main. Still manual as recorded: macOS/Windows tray, menu bar, window show/hide, and CI's MSVC run.

  2. elementalvoid commented on Oct 30, 2026

    @elementalvoid
    OwnerAuthor

    The whole stack is now pushed as a buildable branch: integration/kit-surface at 13961eb, 50 commits off main (which is untouched at 2e9c838).

    All nine tickets are implemented and merged there — #74-#82 plus this one, with #83 closed on its verdict. Each ticket's own branch is deleted; its work is reachable through the merge commits, whose messages record what the reviews found and what was fixed.

    Gate on that tip: cargo fmt --all -- --check clean, cargo clippy --workspace --all-targets -- -D warnings clean, cargo test --workspace 902 passed, 0 failed, 2 ignored.

    These tickets stay open until the branch has been built, released and tested, and merges to main.

    Still manual, as each ticket recorded: no real screen reader on any platform (announcement behaviour is source-argued from the accesskit adapters, not heard), and no macOS/Windows runtime — tray, menu bar, window show/hide and the MSVC CI run are unverified here.

    Filed out of scope along the way: #85 (a wide row is dropped from a drag copy), #86 (no kit icon assets registered, so every caret and check mark is invisible), #87 (no copy control for the bundle folder), #89 (logs rows still on the house label helper).

  3. elementalvoid commented on Oct 31, 2026

    @elementalvoid
    OwnerAuthor

    Landed in main at 35691b2, merged from integration/kit-surface (CI green at 43223e2). Gate on the merged tree: cargo fmt --all -- --check, cargo clippy --workspace --all-targets -D warnings, cargo test --workspace — all clean.

    What the review changed. The bump loosened the settings role helper to accept TextInput | PasswordInput, which stopped it asserting the role at all: a masked Server URL would have passed. It now asserts the expected role per field. ADR 0001's addendum records the three breakages this app actually paid for — the scroll rename, Keystroke::unparse taking the host OS, and the masked-input role — and drops the two the release did not require here. The graph holds one gpui-pre (0.3.10) and gpui-tray is unchanged at =0.1.4.

    Still manual. macOS/Windows tray, menu bar, window show/hide, and the MSVC CI run: none exercised from the development host.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestready-for-agentFully specified, ready for an AFK agent

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions