refactor(ui): move model selection to Astryx Selector - #1714
Merged
Conversation
Astro-Han
force-pushed
the
refactor/1565-model-selection
branch
from
July 31, 2026 16:59
d42c846 to
4bcd4e5
Compare
jackwener
pushed a commit
that referenced
this pull request
Jul 31, 2026
…log (#1723) The plan-reminder edit/duplicate flow defers opening the Astryx form dialog by two requestAnimationFrames after the row menu closes (the menu stashes an intent, runs it on close, then remounts a closed form session before Astryx observes a false->true transition). Astryx Dialog restores focus on Escape to whatever was `document.activeElement` when it opened, and the menu's own close-focus-return sits in that same window. On a loaded CI runner the captured element can land on <body> instead of the menu trigger, so Escape strands focus away from the row and `expect(menu).toBeFocused()` times out. This made the `plan-reminders` E2E flaky on docs-only PR #1719 (same code tree passed on #1714 and failed on #1719; a rerun went green), and the suite runs with retries: 0 so the flake blocks unrelated PRs. Keep a ref to each row's menu trigger and re-focus it inside the deferred intent, right before the dialog opens, so the dialog captures and later restores focus to the row's trigger deterministically — independent of the menu-close vs deferred-open micro-timing. Verified: packages/ui typecheck + 296 contract tests, biome lint, and the plan-reminders E2E (12/12 with --repeat-each 6).
6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Refs #1565 (Slice 8, flat PR B: model selection/search).
ui.tsx; no Collapsible, Accordion, Toggle, or Progress implementation is changed.This is an independent flat boundary: it builds and tests from current
main, does not depend on another PR, and does not change CommandPalette, SearchModal, mention popup, PowerSearch, chat turns, tool activity, or task ledger ownership.Verification
npm --workspace @maka/ui test— 285 passed.npm --workspace @maka/desktop test— 2700 passed, including workspace dependency builds and console/a11y/copy checks.npm --workspace @maka/desktop run build— passed.npm --workspace @maka/desktop run typecheck— passed.npm --workspace @maka/desktop run build-storybook— passed.npm run lint— passed.npm run format:check— passed.apps/desktop/test-results/model-selector-live.png(local ignored evidence, not a screenshot baseline). The live DOM/computed-style checks cover trigger/popup hit testing, provider mark/label alignment, long labels, and adjacent Thinking Level alignment.Capability changes
Review focus
Review the ownership subtraction: Maka maps product data and owns session-keyed persistence admission; Astryx remains the sole search, option, optimistic UI, keyboard, focus, scrolling, and popup authority. General Settings keeps its existing settings-save owner, and new-chat selection is synchronous local draft state.