Skip to content

integrate/to-main-9: design-polish 02978280 into main - #774

Merged
ufna merged 36 commits into
mainfrom
integrate/to-main-9
Oct 31, 2026
Merged

ufna merged 36 commits into
mainfrom
integrate/to-main-9

Conversation

@ufna

@ufna ufna commented Oct 31, 2026

Copy link
Copy Markdown
Owner

This PR brings integrate/design-polish into main through the frozen snapshot integrate/to-main-9, design-polish at 0297828. It follows to-main-8 (#749). Main e153d1e is already merged into the branch (#759).

What lands

Pinned pre-merge reviews at the exact merged heads covered #757, #763, #764, #765, #766, #767, #768 and #770. #760 was reviewed post-merge. #769, #771 and #772 are my own UI changes, with private-launch proof in docs/validation/.

Local gate

The full pre-cut gate ran at 0297828, with logs hashed.

  • Passed:
    • all 18 lockfiles --locked;
    • check-source, separators and privacy;
    • the client-scripts, publication and ci-security suites;
    • gitleaks history and tree;
    • root clippy and tests (1458 passed);
    • core fmt and clippy;
    • Tauri clippy and tests with media;
    • Windows cross-clippy for root, core and Tauri;
    • npm check, tests, build and bundle budget;
    • the worktree lifecycle suite (private PID namespace);
    • licences.
  • Known non-CI artefacts:
    • root and Tauri rustfmt drift (CI does not format-check those crates);
    • the terminal_launch descriptor test under the gate's deliberately symlinked TMPDIR. The other 64 core test binaries pass.

🤖 Generated with Claude Code

ufna and others added 30 commits October 31, 2026 17:34
Add lazy Swarm conflict review and confirmation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merge main into integrate/design-polish after to-main-8
fix(macos): reopen Zerus from the Dock after closing its window
… (fck5)

The first screen group of zerus-fck5. The session list, its cards, the
archive bar and the archive date picker wrap their interface strings in
tr(). Session titles, agent summaries, machine and project names, paths
and branches stay as they are.
- Status captions translate only from the core's closed vocabulary, so a
  composite caption keeps its English text.
- Scope filters use per-label text tables. Qt has the machine variants;
  projects and accounts are Next-only.

trNoop() marks table sources, as Qt's QT_TR_NOOP does. i18n.coverage.test
requires every static tr()/trNoop() source to be a reviewed Qt catalog
entry or a listed Next-only English string (i18n.english.json, read only
by the test). It also requires that list to stay current and sorted, and
keeps tr() of computed values to reviewed files.

Russian captures (replay, private display) at 900x560 show no clipped
labels. The main entry is 462,674 / 500,000 bytes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Russian session list chrome and a catalog coverage test (fck5)
The second screen group of zerus-fck5 wraps these interface strings in tr():
- the session header (status, folder and shell buttons, Clear, Restore,
  actions, branch and worktree chips), the detail tabs, the empty state,
  the goal pill and DeepSeek sign-in;
- Activity: column menu, copy menu and toasts, report toggles, message
  roles, question replies, voice and video controls, attachment card,
  local-message actions, search preview, loading, empty and notice lines;
- the question card's queue navigation, Allow retry and Cancel.
Agent messages, tool output, summaries and session names stay as they are.
The header and notice captions reuse the card's closed caption vocabulary.

Russian captures at 1440x900 and 900x560 show no clipped labels.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Russian Activity chrome (fck5)
Prepare one-time Qt Windows folder imports in Layout
Retain canonical producer sessions under one configuration slot
…5wmh.89)

Every Accounts list row now shows its account's limit windows in the
Overview card's compact meters, with the time to reset from 90%. Accounts
without windows show none. One 15 s clock serves every row.

Profiles of one account on the same machine get a short id tag (the id
after its provider prefix, at least 6 characters and unique among them,
or "native") in the rows, the Machines card, the "+N more" list and the
Make default/Remove buttons.

The detail's Machines card lists one row per profile: tile, machine,
tag, sign-in state, then a Default badge or a separate Make default
button. The row and the button are siblings, never nested. On a narrow
detail the button wraps under its row so the machine name keeps its width.

Proof: private Xvfb/bus/HOME launch with synthetic accounts (a duplicate
login on one machine, 0/60/92/100% windows, a signed-out profile and a
DeepSeek API account) in dark and light at 1600 and 760 px.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Accounts: usage in list rows, duplicate-profile tags and Machines rows
Show cleanup reminder counts in the Projects worktree pane
Model update-first negative notification collision writes
cli: inspect original lifecycle receipts without replay
ufna and others added 6 commits October 31, 2026 20:02
The third screen group of zerus-fck5 wraps these interface strings in tr():
- the composer: toolbar chips (Mark as read, Jump to latest, compaction,
  Cancel send), the cache popover, the editor's label and placeholder,
  Attach, Reference file, Refresh, Allow retry, Stop and Send with their
  tooltips;
- the composer dialogs' Cancel;
- the attachments chip and list: counts, sizes, open/remove/undo labels;
- voice controls: the record chip, mode switch, cancel, playback notice,
  provider and refresh tooltips, and the microphone and discard dialogs.
Core-provided texts (status lines, cache labels, dialog titles and send
labels) and the Play/Pause pair stay as they are. The catalog has only the
session-action "Pause", which would leave a mixed toggle.

Saved drafts moves to the dialogs group: its texts come from a store table.

A Russian capture at 1440x900 shows no clipped composer labels; 900x560
leaves the composer under the overlay inspector, as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Preserve Next clone checkpoint bytes in migration evidence
Russian composer chrome (fck5)
Persist original prepared producer fences across service loss
The fourth screen group of zerus-fck5 wraps these interface strings in tr():
- the session menu entries (Stop, Rename, Move to archive, Fork, Copy
  name/reference/folder, Start fresh) and the Rename, Terminate, Forget,
  Start fresh and selection dialogs' own labels;
- New session: field labels, source and worktree segments, menus,
  tooltips, Refresh, Open terminal window, Cancel and the Start fallback;
- New worktree, Move to project, project name and Delete project;
- Saved drafts: the store marks its TEXTS, REASONS, SECTIONS and Show more
  tables with trNoop() and the dialog translates them where shown. Rust
  detail lines and error messages stay as they came.
Copy built by the core or actions-ui (dialog titles, bodies, confirm and
Start labels) stays for a later group.

Russian captures at 1440x900 and 900x560 show no clipped dialog labels.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Russian session dialogs chrome (fck5)
@ufna
ufna merged commit f1cc23e into main Oct 31, 2026
31 of 33 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