Skip to content

feat(app): add inline file browser tabs - #35829

Merged
Hona merged 1 commit into
anomalyco:devfrom
Hona:review-add-files
Jul 8, 2026
Merged

feat(app): add inline file browser tabs#35829
Hona merged 1 commit into
anomalyco:devfrom
Hona:review-add-files

Conversation

@Hona

@HonaHona commented Jul 8, 2026

Copy link
Copy Markdown
Member

Summary

  • add the inline Open File tab, project tree, and TanStack-backed file search to the V2 review pane
  • integrate preview and pinned file tabs with the existing session layout owner
  • add accessible search navigation and regression coverage for file, context, and review tab interactions

Testing

  • focused app unit tests
  • app, session-ui, and E2E typechecks
  • review Open File, tab-switch, and stacked-terminal Playwright regressions
  • full workspace typecheck via pre-push hook

@Hona
Hona requested a review from Brendonovich as a code ownerJuly 8, 2026 01:42
CopilotAI review requested due to automatic review settings July 8, 2026 01:42
@HonaHona added the beta label Jul 8, 2026

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds an inline “Open File” file-browser experience to the V2 review pane/session side panel, including a placeholder tab, TanStack Query–backed file search, and updated tab-preview/pinning behavior, plus supporting unit/E2E coverage.

Changes:

  • Introduces a reusable SessionFilePanelV2 wrapper and refactors the V2 review toolbar into toolbarStart/toolbarEnd slots.
  • Adds an inline “Open File” tab with searchable results (ARIA combobox/listbox wiring) and double-click to open permanently.
  • Refactors session tab state to support “preview” tabs and the Open File placeholder, and adds regression/unit tests around these flows.

Reviewed changes

Copilot reviewed 19 out of 19 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
packages/session-ui/src/v2/components/session-review-v2.tsxRefactors review pane to render inside the new shared file panel and adds ARIA combobox props for the filter input.
packages/session-ui/src/v2/components/session-file-panel-v2.tsxNew shared panel wrapper for sidebar + toolbar + preview/empty states.
packages/app/src/pages/session/v2/session-file-list-v2.tsxEnhances flat search results list with listbox/option roles, option ids, and double-click handling.
packages/app/src/pages/session/v2/session-file-browser-tab.tsxNew inline Open File tab: project tree + TanStack Query search results with keyboard navigation.
packages/app/src/pages/session/use-session-commands.tsxExtends session command context to indicate file-browser availability.
packages/app/src/pages/session/session-side-panel.tsxIntegrates the Open File tab and preview/pinning behaviors into the session side panel tab strip/content.
packages/app/src/pages/session/helpers.tsUpdates tab derivation to treat the Open File placeholder as a panel tab (not a file tab).
packages/app/src/pages/session/helpers.test.tsAdds tests for Open File placeholder behavior within createSessionTabs.
packages/app/src/pages/session/file-tabs.tsxSplits SessionFileView from FileTabContent to allow reuse inside the new file browser tab.
packages/app/src/pages/session.tsxEnables the inline file browser on desktop/new session design and wires state into the side panel.
packages/app/src/context/layout.tsxRefactors session tab open/close logic to use new layout-tabs helpers and stores preview metadata ephemerally.
packages/app/src/context/layout-tabs.tsNew helpers for preview/open/close tab transitions + Open File placeholder constant.
packages/app/src/context/layout-tabs.test.tsUnit tests for preview/open/close session tab transition helpers.
packages/app/src/context/file.tsxExtends file search to support limit and AbortSignal (for query cancellation).
packages/app/src/components/session/session-sortable-tab.tsxAdds “temporary/preview” styling and double-click pin support on tabs.
packages/app/src/components/session-context-usage.tsxUpdates createSessionTabs usage to account for file-browser availability gating.
packages/app/src/components/file-tree.tsxAdds optional file double-click callback and wires it to file nodes.
packages/app/e2e/utils/mock-server.tsAdds mock endpoint support for /find/file used by inline search.
packages/app/e2e/regression/review-open-file.spec.tsNew Playwright regression covering inline Open File open/search/tab-switch flows.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +108 to +119
<SessionReviewV2Sidebar
open={props.state.sidebarOpened()}
title={<span class="truncate">{title()}</span>}
filter={filter()}
onFilterChange={setFilter}
onFilterKeyDown={onFilterKeyDown}
filterAutofocus={props.placeholder}
filterRef={props.filterRef}
filterControls={resultsID}
filterActiveDescendant={highlighted() ? optionID(highlighted()!) : undefined}
filterExpanded={query().length > 0 && files().length > 0}
width={props.state.sidebarWidth()}
Comment on lines 174 to +180
export function FileTabContent(props: { tab: string }) {
return (
<Tabs.Content value={props.tab}>
<SessionFileView tab={props.tab} />
</Tabs.Content>
)
}
@opencode-agent

Copy link
Copy Markdown
Contributor

⚠️Blocking Beta Release

This PR cannot be merged into the beta branch due to: Merge conflicts with dev branch

Please resolve this issue to include this PR in the next beta release.

@Hona
Hona merged commit 62de2b3 into anomalyco:devJul 8, 2026
12 checks passed
avion23 pushed a commit to avion23/opencode that referenced this pull request Jul 9, 2026
anduimagui pushed a commit to anduimagui/opencode that referenced this pull request Jul 9, 2026
avion23 pushed a commit to avion23/opencode that referenced this pull request Jul 11, 2026
avion23 pushed a commit to avion23/opencode that referenced this pull request Jul 20, 2026
3kaiu pushed a commit to 3kaiu/opencode-x that referenced this pull request Jul 31, 2026
MarsQiu007 referenced this pull request in MarsQiu007/openNovel Jul 31, 2026
banlanzs pushed a commit to banlanzs/opencode that referenced this pull request Aug 6, 2026
charlesverge pushed a commit to charlesverge/opencode that referenced this pull request Aug 11, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@Hona