fix: polish activity recents and browser ui#54
Conversation
bdd56d3 to
6c6fc09
Compare
8ccb7c7 to
5224161
Compare
7ffed4b to
99a20d0
Compare
99a20d0 to
5e465e3
Compare
|
| Filename | Overview |
|---|---|
| packages/desktop/src/main/browser/index.ts | Adds scaleBrowserBounds helper and stores scaled bounds in lastBounds; re-attachment path is correct since lastBounds is the final physical-pixel value. |
| packages/desktop/src/renderer/src/shared/browser/use-bounds.ts | Adds matchMedia pixel-ratio listener chain and visualViewport events; clears lastBoundsRef before rescheduling on ratio change to force a fresh bounds send. |
| packages/desktop/src/main/subagents/runtime.ts | Removes concurrency cap, timeout, and logs; switches to Promise.all over all agents. Bare session.dispose() in finally could surface a misleading error to the caller. |
| packages/desktop/src/renderer/src/shared/turn/subagents.tsx | Removes log-list UI; sub-agent rows are static while running and only expandable with a meaningful completed summary; uses new ShimmerText for running state. |
| packages/desktop/src/renderer/src/shared/turn/detail.tsx | Replaces detailCount with detailMetric, hides metric for sub-agent events, adds SubagentAvatars, switches to fade-in ChevronDown, removes error-specific text-danger color. |
| packages/desktop/src/renderer/src/shared/workspace/picker.tsx | Adds collapsed prop to show icon-only pill when a session has turns, and shows branch name in tooltip label. |
| packages/desktop/src/renderer/src/shared/turn/thinking.ts | New helper normalizing bold title lines in thinking blocks into ### headings and collapsing excess blank lines. |
| packages/desktop/src/renderer/src/shared/turn/shimmer.tsx | New shared ShimmerText component extracted from the inline shimmer animation previously duplicated in subagents.tsx and working-label.tsx. |
Sequence Diagram
sequenceDiagram
participant R as Renderer (use-bounds)
participant IPC as IPC Bridge
participant M as Main (browser/index)
participant V as WebContentsView
R->>R: ResizeObserver / visualViewport resize
R->>R: scheduleBounds() → syncBounds(cssPixelBounds)
R->>IPC: browserBounds(cssPixelBounds)
IPC->>M: setBrowserBounds(sender, cssPixelBounds)
M->>M: scaleBrowserBounds(bounds, sender.getZoomFactor())
M->>M: "lastBounds = scaledBounds"
M->>V: view.setBounds(scaledBounds)
Note over R: zoom/devicePixelRatio changes
R->>R: handlePixelRatioChange()
R->>R: "lastBoundsRef.current = null"
R->>R: scheduleBounds() → forced resend
R->>R: bindPixelRatioListener() re-register media query
R->>IPC: browserBounds(cssPixelBounds)
IPC->>M: setBrowserBounds(sender, cssPixelBounds)
M->>M: scaleBrowserBounds(bounds, newZoomFactor)
M->>V: view.setBounds(newScaledBounds)
Reviews (7): Last reviewed commit: "fix: use down chevron for event rows" | Re-trigger Greptile
Summary
Polishes the activity / thinking surface, sub-agent rendering, workspace dock, and the browser view, and simplifies the sub-agent runtime by removing hard limits.
Added
ShimmerTextcomponent shared by the working label and running sub-agent names.folder (branch)for git repos, plain folder name otherwise.**title**lines in thinking are normalized into compact subheadings (thinkingMarkdown).detailMetric,thinkingMarkdown,subagentExpandable,subagentSummary, and browser bounds zoom scaling.Changed
text-xs.Removed
×N) and sub-agent trailing metrics.logscollection path (field, per-event push, IPC copy, schema) — logs were never displayed.text-dangerstyling on activity detail rows (errors now render in neutral event-list colors).UX / behavioral changes
subagent_spawnmay request any number of tasks. There is no automatic timeout — a hung agent stays pending until the run is cancelled (cancellation still works via abort + session dispose).Validation
pnpm checkpnpm --filter @start/desktop test(52 files, 290 tests)