Skip to content

Unify compact workspace controls and stable data surfaces - #1730

Open
ZenAlexa wants to merge 14 commits into
TraderAlice:devfrom
ZenAlexa:contrib/compact-workspace
Open

ZenAlexa wants to merge 14 commits into
TraderAlice:devfrom
ZenAlexa:contrib/compact-workspace

Conversation

@ZenAlexa

@ZenAlexa ZenAlexa commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Why

The workspace needs consistent compact controls and stable geometry across navigation, settings, menus, and trading data. This shared-interface boundary addresses touching highlighted rows, disconnected Tools groups, oversized navigation, inconsistent select controls, and chart notices that move surrounding content.

Changes

  • Centralized desktop navigation at 32px, common controls at 36px, panel insets at 16px, and adjacent navigation gaps at 4px. Coarse-pointer controls retain 44px targets; narrow layouts use the existing drawer flow.
  • Consolidated choice menus, selection glyphs, switches, dialogs, help popovers, and count badges under their existing shared owners. Menus share collision bounds, scrolling, focus treatment, and long-label handling.
  • Kept the collapsed activity rail stable and rebuilt Tools groups as continuous surfaces. Integrated language settings into Overview and retained the legacy route. Project disclosures align version and status columns.
  • Reserved save-state geometry across idle, pending, success, error, and retry. Workspace save buttons keep their accessible label and dimensions during requests; failures preserve the draft and enable retry.
  • Represented the selected runtime with menu radio semantics and a fixed selection slot. Runtime dialogs restore focus to the invoking control, including reduced-motion mode.
  • Kept historical-snapshot help in a stable chart-header slot. Empty, loading, error, and populated states share the reserved plot area. Theme changes preserve chart instances and visible ranges.
  • Kept same-account data through refresh failures, scoped asynchronous responses to the selected account, and disabled position-closing actions after an account-data read fails.
  • Centralized press, disclosure, popup, image-loading, and status feedback. Shared AlertDialog content owns short-viewport scrolling; forced-color keyboard focus uses a system-color outline.

Bundled Instrument Sans, explicit CJK fallbacks, and the existing Pretext launch-label measurement remain in place. Model identity, interface profiles, backend trading execution, order semantics, and provider routing retain their existing owners.

current dev validation

merged 5da8dfcc and checked revision 0345b656 on 2026-10-13.

the updated code passed ui and uta type checks, the production demo build, and 139 existing tests across 17 files. 18 snapshot scenarios covered exact source selection, carry-forward, records outside the recent window, deletion, duplicate timestamps, restart, and late replies. details now read the source used by the chart and stay closed when that source is missing or ambiguous.

the built image preview keeps its 10px radius. keyboard focus stays visible on checkboxes in forced colors. the skeleton uses the existing 1.6s duration and stops in reduced motion. connector fields retain 14px text at desktop and 390px widths.

the broader ui suite passed 2,084 tests before these final follow-up fixes. native windows chrome, live brokers, and signed packages were not exercised.

October 6 synchronization and compatibility

Merged dev at 53baaa319 and retained the model identity and interface profiles delivered by #1728 and #1729. Preserved the current Inbox sender names, Vite+ toolchain, dependency pins, and cadence editor behavior.

Integrated #1648's disabled-control regression into the existing focus scenario. The shared Dialog owns focus containment; the replaced local focus trap stays removed.

Narrowed overlapping edits in the News collector, login screen, quote header, order-status badge, and application menu. Pairwise Git merge checks against 15 relevant open PR heads found zero additional conflict files and zero additional textual conflict hunks relative to current dev:

These checks cover pairwise textual integration at the sampled heads. Review shared primitives and tokens first, migrated consumers second, and account and chart behavior third.

Verification

Checked on October 6 against dev at 53baaa319:

  • Full UI suite: 351 files and 2,034 existing behavior cases passed (NODE_ENV=test node scripts/run-tests.mjs --path ui/src).
  • TypeScript and the production-demo build: passed (pnpm -F open-alice-ui build:demo).
  • Production Chromium scenarios exercised delayed save, failed save with draft preservation, successful retry, disabled controls and disabled fieldsets in the focus cycle, runtime keyboard selection, radio state, dialog selection state, Escape, and reduced-motion focus return.
  • The pending Save button retained its 57.15625px width and accessible name. Two explicit save attempts produced two requests.
  • Chromium, Firefox, and WebKit at 390px viewport width had no document overflow. Launch labels retained their measured 20px line height with the bundled font.
  • The existing follow-up-dialog scenario now waits for the menu's asynchronous focus handoff before sending Enter.
  • git diff --check passed.

Browser scenarios used the production demo and its fixture data. Live broker execution, managed research processes, and native Electron packaging are outside this verification. The production build emits the existing large-chunk advisory.

Current screenshots

Captured from the final production-demo tree on October 6. The desktop viewport is 1280 × 800; the narrow viewport is 390 × 844. The runtime control retains visible keyboard focus after dialog dismissal.

Desktop workspace Narrow workspace
Desktop workspace with restored keyboard focus Narrow workspace with restored keyboard focus

Workspace save pending with stable button geometry

For interactive review, navigate runtime choices with the keyboard, open the full runtime dialog, and dismiss it with Escape. Open workspace configuration, edit the name, save, and repeat after a failed request. Inspect toolbar wrapping at a narrow viewport and confirm that focus returns to the invoking control.

@vercel

vercel Bot commented Oct 1, 2026

Copy link
Copy Markdown

@ZenAlexa is attempting to deploy a commit to the luokerenx4's Team Team on Vercel.

A member of the Team first needs to authorize it.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

# Conflicts:
#	ui/src/components/credentials/CredentialModal.tsx
Preserve merged model identity, interface profiles, and Inbox sender names.
Keep pending save geometry and runtime selection semantics in shared controls.
Retain route ownership for concurrent workspace and news contributions.
Retain the shared Dialog focus owner and the disabled-control regression
from the workspace focus fix. Restore the bundled font used by launch labels.

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants