Skip to content

fix(web): browse folders from file breadcrumbs - #8910

Merged
maria-rcks merged 14 commits into
pingdotgg:mainfrom
404khai:main
Sep 2, 2026
Merged

maria-rcks merged 14 commits into
pingdotgg:mainfrom
404khai:main

style(web): format breadcrumb imports

d66eb1b
Select commit
Loading
Failed to load commit list.
MacroscopeApp / Macroscope - UI Consistency succeeded Sep 2, 2026 in 1m 56s

UI Consistency: All clear

All clear

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.

Re-reviewed FileBreadcrumbs.tsx and its FilePreviewPanel.tsx call site at head d66eb1b. Changes since the last run (e21da11) are: the popup width floor (w-max min-w-32 max-w-[min(19rem,var(--available-width))]), static labels for absolute host-path directory crumbs via isAbsolutePath, and an import reformat.

Checks performed:

  • Popup width: min-w-32 restored at the call site, so the menu no longer renders below the shared 8rem floor while still suppressing MenuPopup's default via an explicit width utility (the primitive's defaulting contract is unchanged).
  • Coarse-pointer hit target: truncate now lives on an inner span, so the button is no longer an overflow container and pointer-coarse:after:* expands as intended; the surrounding ScrollArea viewport bounds it to the 40px subheader strip.
  • Host paths: absolute-path directory crumbs render through the same BreadcrumbLabel as the current-file crumb (muted tone, tooltip, max-w-40 truncate), and every host crumb has a non-empty path, so no empty tooltip is produced.
  • Menu conventions: current-file bg-foreground/[0.08] matches MenuRadioItem's selected-row treatment and still loses to data-highlighted:bg-accent on keyboard highlight; disabled informational MenuItems match the existing empty-state pattern in OpenInPicker and PullRequestListFilters.
  • Environment routing: environmentId is threaded explicitly from FilePreviewPanel into useProjectEntriesQuery and the files:<environmentId>:<cwd> mutation key; no active-environment fallback.
  • data-current-file-crumb is preserved, so the panel's scroll-into-view selector still matches.

No new consistency violations found.


🔍 Agent activity — 11 tool calls

💭 I'm checking the current state of the file at commit d66eb1b - it looks like the w-max min-w-32 fix and the truncate fix are already applied there, so I need to compare against commit e21da11 to see what's changed since then.

1. browse_code — apps/web/src/components/files/FileBreadcrumbs.tsx

2. git_tools — e21da11..d66eb1b

💭 It looks like the head already has the earlier suggestions applied. I can't find the commit e21da11, likely due to a rebase, so I'm reviewing the current file for remaining consistency issues, starting with how the breadcrumb label wraps the file crumb and applies static styling. That styling now matches the button padding, so it's fine. The current-file menu item background matches what I already reviewed, popup width looks fine, and icon sizing is likely handled by MenuItem's svg rules. I still want to check whether the focus ring styling matches the convention used elsewhere, so I'm going to look at the button and menu components.

3. browse_code — apps/web/src/components/ui/button.tsx

4. browse_code — apps/web/src/components/ui/menu.tsx

💭 I need to figure out what's changed since the previous reviews at 748ff5c, 0226d1b, and e21da11, given the current head is d66eb1b and maria-rcks is now taking over the PR. Since e21da11 doesn't appear in the history (likely due to a force-push), I should pull the list of commits on this branch to see what's actually changed.

5. github_api_read_only — repos/{owner}/{repo}/pulls/{pull_number}/commits

💭 I see three new commits since e21da11 that touch breadcrumb readability and static host file breadcrumbs, plus an import formatting change. I want to diff the range from e21da11 to d66eb1b to check the relevant files.

6. git_tools — e21da11..d66eb1b

💭 I'm checking the host-path static label changes for UI consistency, noting that BreadcrumbLabel now adds rounded corners and padding compared to the original truncate-with-tooltip styling used for file crumbs. I notice a potential issue: the file crumb's aria-current span wraps BreadcrumbLabel fine, but for the project root crumb, the tooltip's pathLabel is set directly from crumb.path without falling back to projectName like the old code did. If crumb.path is empty for the root crumb, the tooltip would show nothing instead of the project name -- I need to check how fileBreadcrumbs generates the root crumb's path to confirm this.

7. browse_code — apps/web/src/components/files/filePath.ts

8. git_tools — isAbsolutePath

💭 Checking that host and workspace-relative path crumbs render correctly with non-empty paths, and considering whether any project or directory crumb might get rendered through the wrong breadcrumb component. The touch target sizing on the new host-path branch matches the static label styling used elsewhere, so that's consistent. I don't think the focus-ring offset difference or the pointer-coarse hit area expansion are worth flagging as issues -- they're minor aesthetic details rather than accessibility problems. I confirm the host-path static rendering keeps the same muted color as the directory crumb since it lacks the current-state styling, and the rounding on the label is harmless even though irrelevant for static text. The icon and aria-current usage inside menu items still check out fine, so I'm now scanning the FilePreviewPanel diff for any leftover unused imports that the refactor might have introduced. Beyond that lint concern, I want to check whether the header container that holds the breadcrumbs handles overflow properly now that interactive buttons live inside it, so I'm pulling up the surrounding lines around 1050-1075 in FilePreviewPanel to look at the scroll behavior.

9. browse_code — apps/web/src/components/files/FilePreviewPanel.tsx

💭 I'm noticing the breadcrumbs sit inside a ScrollArea with fade and hidden scrollbars, and the subheader height differs between normal (40px) and inline preview mode (28px). My earlier hit-box padding suggestion of 12px per side would create a 40px hit box that overflows the 28px inline strip by 6px on each edge, so I need to account for that discrepancy. Good, the fix holds up, and the horizontal pseudo-element doesn't expand the hit target sideways so that's fine too. Now I want to check whether disabled MenuItems are the established pattern for informational text like "This folder is empty" elsewhere in the codebase, so let me search for precedent.

10. git_tools — MenuItem disabled

11. git_tools — data-file-breadcrumbs|data-current-file-crumb

💭 I'm double-checking that the auto-scroll-to-current-crumb behavior still works since the attribute is preserved, and confirming the MenuItem text wrapping handles longer messages fine by default given its flex layout. Verifying the current-file highlight color still matches the pattern used elsewhere, and reasoning through how Tailwind's specificity resolves between the highlighted-state accent color and the current-file background so the keyboard highlight remains visible even on the active item. Everything checks out with no further issues found.


Agent Credits: 110 credits

Token usage: 16 uncached input · 518,638 cache-read input · 100,059 cache-write input · 6,460 output
Agent Credits may also include non-token charges from external tools such as web research.