Repository navigation
Update card: the What's New popover fits its lines; the Ready card is tighter - #34477
Conversation
…rd is tighter Leo: "also MAN this looks ugly... stretched out wasted space". The update-ready popover with no change list was the full 340 pt menu width, with See release notes pushed to the far edge under a rule. It is now as wide as its lines (the page reports its width; the host sizes to it, at most the menu width), with the link directly under the from line. The Update Ready card's row gaps go from 8 to 6 pt. The Updated card after an automatic install that relaunched cmux behind another app now says "Updated to Nightly in the background". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Unclear: CI failed on
Failures:
Matched log linesNot re-run automatically: Written by red: web / Web status; a job it gathers is red on this change (its line here); do not merge until green; see lane-rules Shipped in:
|
|
Owned by an agent session · session |
…dater b7c9441 (#34477) added 9 App lines (arch ratchet app_lines +9): the "delivery": "background" patch of the Updated card's JSON, in the App's UpdateSurfaceProvider. This change moves that logic to CmuxNextUpdater, which owns UpdateHighlights and UpdaterService and already declares CmuxNextSettings (JSONValue): - UpdateHighlights.surfaceJSON(background:) encodes the highlights and adds "delivery": "background" when background is true. - UpdaterService.surfaceHighlights(updated:) chooses the highlights of the Ready popover or of the Updated card (the same rule as before). The provider keeps only the App facts: the surface kind and AppServices.environment.relaunchBehind. Both targets use uiSwiftSettings (MainActor default), so the isolation does not change. No Package.swift change. The behavior does not change. Takes back #34477: its App lines made the app_lines arch ratchet red. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Leo, a note about the update card: #34570 (commit What moved, to
|
…t of CmuxNextApp (app_lines +198) (#34570) * base red: move the Invite People card and rows out of CmuxNextApp The arch ratchet row app_lines is red on feat-cmux-next: CmuxNextApp Swift lines +231 over the last green arch tip 3232840. The cause is 26fd471 (#33967), which added the Invite People sheet views to CmuxNextApp (+361 lines). Later commits removed 130 App lines. This change moves the sheet views to CmuxNextNotifications, a ui-layer target that already declares CmuxNextDaemonService (the sheet model) and CmuxNextDesign (the design kit), and that CmuxNextAppTests declares: - AgentShareInviteCard (Share/AgentShareInviteCard.swift) - AgentShareInviteRowView (Share/AgentShareInviteRowView.swift) Only the presenter stays in CmuxNextApp, in the old file Share/AgentShareInviteSheet.swift (AgentShareInviteSheetPresenter: the overlay host, AppServices, the first load). CmuxNextNotifications does not declare CmuxNextIcons, so the presenter gives the card its close icon (the same NSImage.icon(.actionClose, size: 12) as before). The card is package access: its init, onClose, focusField, and the members that the compiler requires (the overrides, the required init and the text field delegate methods). The row view stays internal. No Package.swift change, no new target and no new dependency edge. The behavior does not change. AgentShareTests imports CmuxNextNotifications and gives the card an empty close image. Takes back #33967: its Invite People views are in CmuxNextApp, which made the app_lines arch ratchet red at the feat-cmux-next tip. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * base red: the update surface's highlights and JSON move to CmuxNextUpdater b7c9441 (#34477) added 9 App lines (arch ratchet app_lines +9): the "delivery": "background" patch of the Updated card's JSON, in the App's UpdateSurfaceProvider. This change moves that logic to CmuxNextUpdater, which owns UpdateHighlights and UpdaterService and already declares CmuxNextSettings (JSONValue): - UpdateHighlights.surfaceJSON(background:) encodes the highlights and adds "delivery": "background" when background is true. - UpdaterService.surfaceHighlights(updated:) chooses the highlights of the Ready popover or of the Updated card (the same rule as before). The provider keeps only the App facts: the surface kind and AppServices.environment.relaunchBehind. Both targets use uiSwiftSettings (MainActor default), so the isolation does not change. No Package.swift change. The behavior does not change. Takes back #34477: its App lines made the app_lines arch ratchet red. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…t spacing test's after() helper (#34577) * base red: the What's New brief's More line sits on the spacing scale (design tokens) check:design-tokens is red on feat since b7c9441 (#34477): the brief popover's .wn-pop-more used margin-top 2px, off the token scale. It now uses --ds-space-1 (4px), the same gap .wn-pop-all uses above it. * base red: transcript spacing test defines after() again (webviews typecheck) webviews typecheck is red on feat: test/transcript-spacing-kinds.test.ts:247 calls after(), which #34464 (1e8a45b) removed together with below() while #34370 (8557b10, written on a base that still had them) added a new use. Restore both helpers as #34370 measured with them; no other change. * base red: cloudRun test names a string in its template (vp lint restrict-template-expressions) #34592 (31ffec4) builds a call label with ${params.cwd}, an unknown; vp lint treats that as an error in the pre-push web lint, so the merge service's hook refused #34577's squash. String() it; no behavior change. * base red: format three webviews files the way vp fmt --check wants feat's emoji shortcode change (#34364) left App.tsx, emojiShortcodes.test.ts and composer-emoji.browser.test.ts unformatted, so vp fmt --check fails the pre-push web lint on every webviews push. Output of scripts/web-lint.sh --fix. * base red: the Cloud start source check accepts the formatted App.tsx call vp fmt puts cloudFolderGrant.granting(folder.cwd, pickFolder(...)) on several lines, and cloudRun.test.ts read it as one line, so it failed after the format commit. The pattern now allows whitespace between the arguments. bun test cloudRun.test.ts: 21 pass, 0 fail.
Leo, on the Update Ready card's hover popover: "also MAN this looks ugly... stretched out wasted space"
The popover for an update with no change list ("What's new in nightly X / Updating from nightly Y / See release notes") was drawn at the full 340 pt menu width, with the link pushed to the far right under a rule. Most of it was empty.
UpdateSurfaces.tsx,updateSurfaces.css,surface.tsx): with no change list it is as wide as its lines (width: max-content, at most 340 px), with See release notes directly under the from line and no rule. The page reports its own width alongside its height (cmux.changelog.surface.size {height, width}), and the native host (SidebarPopoverIslandHost.fit(height:width:)) sizes the hover card to it. The popover with a change list keeps its menu width. Gallery:popover-empty(shipped, link under the from line),popover-empty-inline(link at the end of the from line),popover-empty-title-row(link at the end of the title),popover-empty-same-version. I picked the stacked one: it is the narrowest, and the link reads as its own action.SidebarUpdateCardView): the gaps between the version line, the Automatic Updates switch and Restart to Update go from 8 to 6 pt.UpdateRelaunchFocus), the card says "Updated to Nightly in the background", so it no longer seems to come with no restart. A web-only update never shows this card (whatsNew.showsUpdatedCardfollows the native version, and a web swap shows nothing, per the 2026-10-30 call), so an Updated card is always a native relaunch. New stringupdates.card.updatedBehindin all 21 locales. Gallery:card-background.Spec: design/sidebar.md (update card). References: none of Leo's update-card references are in cmux-design-references.
Risk: low. The width is used only when the page reports one, and the popover with a change list is unchanged.
Agent session: agent session
🤖 Generated with Claude Code
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Makes the What's New hover popover fit its lines for updates with no change list, tightens the Update Ready card, and clarifies the Updated card after a background update.
Changes
Written for commit 33e518c. Summary will update on new commits.