Skip to content

fix(web): use Linux icon in legacy sidebar

MacroscopeApp / Macroscope - UI Consistency failed Aug 28, 2026 in 1m 29s

UI Consistency: 1 new finding on latest commit

apps/web/src/components/LegacySidebar.tsx (~2330-2331) — the new ContainerIcon → LinuxIcon swap in the project-header environment badge leaves the element inconsistent with its own labelling and with the rest of the app:

  • The badge's aria-label ("Local sandbox project") and tooltip ("Local sandbox: …") are unchanged and OS-neutral, while the glyph now asserts Linux. The underlying signal (allRemoteMembersAreDesktopLocal, derived from isDesktopLocalConnectionTarget) only means "host-managed local backend" via a local: connection id and carries no OS.
  • Two comments that documented this behavior are now stale: LegacySidebar.tsx ~398-402 ("the project header already shows a container icon for desktop-local projects") and apps/web/src/sidebarProjectGrouping.ts ~18-22 ("so the project header can pick a container icon").
  • settings/ProviderSettingsPanel.tsx (~157/165) still renders desktop-local as lucide LaptopIcon with "Local device", so the PR now leaves three distinct glyphs for the same environment class.

Suggested fix posted inline: resolve the desktop-local glyph through one shared helper (as already suggested on BranchToolbarEnvironmentSelector.tsx) and update the two "container icon" comments.

Prior findings on Sidebar.tsx (row glyph vs. SidebarThreadTooltip / SidebarSearchResultRow, still ServerIcon) and BranchToolbarEnvironmentSelector.tsx (primary/desktop-local/cloud mapping duplicated in three places) remain unaddressed but were not re-posted.

Details

Note

Your check run agent prompt is: .macroscope/check-run-agents/ui-consistency.md
More information about how Check Run Agents work can be found in our Help Center.

Scope reviewed

Merge base f276e63 → head 8f6ec6e, limited to apps/web/src/**/*.{ts,tsx,css}.

New work since the previous run of this check (77438fc): merge of main (63e0b66) plus 8f6ec6e "fix(web): use Linux icon in legacy sidebar", which replaces ContainerIcon with LinuxIcon in SidebarProjectItem's environment badge.

Verification performed

  • git grep ContainerIcon at head: no remaining usages, confirming the legacy glyph is fully gone while the comments referencing it remain.
  • Read isDesktopLocalConnectionTarget (apps/web/src/connection/desktopLocal.ts) — classification is purely the local: connection-id prefix on a BearerConnectionTarget; no platform field is consulted.
  • Enumerated all desktop-local icon surfaces: Sidebar.tsx (LinuxIcon vs ServerIcon), LegacySidebar.tsx (LinuxIcon vs CloudIcon), BranchToolbarEnvironmentSelector.tsx (MonitorIcon/LinuxIcon/CloudIcon), settings/ProviderSettingsPanel.tsx (LaptopIcon).
  • Checked surrounding labelling in LegacySidebar.tsx 2316-2342 and the grouping comment in sidebarProjectGrouping.ts 18-22.

No Tailwind/CSS ownership, scroll-mask, theme-variant, or environment-routing violations were introduced by the changed lines; icon sizing classes (size-3, size-3.5) match the elements they replaced.


🔍 Agent activity — 8 tool calls

💭 I'm checking the PR's current state at the new head commit to see if the code changed in response to my earlier comments about the duplicate glyph in LinuxIcon.tsx and the Sidebar.tsx issue. The current diff now shows LegacySidebar.tsx replacing ContainerIcon with LinuxIcon, which seems to address the first comment. I want to compare the diff between the prior commit and the current head to confirm what's changed and check the other two issues around the row/tooltip mismatch and the duplicate mapping in BranchToolbarEnvironmentSelector.

1. git_tools — 77438fc..8f6ec6e

2. git_tools — f276e63..8f6ec6e

💭 There's a new commit, 8f6ec6e, that fixes the legacy sidebar to use the Linux icon instead of ContainerIcon, addressing comment #1. I want to check that commit's diff.

3. git_tools — 8f6ec6e

💭 Comments #2 and #3 were already flagged previously without code changes, so I shouldn't re-post duplicates. Now I'm checking the new commit for fresh findings—LegacySidebar switched to LinuxIcon where ContainerIcon was, so I want to verify the nearby label still reads "Local sandbox" consistently, and also check SidebarThreadTooltip usage in Sidebar.tsx. The ServerIcon in the tooltip was already flagged, so I'll skip that and just review LegacySidebar around lines 2300-2345 for consistency.

4. browse_code — apps/web/src/components/LegacySidebar.tsx

5. git_tools — ContainerIcon

💭 I'm noticing the icon now matches the "Local sandbox" wording visually, but I need to check whether the aria-label or tooltip text in Sidebar.tsx still uses different language than what's displayed, since that mismatch was the original issue flagged. The deeper problem is that this fix propagated the same wrong assumption—asserting Linux via the Tux icon—to a second surface where the platform genuinely isn't known, since isDesktopLocalConnectionTarget just means a host-managed local backend that could be running on any OS. I want to verify how isDesktopLocalConnectionTarget and allRemoteMembersAreDesktopLocal are actually defined to confirm this.

6. git_tools — isDesktopLocalConnectionTarget

7. git_tools — allRemoteMembersAreDesktopLocal

💭 I'm noticing an inconsistency: LegacySidebar now shows a LinuxIcon, but its aria-label and tooltip still describe it as "Local sandbox project," while other parts of the app (ProviderSettingsPanel, Sidebar.tsx) use LaptopIcon or ServerIcon for the same "local device" concept. The Linux glyph seems to wrongly imply an OS-specific meaning for something that's really just "host-managed local backend." I also spot two stale comments — one in LegacySidebar.tsx around lines 398-402 and another in sidebarProjectGrouping.ts around lines 18-21 — both still referring to a "container icon" that no longer matches the new LinuxIcon change. Both files are in scope, so I plan to flag this concretely with a single focused comment on LegacySidebar.tsx line 2331, since this is a new inconsistency introduced by the author's fix to my earlier comment. I confirm the previously flagged Sidebar/BranchToolbar duplication issue hasn't been addressed, but I don't need to repeat it, and the merge commit from main isn't relevant here. Now I want to double check the ProviderSettingsPanel behavior to make sure my understanding is accurate. I should note the two explanatory comments are now stale, and the same element still reads "Local sandbox," so the glyph asserts an OS the label and underlying signal don't back up. The fix is straightforward: update the comments and use a shared helper. I'll locate the exact line in the diff (the LinuxIcon usage in the legacy sidebar) and post the inline comment there.

8. modify_pr — One new finding on the latest commit (8f6ec6e). The two prior comments on Sidebar.tsx (row vs. SidebarThreadTooltip / SidebarSearchResultRow glyph divergence) and BranchToolbarEnvironmentSelector.tsx (icon mapping duplicated across three places) still apply and are not repeated here.


Agent Credits: 57 credits

Token usage: 12 uncached input · 167,339 cache-read input · 52,183 cache-write input · 5,261 output
Agent Credits may also include non-token charges from external tools such as web research.