Skip to content

Stage J finish, step 1: create four pages on first use - #123

Merged
uyujkk merged 2 commits into
mainfrom
claude/ui-j-finish
Nov 10, 2026
Merged

uyujkk merged 2 commits into
mainfrom
claude/ui-j-finish

Conversation

@uyujkk

@uyujkk uyujkk commented Nov 10, 2026

Copy link
Copy Markdown
Owner

Summary

The first step of finishing stage J. 63bc706 records the inventory and a nine-step plan in UI-Structure-Plan.md; a9a9844 is step 1.

Inventory and new completion criteria (63bc706, docs only)

  • Startup baseline: the window first appears at about 1,060 ms, and about 280 ms of that creates the window XAML and all six pages.
  • The remaining 10,421 window lines are listed by area (state slots, combinations, install flow, updates and downloads, repositories and configuration, shortcut sending, previews, launcher, page wiring and the shell), with difficulty, risk and which host-interface members use each.
  • Each step is one PR, lowest risk first.
  • The completion criteria now read: no business logic in the window and about 4,000 lines or fewer, with 3,000 (step 9) optional. The maintainer approved this change.

Step 1: Settings, Dashboard, Updates and Shortcuts are created on first use (a9a9844)

  • The four pages only talk to the window through services and view models, and draw from the current state when they're created, so a language, theme or data change made before then is picked up.
  • The Dashboard's path boxes join the window's text-box tracking when the page is created.
  • Navigation, the command palette, nav badges, the first-run guide and the tray all use the same page lookup, so they work before a page exists.
  • The Online and workspace pages are still created with the window (steps 3 and 7).
  • Settings balance fix (follow-up to Settings: even out the two columns on wide windows #119): the balance ran once and could run before the groups were laid out, so the English layout differed between light and dark. It now waits for the group heights and balances again once the panels settle, at most a few rounds per width.

Startup (startup.log, median of 7 runs each, from process start)

Start page First window, before After Creating pages, before After
Dashboard 1,065 ms 989 ms 280 ms 127 ms
Workspace 1,055 ms 936 ms 278 ms 126 ms

Test plan

  • scripts\test-all.ps1: 1,788 Core tests, Release build 0 warnings, Core coverage 94.0% line / 88.2% branch
  • UI tests 64/64 on the same build, including the page round-trip tests. The new PageHostTests:
    • start on each of the six pages, switch to English and the dark theme, then visit every page;
    • check each shows the English title and dark theme, whether it was created before or after the change.
  • Code-style check
  • Screenshots of Dashboard, Settings, Updates and Shortcuts (zh/en/ru × light/dark, 1400×900) match the build before the change. The only differences are a few edge pixels and the English dark Settings layout, which is the balance fix.
  • Full package with the real mouse: started on Updates, Shortcuts and the Dashboard; each time changed language and theme from the lists and switched pages 12 times. No errors.

🤖 Generated with Claude Code

uyujkk and others added 2 commits November 10, 2026 12:24
Startup baseline from startup.log (median of 7: first window at about
1,060 ms; the six pages take about 280 ms of it), what on-demand pages
need, the remaining 10,421 window lines by function with their users and
risk, how IShortcutOverlayActions (22), IOnlineHost (47) and IWorkspaceHost
(77) split into services, and a nine-step plan with the window size after
each step.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Settings, the dashboard, Updates and Shortcuts are made the first time they
are shown and kept from then on (the workspace and Online pages are still made
with the window; they follow in steps 3 and 7). They talk to the window only
through AppServices and their view models and draw from the current state when
made, so language, theme and data changes before then need no catching up;
the dashboard's path boxes join the window's text-box tracking when it is made.

Startup (startup.log, median of 7, from process start):
- starting on the dashboard: first window 1,065 -> 986 ms; window XAML and
  pages 280 -> 123 ms;
- starting on the workspace: first window 1,055 -> 937 ms.

The Settings page's column balance (d8b9aae) ran once and could miss heights
that were not laid out yet, so the same window balanced differently between
runs; it now waits for the groups' heights and balances again when the panels
settle, at most a few rounds per width.

The completion criteria in UI-Structure-Plan.md now read: no business logic
in the window and about 4,000 lines or fewer; 3,000 is optional (step 9).

A UI test starts on each page, switches to English and the dark theme, and
checks every page, made before or after the change, shows both.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@uyujkk
uyujkk merged commit 1c2fb01 into main Nov 10, 2026
4 checks passed
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.

1 participant