Skip to content

simplify agents view and compact chat headers - #2180

Open
kevinjosethomas wants to merge 21 commits into
mainfrom
feat/ui-agents-view
Open

simplify agents view and compact chat headers#2180
kevinjosethomas wants to merge 21 commits into
mainfrom
feat/ui-agents-view

Conversation

@kevinjosethomas

@kevinjosethomas kevinjosethomas commented Sep 10, 2026

Copy link
Copy Markdown
Member

Simplifies the agents list and shares a compact butterfly header with chat. Global agents headers show title/version, counts, and cwd; nested headers show title/version, counts, and numeric depth, with the back breadcrumb below. Chat retains its model line.

  • Adds spacing around search and shared column headings, quiets secondary metadata, and gives idle/inactive sessions the same status circle distinguished by color.
  • Hides abandoned empty saved sessions consistently during search and removes the details panel and expand carets while retaining the expansion keybinding.
  • Removes duplicate startup prompt suggestions and preserves readable headers in narrow terminals.

Validated with focused agents-view and startup tests and npm run check.

no-ticket: ui proposals tracked in https://app.notion.com/p/3d672940136f817b99a3d97c7d5fa048


Note

Low Risk
Mostly TUI presentation and list filtering; catalog data on disk is unchanged, with new tests guarding empty-session and viewport behavior.

Overview
Streamlines the agents session list and shared startup header so the view is easier to scan and less cluttered.

The agents list now drops abandoned empty saved sessions via filterEmptyAgentsViewSessions before search (while still keeping anchor, scope, heartbeat, and hierarchy-related rows). Section headers are muted, the column legend is bold, model names omit the provider prefix, and idle/inactive rows share a bold bullet (color-coded) instead of separate ✓/● glyphs. The ? actions overlay and per-row expand/collapse carets are removed; sub-agent expand still works from the keybinding. Nested scope shows a back · title › subagents line under the splash instead of a global “scope” label; the splash metadata is trimmed to agent counts plus cwd (global) or depth (nested).

Chat and agents both use a compact butterfly in BrandSplashHeader, with centered metadata and a text-only title on narrow terminals; duplicate start/search hints are removed from those headers (chat keeps an optional model line via getModelId).

Tests and render-logo.py gain coverage/styles for the compact logo and filtering behavior.

Reviewed by Cursor Bugbot for commit b192ce1. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Simplify agents view list rendering and compact chat splash headers

  • Reworks BrandSplashHeader to render a compact butterfly logo beside runtime metadata (title/version, model, cwd), with text fallback for narrow terminals; removes the automatic start-hint line.
  • Refactors AgentsViewMode to drop the actions overlay entirely, add bold shared column headings and muted section headings, replace idle/inactive glyphs with one colored bullet, and strip provider prefixes from model labels.
  • Adds filterEmptyAgentsViewSessions to exclude abandoned empty inactive records from the agents view unless they are anchored, in-scope, or have a heartbeat job, while preserving ancestor chains.
  • Adds nested-scope breadcrumbs and depth metadata; nested splash omits the working-directory line.
  • Behavioral Change: AgentsViewMode.renderActions and the actions-overlay shortcut are deleted; BrandSplashHeaderOptions no longer accepts start-hint callbacks, and PRIME_COMPACT_BUTTERFLY_LOGO replaces the larger default logo.

Macroscope summarized b192ce1.

@github-actions

github-actions Bot commented Sep 10, 2026

Copy link
Copy Markdown

Prime Agent performance — completed

PR b192ce15 compared with main 55c611fb.

Overall: 0 regressed · 0 improved · 17 no clear change.

Metric Main This PR Change
Cold startup 2,967.3 ms 2,855.5 ms ≈ -111.9 ms (-3.77%)
Warm startup 1,731.8 ms 1,690.7 ms ≈ -41.1 ms (-2.37%)
Installation 26.05 s 26.88 s ≈ +0.83 s (+3.19%)
Compressed release artifacts 11.12 MB 11.10 MB ≈ -0.02 MB (-0.16%)
Installed footprint 597.49 MB 597.42 MB ≈ -0.07 MB (-0.01%)
Idle memory, summed RSS 1,033.84 MB 1,022.10 MB ≈ -11.75 MB (-1.14%)

Python runtime

Metric Main This PR Change
Python kernel startup 126.3 ms 123.2 ms ≈ -3.1 ms (-2.46%)
Python cell round trip 0.487 ms 0.484 ms ≈ -0.003 ms (-0.57%)
Empty bash command 11.5 ms 11.0 ms ≈ -0.6 ms (-4.78%)
Bash git status 17.4 ms 16.2 ms ≈ -1.2 ms (-6.72%)
Bash 32 KiB output 12.0 ms 11.4 ms ≈ -0.6 ms (-4.81%)
35 cells / 9 shell calls 169.7 ms 160.3 ms ≈ -9.4 ms (-5.53%)
Python interrupt to done 1.471 ms 1.511 ms ≈ +0.041 ms (+2.77%)
Python state snapshot 25.9 ms 25.3 ms ≈ -0.5 ms (-2.05%)
Python state restore 359.6 ms 358.2 ms ≈ -1.5 ms (-0.40%)
Python idle RSS 34.37 MB 36.83 MB ≈ +2.46 MB (+7.14%)
Python RSS after pandas workload 96.66 MB 98.95 MB ≈ +2.30 MB (+2.38%)

Sandbox cost: ~$0.0878 — no inference calls.
Run, logs, and downloadable raw results

Methodology and samples

Main resolved at 2026-09-10T22:11:21.466365+00:00. Harness 55c611fb.
Linux x64, 4 vCPU, 8 GB RAM, 20 GB disk; region us.
Image: node:24-bookworm@sha256:be23f54a88d34e8824c741b19b91064094f92c1c97b194144bfc8b50d67258e2.
Stock tools, skills, daemon, and Python bootstrap enabled; fresh homes and a fixed Git fixture.
Onboarding is dismissed; the editor starts without a selected model or submitted prompt.
Medians shown. Arrows require a 20% timing/memory change plus absolute floors and IQR.
These practical noise floors are not a statistical significance test.
Cold means stopped Prime processes; OS filesystem caches are not flushed.
No model requests or credentials. Installation excludes build/setup time.
Installer tarballs use loopback; npm/Python downloads use the network with fresh caches.
Artifact size counts release tarballs; footprint after first use includes registry packages.
MB is decimal. Summed RSS can double-count shared pages; PSS is recorded when available.
Provisioning, setup, and build durations are recorded separately in the raw results.
Kernel probes use the installed JSONL runtime, outside the TUI/TypeScript host.
Per trial: 50 Python cells, 5 calls per shell case, and one 35-cell mix (9 git status calls).
Cell/shell values are batch means; other runtime timings are single operations.
State fixture: a 10,000-row × 8-column integer DataFrame and a 10,000-integer list.
Restore runs in a fresh kernel, including pandas imports; kernel startup is excluded.
Kernel RSS covers the isolated Python process; loaded RSS follows the pandas workload.
Costs estimate full sandbox lifetimes at configured rates, including setup and build.
Budget target: $1; not a billing cap. Checks are informational.

Metric Main successful/attempted PR successful/attempted Main spread PR spread
Cold startup 10/10 10/10 IQR 90.6 ms IQR 62.3 ms
Warm startup 10/10 10/10 IQR 38.0 ms IQR 59.9 ms
Installation 3/3 3/3 range 0.37 s range 0.55 s
Compressed release artifacts 1/1 1/1
Installed footprint 1/1 1/1
Idle memory, summed RSS 10/10 10/10 IQR 13.50 MB IQR 42.60 MB
Python kernel startup 10/10 10/10 IQR 8.3 ms IQR 5.9 ms
Python cell round trip 10/10 10/10 IQR 0.014 ms IQR 0.018 ms
Empty bash command 10/10 10/10 IQR 0.7 ms IQR 1.0 ms
Bash git status 10/10 10/10 IQR 1.1 ms IQR 1.3 ms
Bash 32 KiB output 10/10 10/10 IQR 0.8 ms IQR 0.8 ms
35 cells / 9 shell calls 10/10 10/10 IQR 11.9 ms IQR 8.2 ms
Python interrupt to done 10/10 10/10 IQR 0.094 ms IQR 0.249 ms
Python state snapshot 10/10 10/10 IQR 0.9 ms IQR 1.5 ms
Python state restore 10/10 10/10 IQR 9.7 ms IQR 19.5 ms
Python idle RSS 10/10 10/10 IQR 3.07 MB IQR 1.84 MB
Python RSS after pandas workload 10/10 10/10 IQR 3.26 MB IQR 1.98 MB

@cursor cursor Bot 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.

Stale Bugbot comment from a previous run.

Comment thread packages/coding-agent/src/modes/agents-view/agents-view-mode.ts
kevinjosethomas added a commit that referenced this pull request Sep 10, 2026
Comment thread packages/coding-agent/src/modes/agents-view/agents-view-mode.ts Outdated
@kevinjosethomas kevinjosethomas changed the title simplify agents view and session details simplify agents view and compact chat headers Sep 10, 2026

@cursor cursor Bot 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.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit b192ce1. Configure here.

{ label: "depth", value: String(getAgentsViewDepth(root)) },
];
},
this.splash = new BrandSplashHeader(VERSION, () => this.getSplashCwd(), undefined, {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Unused startup model option leftover

Low Severity

Removing getSplashModelId leaves startupModelId unread. AgentsViewModeOptions still accepts it and main.ts still passes it, so the agents view looks like it still honors a startup model.

Additional Locations (1)
Fix in Cursor Fix in Web

Triggered by project rule: Review rules

Reviewed by Cursor Bugbot for commit b192ce1. Configure here.

kevinjosethomas added a commit that referenced this pull request Sep 11, 2026
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