Reproduced twice with cargo run -p tcode-ui --example phone on a throwaway profile paired to a local headless host: tapping Back from an open thread to the Threads list aborts with a debug panic at gpui/src/window/a11y.rs:415 Duplicate a11y node id. Not yet localized: it may be Tcode's element ids reused across the two pages or the gpui a11y layer; run the CONTRIBUTING "Localize" step first. Log captured during the design pass at /tmp/tcode-design-b-phone-crash.log on the maintainer's machine. This blocks phone screenshots of navigation flows.
Localization (from the A2 worker, 2026-10-08)
Reproduces with synthetic threads that have no pull-request links, so it is not caused by the new badge. Cause is in the dependency, gpui-fast 3755a552: crates/gpui/src/window.rs:4188 Window::transact rolls back failed list prepaint state but not a11y.nodes; elements/list.rs:1397/1429/1649 retries the prepaint, and window/a11y.rs:415 then rejects the duplicate node id. Instrumentation showed the same full GlobalElementId arriving twice (not a hash collision). A temporary external GPUI checkout that cloned and rolled back the a11y nodes in Window::transact made the same native phone navigation succeed; the diagnostic checkout was deleted and nothing is carried in the tree. Impact: debug macOS native navigation with accessibility active (assistive technology or computer-use automation); release behaviour not tested. Per CONTRIBUTING step 5 this is carried until upstream changes; acting on the upstream repository is the maintainer's call.
Reproduced twice with
cargo run -p tcode-ui --example phoneon a throwaway profile paired to a local headless host: tapping Back from an open thread to the Threads list aborts with a debug panic at gpui/src/window/a11y.rs:415Duplicate a11y node id. Not yet localized: it may be Tcode's element ids reused across the two pages or the gpui a11y layer; run the CONTRIBUTING "Localize" step first. Log captured during the design pass at /tmp/tcode-design-b-phone-crash.log on the maintainer's machine. This blocks phone screenshots of navigation flows.Localization (from the A2 worker, 2026-10-08)
Reproduces with synthetic threads that have no pull-request links, so it is not caused by the new badge. Cause is in the dependency, gpui-fast 3755a552:
crates/gpui/src/window.rs:4188Window::transactrolls back failed list prepaint state but nota11y.nodes;elements/list.rs:1397/1429/1649retries the prepaint, andwindow/a11y.rs:415then rejects the duplicate node id. Instrumentation showed the same fullGlobalElementIdarriving twice (not a hash collision). A temporary external GPUI checkout that cloned and rolled back the a11y nodes inWindow::transactmade the same native phone navigation succeed; the diagnostic checkout was deleted and nothing is carried in the tree. Impact: debug macOS native navigation with accessibility active (assistive technology or computer-use automation); release behaviour not tested. Per CONTRIBUTING step 5 this is carried until upstream changes; acting on the upstream repository is the maintainer's call.