Skip to content

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

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

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
图片

tintinweb added a commit that referenced this pull request Jul 22, 2026
…#155)

FleetView's selection markers (⏺ U+23FA / ◯ U+25EF) were the only place
in the extension using that glyph pair — everywhere else state is shown
with ●/○ (U+25CF/U+25CB), which has the broadest terminal-font coverage
(◯ renders visibly oversized in many fonts). Selection is already carried
by the accent-vs-dim color, so the exotic glyph added nothing.

Aligns fleet-list.ts with conversation-viewer.ts and agent-widget.ts:
● selected (accent) / ○ unselected (dim), and updates the test expectations.
@tintinweb

Copy link
Copy Markdown
Owner

thx, fixed with 4bbab47

@tintinweb tintinweb closed this Jul 22, 2026
@xz-dev
xz-dev deleted the simplify-pr-122-fleet-bullets branch July 23, 2026 06:25
15wtyuan pushed a commit to 15wtyuan/pi-subagents that referenced this pull request Jul 24, 2026
Resolved conflicts:
- CHANGELOG.md: keep our [Unreleased] block above upstream's [0.14.3]
- README.md: keep SessionView description, adopt upstream tintinweb#155 ●/○ markers
- src/ui/fleet-list.ts: keep renderFleetBar delegation (dropped inline dup)
- src/ui/fleet-roster.ts: adopt tintinweb#155 ●/○ selected/unselected markers
- src/index.ts: keep resolve() name-lookup + adopt upstream tintinweb#159 abortable signal in get_subagent_result; cancelNudge uses record.id
- test/fleet-list.test.ts: keep SessionView tests, drop obsolete ConversationViewer cursor-follow + steer-composer tests (viewer deleted in Task 9)

Tests: 733 passed / 23 failed (all pre-existing Windows-env artifacts; 0 new regressions).
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.

2 participants