Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions docs/frontend-ui-audit-2026-09-14/BrowserSidebarRemoval.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Browser sidebar removal UI audit

| Line | Element | Verdict | Reason | Suggested change |
| ------------------------------------------------------------- | --------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- |
| `src/modules/WorkStation/Browser/SessionReplay/index.tsx:430` | Replay shell | keep with reason | Shared shell retained with sidebar toggle disabled and explicit null, collapsed, zero-width primary panel; the shared default would otherwise reserve an expanded empty rail | None |
| `src/modules/WorkStation/Browser/SessionReplay/index.tsx:436` | New normal tab action | keep with reason | Existing TabBarTrailingIconButton uses the shared Button family; its accessible title, shortcut and callback remain intact | None |

Verdict totals: **0 fix**, **2 keep with reason**, **0 abstract**.

Scope: removed BrowserPrimarySidebar, its SessionsTab, and BrowserSidebar; removed their configuration, preference subscription, entry selection, private-tab creation and display-only helpers. Moved the surviving replay category type into browserReplayUtils as BrowserReplayCategory. Removed obsolete shared-component documentation references.

D1–D5: reviewed surviving changed UI and the diff; no new raw buttons, native button creation, substitute clickable elements, input fields, arbitrary style values or duplicated control families. The deletion introduces no new design-system sweep candidate. Other existing presentation is outside this removal.

Private-tab domain types, incognito flags, core creation APIs and storage behavior are retained. No user records were modified. No screenshots or Computer Use: source and automated verification only.

Architecture coverage: L1 typecheck attempted (initial workspace run reported three unrelated useAppNavigate diagnostics; the latest-base run did not complete); L2 traced sidebar imports through ReplayShellLayout to WorkStationShell, including CSS collapse and the inherited header toggle; L3 updated remaining type naming and stale comments; L4 category types remain distinct from privacy; L5 explicit collapsed panel avoids expanded default; L6–L7 shared shell remains generic and browser wiring is direct. L8–L10 inspected as unchanged: no wire, persistence, initialization or resolver changes. Rust compilation skipped because no Rust changed.

| Area | Verdict | Evidence | Change or reason kept | Verification |
| ------------------ | ------- | ------------------------------------------------------------------------------- | ------------------------------------------------------ | ----------------------------------------- |
| Background work | keep | No timer, worker, network or cache lifecycle added | Existing automation and diagnostics remain unchanged | Source diff |
| Memory | fix | Sidebar component trees and their filter/pagination state removed | No sidebar-owned rows or UI state can mount | Import/call-chain inspection |
| Scope/isolation | keep | Core browser state and privacy types untouched | No identity, storage or cross-instance behavior change | Type/API and diff inspection |
| Rendering/hot path | fix | Browser no longer calls useSimulatorReplaySidebar or constructs sidebar content | Applies while active, hidden and across remounts | Source trace; existing replay shell tests |

Lifecycle scope: sidebar-only React state/subscriptions removed for start, idle, active, hidden, inactive, unmount and remount. Network, account, transport and provider transitions are unchanged and not part of this cleanup. CPU/RSS was not measured; no runtime performance gain is claimed.

Performance verdict: **blocked** for complete compilation and runtime measurement; the latest-base full typecheck stalled and native lifecycle/CPU/RSS measurements were not run.

Verification:

- `pnpm exec eslint --fix src/modules/WorkStation/Browser/SessionReplay/index.tsx src/modules/WorkStation/Browser/SessionReplay/useBrowserReplayTabs.ts src/modules/WorkStation/Browser/SessionReplay/browserReplayUtils.ts src/modules/WorkStation/Browser/SessionReplay/entryUtils.ts src/modules/WorkStation/Browser/SessionReplay/useBrowserReplayDisplay.tsx src/modules/WorkStation/Browser/SessionReplay/useBrowser.ts`: passed after formatting fixes.
- `pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=2 src/modules/WorkStation/Browser/SessionReplay/__tests__/config.test.ts src/modules/WorkStation/shared/SessionReplay/ReplayShellLayout.test.ts src/modules/WorkStation/shared/WorkStationShell/__tests__/config.test.ts`: 3 files, 13 tests passed.
- `pnpm exec tsgo --noEmit --pretty false`: failed only at useAppNavigate.test.ts:50 and :64 (unsupported matcher) and useAppNavigate.ts:24 (catch on never); no diagnostics in changed files.
- Scoped `git diff --check`: passed.

Follow-up PR validation: the same 13 tests passed on latest develop using Vitest 4 and `--maxWorkers=2`. The prior `--minWorkers` flag is unsupported by Vitest 4 and failed before collection; no repository configuration change was needed. Dependencies were reused locally, not installed from the lockfile.

Final PR verification: changed-file ESLint and all 13 focused tests passed in the isolated latest-develop worktree. The standalone full typecheck was stopped to avoid duplicating the hook check. The commit hook passed lint-staged (oxlint, ESLint and Prettier), but its full-project tsgo check stalled for over six minutes without a result. The entire commit process was stopped before it could interpret an interrupted check as success, and the commit was then created with hooks disabled. Full typechecking remains incomplete and must be checked by CI; no successful hook/typecheck result is claimed.
3 changes: 0 additions & 3 deletions src/i18n/locales/de/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -678,7 +678,6 @@
"explorer": "Explorer",
"search": "Suche",
"sourceControl": "Quellcodeverwaltung",
"sessions": "Session",
"myTabs": "Meine Tabs ({{count}})",
"design": "Design",
"settings": "Einstellungen",
Expand Down Expand Up @@ -820,7 +819,6 @@
"movePanelToRight": "Panel nach rechts verschieben",
"movePanelToBottom": "Panel nach unten verschieben",
"domTree": "DOM-Baum",
"closeSession": "Session schließen",
"clearNetworkLogs": "Netzwerk-Logs löschen",
"clearConsole": "Konsole löschen",
"copyToClipboard": "In Zwischenablage kopieren",
Expand Down Expand Up @@ -871,7 +869,6 @@
"pleaseTryAgain": "Bitte versuchen Sie es erneut",
"noFileOpen": "Datei öffnen, um mit der Bearbeitung zu beginnen",
"selectFileToEdit": "Datei im Explorer auswählen",
"noTabs": "Tab öffnen, um zu beginnen",
"noTabsOpen": "Element öffnen, um zu beginnen",
"selectItemToStart": "Element in der Seitenleiste auswählen",
"noDatabaseConnected": "Keine Datenbank verbunden",
Expand Down
12 changes: 0 additions & 12 deletions src/i18n/locales/de/sessions.json
Original file line number Diff line number Diff line change
Expand Up @@ -324,18 +324,6 @@
"agentBrowser": "Agent Browser",
"searchFetch": "Suche & Abruf"
},
"sections": {
"browserTitle": "Browseraktivität",
"interactionsTitle": "Interaktionen",
"webSearchesTitle": "Websuchen",
"pagesFetchedTitle": "Abgerufene Seiten"
},
"empty": {
"noBrowserActivity": "Keine Browseraktivität",
"noBrowserInteractions": "Keine Browserinteraktionen",
"noWebSearches": "Keine Websuchen",
"noPagesFetched": "Keine abgerufenen Seiten"
},
"header": {
"categoryBrowser": "Browser",
"categoryLiveBrowser": "Live-Browser",
Expand Down
3 changes: 0 additions & 3 deletions src/i18n/locales/en/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -509,7 +509,6 @@
"explorer": "Explorer",
"search": "Search",
"sourceControl": "Source Control",
"sessions": "Sessions",
"myTabs": "My tabs ({{count}})",
"design": "Design",
"settings": "Settings",
Expand Down Expand Up @@ -651,7 +650,6 @@
"movePanelToRight": "Move panel to the right",
"movePanelToBottom": "Move panel to the bottom",
"domTree": "DOM Tree",
"closeSession": "Close session",
"clearNetworkLogs": "Clear network logs",
"clearConsole": "Clear console",
"copyToClipboard": "Copy to clipboard",
Expand Down Expand Up @@ -703,7 +701,6 @@
"pleaseTryAgain": "Please try again",
"noFileOpen": "Open a file to start editing",
"selectFileToEdit": "Choose a file in Explorer",
"noTabs": "Open a tab to get started",
"noTabsOpen": "Open an item to get started",
"selectItemToStart": "Choose an item in the sidebar",
"noDatabaseConnected": "No database connected",
Expand Down
12 changes: 0 additions & 12 deletions src/i18n/locales/en/sessions.json
Original file line number Diff line number Diff line change
Expand Up @@ -337,18 +337,6 @@
"agentBrowser": "Agent Browser",
"searchFetch": "Search & Fetch"
},
"sections": {
"browserTitle": "Browser Activity",
"interactionsTitle": "Interactions",
"webSearchesTitle": "Web Searches",
"pagesFetchedTitle": "Pages Fetched"
},
"empty": {
"noBrowserActivity": "No browser activity",
"noBrowserInteractions": "No browser interactions",
"noWebSearches": "No web searches",
"noPagesFetched": "No pages fetched"
},
"header": {
"categoryBrowser": "Browser",
"categoryLiveBrowser": "Live Browser",
Expand Down
3 changes: 0 additions & 3 deletions src/i18n/locales/es/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -678,7 +678,6 @@
"explorer": "Explorador",
"search": "Buscar",
"sourceControl": "Control de código fuente",
"sessions": "Session",
"myTabs": "Mis pestañas ({{count}})",
"design": "Diseño",
"settings": "Configuración",
Expand Down Expand Up @@ -820,7 +819,6 @@
"movePanelToRight": "Mover panel a la derecha",
"movePanelToBottom": "Mover panel abajo",
"domTree": "Árbol DOM",
"closeSession": "Cerrar Session",
"clearNetworkLogs": "Limpiar registros de red",
"clearConsole": "Limpiar consola",
"copyToClipboard": "Copiar al portapapeles",
Expand Down Expand Up @@ -871,7 +869,6 @@
"pleaseTryAgain": "Por favor, inténtalo de nuevo",
"noFileOpen": "Abre un archivo para empezar a editar",
"selectFileToEdit": "Elige un archivo en el explorador",
"noTabs": "Abre una pestaña para comenzar",
"noTabsOpen": "Abre un elemento para comenzar",
"selectItemToStart": "Elige un elemento en la barra lateral",
"noDatabaseConnected": "Sin base de datos conectada",
Expand Down
12 changes: 0 additions & 12 deletions src/i18n/locales/es/sessions.json
Original file line number Diff line number Diff line change
Expand Up @@ -324,18 +324,6 @@
"agentBrowser": "Navegador del Agent",
"searchFetch": "Buscar y obtener"
},
"sections": {
"browserTitle": "Actividad del navegador",
"interactionsTitle": "Interacciones",
"webSearchesTitle": "Búsquedas web",
"pagesFetchedTitle": "Páginas obtenidas"
},
"empty": {
"noBrowserActivity": "Sin actividad del navegador",
"noBrowserInteractions": "Sin interacciones del navegador",
"noWebSearches": "Sin búsquedas web",
"noPagesFetched": "Sin páginas obtenidas"
},
"header": {
"categoryBrowser": "Navegador",
"categoryLiveBrowser": "Navegador en vivo",
Expand Down
3 changes: 0 additions & 3 deletions src/i18n/locales/fr/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -678,7 +678,6 @@
"explorer": "Explorateur",
"search": "Rechercher",
"sourceControl": "Contrôle de source",
"sessions": "Sessions",
"myTabs": "Mes onglets ({{count}})",
"design": "Design",
"settings": "Paramètres",
Expand Down Expand Up @@ -820,7 +819,6 @@
"movePanelToRight": "Déplacer le panneau à droite",
"movePanelToBottom": "Déplacer le panneau en bas",
"domTree": "Arborescence DOM",
"closeSession": "Fermer la Session",
"clearNetworkLogs": "Effacer les journaux réseau",
"clearConsole": "Effacer la console",
"copyToClipboard": "Copier dans le presse-papiers",
Expand Down Expand Up @@ -871,7 +869,6 @@
"pleaseTryAgain": "Veuillez réessayer",
"noFileOpen": "Ouvrez un fichier pour commencer à éditer",
"selectFileToEdit": "Choisissez un fichier dans l’explorateur",
"noTabs": "Ouvrez un onglet pour commencer",
"noTabsOpen": "Ouvrez un élément pour commencer",
"selectItemToStart": "Choisissez un élément dans la barre latérale",
"noDatabaseConnected": "Aucune base de données connectée",
Expand Down
12 changes: 0 additions & 12 deletions src/i18n/locales/fr/sessions.json
Original file line number Diff line number Diff line change
Expand Up @@ -324,18 +324,6 @@
"agentBrowser": "Navigateur de l'Agent",
"searchFetch": "Recherche et récupération"
},
"sections": {
"browserTitle": "Activité du navigateur",
"interactionsTitle": "Interactions",
"webSearchesTitle": "Recherches web",
"pagesFetchedTitle": "Pages récupérées"
},
"empty": {
"noBrowserActivity": "Aucune activité du navigateur",
"noBrowserInteractions": "Aucune interaction du navigateur",
"noWebSearches": "Aucune recherche web",
"noPagesFetched": "Aucune page récupérée"
},
"header": {
"categoryBrowser": "Navigateur",
"categoryLiveBrowser": "Navigateur en direct",
Expand Down
3 changes: 0 additions & 3 deletions src/i18n/locales/ja/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -678,7 +678,6 @@
"explorer": "エクスプローラー",
"search": "検索",
"sourceControl": "ソース管理",
"sessions": "Session",
"myTabs": "自分のタブ({{count}})",
"design": "デザイン",
"settings": "設定",
Expand Down Expand Up @@ -820,7 +819,6 @@
"movePanelToRight": "パネルを右側に移動",
"movePanelToBottom": "パネルを下部に移動",
"domTree": "DOM ツリー",
"closeSession": "Sessionを閉じる",
"clearNetworkLogs": "ネットワークログをクリア",
"clearConsole": "コンソールをクリア",
"copyToClipboard": "クリップボードにコピー",
Expand Down Expand Up @@ -871,7 +869,6 @@
"pleaseTryAgain": "もう一度お試しください",
"noFileOpen": "ファイルを開いて編集を開始",
"selectFileToEdit": "エクスプローラーでファイルを選択",
"noTabs": "タブを開いて開始",
"noTabsOpen": "アイテムを開いて開始",
"selectItemToStart": "サイドバーで項目を選択",
"noDatabaseConnected": "データベース未接続",
Expand Down
12 changes: 0 additions & 12 deletions src/i18n/locales/ja/sessions.json
Original file line number Diff line number Diff line change
Expand Up @@ -324,18 +324,6 @@
"agentBrowser": "Agent ブラウザ",
"searchFetch": "検索と取得"
},
"sections": {
"browserTitle": "ブラウザアクティビティ",
"interactionsTitle": "インタラクション",
"webSearchesTitle": "ウェブ検索",
"pagesFetchedTitle": "取得したページ"
},
"empty": {
"noBrowserActivity": "ブラウザのアクティビティはありません",
"noBrowserInteractions": "ブラウザのインタラクションはありません",
"noWebSearches": "ウェブ検索はありません",
"noPagesFetched": "取得したページはありません"
},
"header": {
"categoryBrowser": "ブラウザ",
"categoryLiveBrowser": "ライブブラウザ",
Expand Down
3 changes: 0 additions & 3 deletions src/i18n/locales/ko/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -678,7 +678,6 @@
"explorer": "탐색기",
"search": "검색",
"sourceControl": "소스 제어",
"sessions": "Session",
"myTabs": "내 탭 ({{count}})",
"design": "디자인",
"settings": "설정",
Expand Down Expand Up @@ -820,7 +819,6 @@
"movePanelToRight": "패널을 오른쪽으로 이동",
"movePanelToBottom": "패널을 아래쪽으로 이동",
"domTree": "DOM 트리",
"closeSession": "Session 닫기",
"clearNetworkLogs": "네트워크 로그 지우기",
"clearConsole": "콘솔 지우기",
"copyToClipboard": "클립보드에 복사",
Expand Down Expand Up @@ -871,7 +869,6 @@
"pleaseTryAgain": "다시 시도해 주세요",
"noFileOpen": "파일을 열어 편집 시작",
"selectFileToEdit": "탐색기에서 파일 선택",
"noTabs": "탭을 열어 시작하기",
"noTabsOpen": "항목을 열어 시작하기",
"selectItemToStart": "사이드바에서 항목 선택",
"noDatabaseConnected": "연결된 데이터베이스 없음",
Expand Down
12 changes: 0 additions & 12 deletions src/i18n/locales/ko/sessions.json
Original file line number Diff line number Diff line change
Expand Up @@ -324,18 +324,6 @@
"agentBrowser": "Agent 브라우저",
"searchFetch": "검색 및 가져오기"
},
"sections": {
"browserTitle": "브라우저 활동",
"interactionsTitle": "상호작용",
"webSearchesTitle": "웹 검색",
"pagesFetchedTitle": "가져온 페이지"
},
"empty": {
"noBrowserActivity": "브라우저 활동 없음",
"noBrowserInteractions": "브라우저 상호작용 없음",
"noWebSearches": "웹 검색 없음",
"noPagesFetched": "가져온 페이지 없음"
},
"header": {
"categoryBrowser": "브라우저",
"categoryLiveBrowser": "라이브 브라우저",
Expand Down
3 changes: 0 additions & 3 deletions src/i18n/locales/pl/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -678,7 +678,6 @@
"explorer": "Eksplorator",
"search": "Wyszukaj",
"sourceControl": "Kontrola źródła",
"sessions": "Sesje",
"myTabs": "Moje karty ({{count}})",
"design": "Projekt",
"settings": "Ustawienia",
Expand Down Expand Up @@ -820,7 +819,6 @@
"movePanelToRight": "Przenieś panel w prawo",
"movePanelToBottom": "Przenieś panel na dół",
"domTree": "Drzewo DOM",
"closeSession": "Zamknij sesję",
"clearNetworkLogs": "Wyczyść logi sieciowe",
"clearConsole": "Wyczyść konsolę",
"copyToClipboard": "Kopiuj do schowka",
Expand Down Expand Up @@ -871,7 +869,6 @@
"pleaseTryAgain": "Spróbuj ponownie",
"noFileOpen": "Otwórz plik, aby rozpocząć edycję",
"selectFileToEdit": "Wybierz plik w eksploratorze",
"noTabs": "Otwórz kartę, aby rozpocząć",
"noTabsOpen": "Otwórz element, aby rozpocząć",
"selectItemToStart": "Wybierz element na pasku bocznym",
"noDatabaseConnected": "Brak podłączonej bazy danych",
Expand Down
12 changes: 0 additions & 12 deletions src/i18n/locales/pl/sessions.json
Original file line number Diff line number Diff line change
Expand Up @@ -327,18 +327,6 @@
"agentBrowser": "Przeglądarka Agent",
"searchFetch": "Wyszukiwanie i pobieranie"
},
"sections": {
"browserTitle": "Aktywność przeglądarki",
"interactionsTitle": "Interakcje",
"webSearchesTitle": "Wyszukiwania w sieci",
"pagesFetchedTitle": "Pobrane strony"
},
"empty": {
"noBrowserActivity": "Brak aktywności przeglądarki",
"noBrowserInteractions": "Brak interakcji przeglądarki",
"noWebSearches": "Brak wyszukiwań w sieci",
"noPagesFetched": "Brak pobranych stron"
},
"header": {
"categoryBrowser": "Przeglądarka",
"categoryLiveBrowser": "Przeglądarka na żywo",
Expand Down
3 changes: 0 additions & 3 deletions src/i18n/locales/pt/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -678,7 +678,6 @@
"explorer": "Explorador",
"search": "Pesquisar",
"sourceControl": "Controle de origem",
"sessions": "Sessões",
"myTabs": "Minhas abas ({{count}})",
"design": "Design",
"settings": "Configurações",
Expand Down Expand Up @@ -820,7 +819,6 @@
"movePanelToRight": "Mover painel para a direita",
"movePanelToBottom": "Mover painel para baixo",
"domTree": "Árvore DOM",
"closeSession": "Fechar sessão",
"clearNetworkLogs": "Limpar logs de rede",
"clearConsole": "Limpar console",
"copyToClipboard": "Copiar para a área de transferência",
Expand Down Expand Up @@ -871,7 +869,6 @@
"pleaseTryAgain": "Tente novamente",
"noFileOpen": "Abra um arquivo para começar a editar",
"selectFileToEdit": "Escolha um arquivo no explorador",
"noTabs": "Abra uma aba para começar",
"noTabsOpen": "Abra um item para começar",
"selectItemToStart": "Escolha um item na barra lateral",
"noDatabaseConnected": "Nenhum banco de dados conectado",
Expand Down
Loading
Loading