Skip to content

fix(ui): unify FleetView selection markers with codebase ●/○ language#155

Open
xz-dev wants to merge 1 commit into
tintinweb:masterfrom
xz-dev:simplify-pr-122-fleet-bullets
Open

fix(ui): unify FleetView selection markers with codebase ●/○ language#155
xz-dev wants to merge 1 commit into
tintinweb:masterfrom
xz-dev:simplify-pr-122-fleet-bullets

Conversation

@xz-dev

@xz-dev xz-dev commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Closes: #122

Summary

FleetView's selection markers are outliers in the extension's own visual language. Everywhere else, state is shown with a plain filled/hollow circle pair; only FleetView reaches for exotic glyphs:

Location filled hollow
conversation-viewer.ts running idle
agent-widget.ts active inactive
index.ts agent list project global
fleet-list.ts (this) (U+23FA) (U+25EF)

(BLACK CIRCLE FOR RECORD) and (LARGE CIRCLE) are niche, render inconsistently across terminal fonts, and is visibly oversized next to text. This PR aligns FleetView with the rest of the codebase: selected (accent) / unselected (dim).

These are base geometric shapes (U+25CF/U+25CB) with the broadest terminal-font coverage. Selection is already carried by the accent-vs-dim color, so a compound glyph like (U+25C9 FISHEYE — outer ring + inner dot that muddies at small terminal sizes) adds noise over plain .

The change is one line (plus a doc comment and test expectations):

- return rosterIndex === sel ? theme.fg("accent", "⏺") : theme.fg("dim", "◯");
+ return rosterIndex === sel ? theme.fg("accent", "●") : theme.fg("dim", "○");

Relationship to #122

#122 identified the same glyph problem but proposed / — introducing a third circle set instead of converging on the existing one — and bundled ~300 lines beyond the fix: a 220-line companion extension with its own /subagents-ui command and a 79-line shell script that sed -is the installed package under node_modules (breaks on every update, and its spinner patterns don't match the current source). The companion machinery is personal customization that belongs in user dotfiles, not the extension. This PR keeps only the core idea and points it at the codebase's established glyph pair.

Testing

npm run lint, npm run typecheck, npm run test all pass (731 tests).

Checklist

  • npm run lint / typecheck / test pass
  • Single-line behavioral change; no API changes
  • No breaking changes

FleetView used ⏺ (U+23FA, BLACK CIRCLE FOR RECORD) and ◯ (U+25EF, LARGE
CIRCLE) — niche, oversized glyphs that render inconsistently and clash
with the filled/hollow circle language used everywhere else in the
extension:

  conversation-viewer.ts   running ● / idle ○
  agent-widget.ts          active  ● / inactive ○
  index.ts (agent list)    project • / global ◦

Switch the selection bullet to the same pair: ● selected (accent),
○ unselected (dim). U+25CF/U+25CB are base geometric shapes with the
broadest terminal-font coverage, and selection is already carried by the
accent-vs-dim color, so a compound glyph like ◉ adds noise over ●.

Supersedes tintinweb#122, which reached for a third glyph set (◉/○) plus ~300
lines of companion extension and a node_modules patch script.
@xz-dev
xz-dev force-pushed the simplify-pr-122-fleet-bullets branch from 7d071ac to 509ef30 Compare July 18, 2026 07:16
@xz-dev xz-dev changed the title feat(ui): cleaner FleetView selection bullets (supersedes #122) fix(ui): unify FleetView selection markers with codebase ●/○ language Jul 18, 2026
xz-dev added a commit to xz-dev/pi-subagents-tintinweb that referenced this pull request Jul 18, 2026
@xz-dev

xz-dev commented Jul 18, 2026

Copy link
Copy Markdown
Contributor Author
图片

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