Advance the zed submodule to the reachable remorses/zed gpuix commit that stores window root-key listeners in frame paint data and preserves them across cached view reuse.
Replace the earlier global-key call with Window::on_root_key_event and keep browser copy on the same compact GPUI listener used by desktop, without a GPUIX document listener or extra web-sys features.
Track the gpuix fork branch in .gitmodules and document that reusable GPUI fixes belong there when they remove GPUIX workarounds. Keep gpui-macos-embedded limited to the focused upstream AppKit PR.
Validation: GPUI cached-view regression, BrowserWebGPU copy and paste round trips, Wasm release build, 124 native tests, 26 React input and selection tests, 11 chat tests, rustfmt, and lintcn.
Session: ses_fcaa8e467ffeRyHjx14CICsOfM
Run GPUI through its native platform architecture on macOS, Windows, Linux, and FreeBSD. Keep the embedded AppKit pump on macOS and route non-macOS commands through a dedicated GPUI UI thread.
Replace the painted input label with a platform-backed editor model. Add multiline layout, IME ranges, grapheme-safe navigation, caret and selection painting, clipboard actions, undo and redo, horizontal and vertical scrolling, native focus control, and textarea registration.
Update the native test renderer, generated declarations, platform dependencies, submodule target, and development-loop documentation to match the new runtime.
Session: ses_fd70de910ffe1g2yG1yAkCjeLu
Replace the custom NodePlatform, window, dispatcher, display, clipboard, and winit event translation with the real gpui_macos MacPlatform and MacWindow implementations.
Add remorses/zed as the zed submodule on its gpuix branch. The fork adds a main-thread embedded AppKit mode with non-blocking event pumps, including the after-wait run-loop phase required to start GPUI frame sources and present Metal drawables.
Point Cargo at the submodule GPUI crates, remove the custom-platform dependency stack, invalidate the retained GPUI window through ApplicationHandle after React commits, and keep the paced JavaScript frame loop responsible only for pumping AppKit.
Remove obsolete platform plans, update build and development guidance, and add the native package changeset.
Validated with 82 Rust tests, 145 React tests, 11 example tests, live counter rendering and click updates, native transcript scrolling, and live text selection.
Session: ses_fdb06bf3affe9nMT6DamndI4zV