chore: patch project maps for loading-overlay and orphaned session entries
- Add loading-overlay.tsx to component maps - Remove orphaned session-progress-panel.tsx and session-operations.tsx entries - Refresh parent indexes after manual map edits Quality gates: pytest 313 passed/34 skipped, npm run typecheck/lint clean, npm test -- --run 87 passed
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
dir: apps/web/src/components
|
||||
|
||||
## role
|
||||
Reusable React UI components and authentication guards for the web application's frontend interface.
|
||||
Provides reusable, accessible React UI components and utilities for the web application including layout shells, data display states, icon system, code editing, routing guards, and toast notification infrastructure.
|
||||
## parent
|
||||
index: apps/web/src/.pi-map.index.md
|
||||
map: apps/web/src/.pi-map.md
|
||||
@@ -15,6 +15,7 @@ map: apps/web/src/.pi-map.md
|
||||
- code-editor.tsx
|
||||
- data-states.tsx
|
||||
- icon.tsx
|
||||
- loading-overlay.tsx
|
||||
- protected-route.test.tsx
|
||||
- protected-route.tsx
|
||||
- syntax-highlighter.tsx
|
||||
|
||||
@@ -4,22 +4,24 @@ dir: apps/web/src/components
|
||||
index: apps/web/src/components/.pi-map.index.md
|
||||
|
||||
## role
|
||||
Reusable React UI components and authentication guards for the web application's frontend interface.
|
||||
Provides reusable, accessible React UI components and utilities for the web application including layout shells, data display states, icon system, code editing, routing guards, and toast notification infrastructure.
|
||||
## files
|
||||
- app-shell.tsx | Renders the main application shell layout with navigation, session management, and responsive mobile/desktop views for a React Router-based app. | exp: AppShell | dep: react-router-dom, ../api/sessions, ../hooks/use-theme, ../state/auth, ../state/sessions, ../hooks/use-mobile-viewport, ../state/events, ../state/toast, ../state/notifications, ../state/session-operations, ./features/notification/event-toast-bridge, ./features/notification/notification-center, ./features/session/session-progress-panel, ./icon, ./features/mobile/mobile-nav, ./features/tool/start-tool-fab, ../utils/icons
|
||||
- app-shell.tsx | Renders the main application shell layout with navigation, session management, and responsive mobile/desktop views for a React Router-based app. | exp: AppShell | dep: react-router-dom, ../api/sessions, ../hooks/use-theme, ../state/auth, ../state/sessions, ../hooks/use-mobile-viewport, ../state/events, ../state/toast, ../state/notifications, ./features/notification/event-toast-bridge, ./features/notification/notification-center, ./icon, ./features/mobile/mobile-nav, ./features/tool/start-tool-fab, ../utils/icons
|
||||
- code-editor.tsx | A React component that renders a syntax-highlighted code editor with line numbers using react-simple-code-editor. | exp: CodeEditor | dep: react, react-simple-code-editor, ../utils/language
|
||||
- data-states.tsx | Provides reusable React components for displaying loading, error, and empty data states in a UI. | exp: LoadingState, ErrorState, EmptyState | dep: ./icon, icon
|
||||
- icon.tsx | Provides a centralized, type-safe React icon component that maps semantic names to Phosphor icons with configurable size, weight, color, and accessibility attributes. | exp: IconName, IconProps, Icon | dep: react, @phosphor-icons/react
|
||||
- loading-overlay.tsx | Renders an accessible loading overlay with optional label that conditionally displays based on visibility prop | exp: func:LoadingOverlay({ visible, label }: LoadingOverlayProps) | dep: ./icon, icon
|
||||
- protected-route.test.tsx | Tests a ProtectedRoute component that guards content based on authentication state | dep: @testing-library/react, react-router-dom, vitest, ./protected-route
|
||||
- protected-route.tsx | Conditionally renders children or redirects to login based on authentication state | exp: ProtectedRoute | dep: react-router-dom, ../state/auth
|
||||
- syntax-highlighter.tsx | Renders syntax-highlighted code blocks with optional line numbers and copy-to-clipboard functionality | exp: SyntaxHighlighter | dep: react, ./icon, ../utils/language, React, icon, language (utils)
|
||||
- toast-rules.test.ts | Unit tests for mapping instance events to toast notification categories and severities | dep: vitest, ./toast-rules, ../types/events
|
||||
- toast-rules.ts | Maps instance events to toast notifications with deduplication logic to prevent spam | exp: func:mapEventToCategory(event: InstanceEventPayload) → string, call:event.event.startsWith, func:mapEventToSeverity(event: InstanceEventPayload) → "info" | "warning" | "error" | "success", func:handleEventToast(event: InstanceEventPayload) → void, call:shouldShowToast, call:toast.info, call:toast.success, call:toast.warning, call:toast.error, func:clearToastDedup() → void, call:lastToastTime.clear | dep: ../state/toast, ../types/events, toast state module, InstanceEventPayload type
|
||||
## arch
|
||||
Component-based React architecture using functional components with hooks, centralized type-safe utilities (icons, data states), composition patterns for layout (app-shell), and higher-order route protection for auth gating.
|
||||
Component-based architecture with functional React patterns, custom hooks for state management, utility modules for cross-cutting concerns (icons, toasts), and test co-location with implementation files.
|
||||
## tags
|
||||
toast, state, react, icon, code, event, editor, protected
|
||||
toast, icon, react, state, code, loading, event, editor
|
||||
## symbols
|
||||
- LoadingOverlay
|
||||
- mapEventToCategory
|
||||
- mapEventToSeverity
|
||||
- handleEventToast
|
||||
@@ -27,7 +29,6 @@ toast, state, react, icon, code, event, editor, protected
|
||||
- AppShell
|
||||
- CodeEditor
|
||||
- LoadingState
|
||||
- ErrorState
|
||||
## workflows
|
||||
- change components behavior
|
||||
read: app-shell.tsx, code-editor.tsx, data-states.tsx
|
||||
|
||||
@@ -1,52 +1,52 @@
|
||||
# apps/web/src/components/features (index)
|
||||
dir: apps/web/src/components/features
|
||||
# features (index)
|
||||
dir: features
|
||||
|
||||
## role
|
||||
Contains reusable UI components that implement specific business features and user-facing functionality across the web application.
|
||||
Contains modular, feature-based components that encapsulate specific domain functionality or user-facing capabilities within the project.
|
||||
## parent
|
||||
index: apps/web/src/components/.pi-map.index.md
|
||||
map: apps/web/src/components/.pi-map.md
|
||||
index: ./.pi-map.index.md
|
||||
map: ./.pi-map.md
|
||||
## children
|
||||
- apps/web/src/components/features/config-profiles
|
||||
index: apps/web/src/components/features/config-profiles/.pi-map.index.md
|
||||
map: apps/web/src/components/features/config-profiles/.pi-map.md
|
||||
- apps/web/src/components/features/git
|
||||
index: apps/web/src/components/features/git/.pi-map.index.md
|
||||
map: apps/web/src/components/features/git/.pi-map.md
|
||||
- apps/web/src/components/features/mobile
|
||||
index: apps/web/src/components/features/mobile/.pi-map.index.md
|
||||
map: apps/web/src/components/features/mobile/.pi-map.md
|
||||
- apps/web/src/components/features/notification
|
||||
index: apps/web/src/components/features/notification/.pi-map.index.md
|
||||
map: apps/web/src/components/features/notification/.pi-map.md
|
||||
- apps/web/src/components/features/project
|
||||
index: apps/web/src/components/features/project/.pi-map.index.md
|
||||
map: apps/web/src/components/features/project/.pi-map.md
|
||||
- apps/web/src/components/features/session
|
||||
index: apps/web/src/components/features/session/.pi-map.index.md
|
||||
map: apps/web/src/components/features/session/.pi-map.md
|
||||
- apps/web/src/components/features/settings
|
||||
index: apps/web/src/components/features/settings/.pi-map.index.md
|
||||
map: apps/web/src/components/features/settings/.pi-map.md
|
||||
- apps/web/src/components/features/ssh-keys
|
||||
index: apps/web/src/components/features/ssh-keys/.pi-map.index.md
|
||||
map: apps/web/src/components/features/ssh-keys/.pi-map.md
|
||||
- apps/web/src/components/features/terminal
|
||||
index: apps/web/src/components/features/terminal/.pi-map.index.md
|
||||
map: apps/web/src/components/features/terminal/.pi-map.md
|
||||
- apps/web/src/components/features/tool
|
||||
index: apps/web/src/components/features/tool/.pi-map.index.md
|
||||
map: apps/web/src/components/features/tool/.pi-map.md
|
||||
- apps/web/src/components/features/tool-workshop
|
||||
index: apps/web/src/components/features/tool-workshop/.pi-map.index.md
|
||||
map: apps/web/src/components/features/tool-workshop/.pi-map.md
|
||||
- apps/web/src/components/features/workspace
|
||||
index: apps/web/src/components/features/workspace/.pi-map.index.md
|
||||
map: apps/web/src/components/features/workspace/.pi-map.md
|
||||
- features/config-profiles
|
||||
index: features/config-profiles/.pi-map.index.md
|
||||
map: features/config-profiles/.pi-map.md
|
||||
- features/git
|
||||
index: features/git/.pi-map.index.md
|
||||
map: features/git/.pi-map.md
|
||||
- features/mobile
|
||||
index: features/mobile/.pi-map.index.md
|
||||
map: features/mobile/.pi-map.md
|
||||
- features/notification
|
||||
index: features/notification/.pi-map.index.md
|
||||
map: features/notification/.pi-map.md
|
||||
- features/project
|
||||
index: features/project/.pi-map.index.md
|
||||
map: features/project/.pi-map.md
|
||||
- features/session
|
||||
index: features/session/.pi-map.index.md
|
||||
map: features/session/.pi-map.md
|
||||
- features/settings
|
||||
index: features/settings/.pi-map.index.md
|
||||
map: features/settings/.pi-map.md
|
||||
- features/ssh-keys
|
||||
index: features/ssh-keys/.pi-map.index.md
|
||||
map: features/ssh-keys/.pi-map.md
|
||||
- features/terminal
|
||||
index: features/terminal/.pi-map.index.md
|
||||
map: features/terminal/.pi-map.md
|
||||
- features/tool
|
||||
index: features/tool/.pi-map.index.md
|
||||
map: features/tool/.pi-map.md
|
||||
- features/tool-workshop
|
||||
index: features/tool-workshop/.pi-map.index.md
|
||||
map: features/tool-workshop/.pi-map.md
|
||||
- features/workspace
|
||||
index: features/workspace/.pi-map.index.md
|
||||
map: features/workspace/.pi-map.md
|
||||
## files
|
||||
## links
|
||||
index: apps/web/src/components/features/.pi-map.index.md
|
||||
map: apps/web/src/components/features/.pi-map.md
|
||||
index: features/.pi-map.index.md
|
||||
map: features/.pi-map.md
|
||||
## workflows
|
||||
-
|
||||
## dirty
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# apps/web/src/components/features
|
||||
dir: apps/web/src/components/features
|
||||
# features
|
||||
dir: features
|
||||
|
||||
index: apps/web/src/components/features/.pi-map.index.md
|
||||
index: features/.pi-map.index.md
|
||||
|
||||
## role
|
||||
Contains reusable UI components that implement specific business features and user-facing functionality across the web application.
|
||||
Contains modular, feature-based components that encapsulate specific domain functionality or user-facing capabilities within the project.
|
||||
## files
|
||||
## arch
|
||||
Feature-based component organization with domain-specific groupings, likely using composition patterns, container/presentational separation, and integration with hooks/state management for feature logic.
|
||||
Feature-based modular architecture with self-contained, cohesive units that likely combine related components, logic, and assets to support vertical slicing of application functionality.
|
||||
## tags
|
||||
-
|
||||
## symbols
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
dir: apps/web/src/components/features/session
|
||||
|
||||
## role
|
||||
Provides UI components for managing development sessions including creation, listing, monitoring progress, and interacting with individual sessions.
|
||||
Provides UI components for managing development sessions including creation, listing, and interacting with individual sessions.
|
||||
## parent
|
||||
index: apps/web/src/components/features/.pi-map.index.md
|
||||
map: apps/web/src/components/features/.pi-map.md
|
||||
@@ -12,7 +12,6 @@ map: apps/web/src/components/features/.pi-map.md
|
||||
- create-session-form.tsx
|
||||
- session-card.tsx
|
||||
- session-list.tsx
|
||||
- session-progress-panel.tsx
|
||||
## links
|
||||
index: apps/web/src/components/features/session/.pi-map.index.md
|
||||
map: apps/web/src/components/features/session/.pi-map.md
|
||||
|
||||
@@ -4,20 +4,18 @@ dir: apps/web/src/components/features/session
|
||||
index: apps/web/src/components/features/session/.pi-map.index.md
|
||||
|
||||
## role
|
||||
Provides UI components for managing development sessions including creation, listing, monitoring progress, and interacting with individual sessions.
|
||||
Provides UI components for managing development sessions including creation, listing, and interacting with individual sessions.
|
||||
## files
|
||||
- create-session-form.tsx | A React form component for creating and starting a new development session with configurable project, repository, workspace, tool type, config profile, and SSH key options. | exp: CreateSessionForm | dep: react, ../../icon, ../../../api/sessions, ../../../types, ../../../api/git-repositories, ../../../api/tool-types, ../../../api/ssh-keys, ../../../api/config-profiles, ../../../api/workspaces, ../../../types/workspace, icon, sessions API, git-repositories API, tool-types API, ssh-keys API, config-profiles API, workspaces API, types
|
||||
- session-card.tsx | Renders a card component displaying session information with status badges, inline rename editing, action buttons, and responsive mobile/desktop layouts including a dropdown options menu and mobile action sheet. | exp: SessionCardProps, func:SessionCard({ session, onOpen, onStart, onStop, onDelete, onRecreateTunnel, onRename, isBusy = false, tunnelHealth = null, }: SessionCardProps), call:useState, call:useRef, call:useMobileViewport, call:session.tool_type_interfaces?.includes, call:[ "running", "building", "starting", "probing", "pending", "unhealthy", ].includes, call:useEffect, call:optionsRef.current.contains, call:setOptionsOpen, call:document.addEventListener, call:document.removeEventListener, call:window.confirm, call:onDelete, call:setEditName, call:onRename, call:setIsEditingName, call:editName.trim, call:onOpen, call:new Date(session.created_at).toLocaleString, call:setShowActionSheet, call:onStart, call:onStop, call:onRecreateTunnel | dep: react, ../../../api/sessions, ../../icon, ../../../hooks/use-mobile-viewport, ../mobile/mobile-action-sheet
|
||||
- session-list.tsx | Renders a list of sessions grouped by active/recent status or as a flat grid, delegating to SessionCard for individual session display. | exp: SessionListProps, func:SessionList({ sessions, onOpen, onStart, onStop, onDelete, onRecreateTunnel, onRename, actionBusyId = null, tunnelHealth = {}, showGrouping = true, activeTitle = "Active Sessions", recentTitle = "Recent Sessions", maxRecent = 5, emptyMessage = "No sessions", }: SessionListProps), call:sessions.filter, call:activeStatuses.includes, call:sessions .filter((s) => recentStatuses.includes(s.status)) .slice, call:recentStatuses.includes, call:sessions.map, call:activeSessions.map, call:recentSessions.map | dep: ../../../api/sessions, ./session-card, Session, SessionCard, InstanceHealth
|
||||
- session-progress-panel.tsx | Renders a panel displaying active and recently completed session operations with step-by-step progress indicators and dismissible notifications. | exp: func:SessionProgressPanel(), call:useSessionOperations, call:useEventContext, call:useEffect, call:updateOperationFromEvent, call:operations.filter, call:Date.now, call:visibleOperations.map, call:dismissOperation | dep: react, ../../../state/session-operations, ../../../state/events, ../../icon, useSessionOperations, useEventContext, Icon
|
||||
## arch
|
||||
Feature-based component architecture with compound component pattern (SessionCard/SessionList/SessionProgressPanel), controlled forms with validation, optimistic UI updates for inline editing, responsive design with mobile/desktop layout variants, and compound action menus using dropdowns/sheets.
|
||||
Feature-based component architecture with compound component pattern (SessionCard/SessionList), controlled forms with validation, optimistic UI updates for inline editing, responsive design with mobile/desktop layout variants, and compound action menus using dropdowns/sheets.
|
||||
## tags
|
||||
session, call:use, call:on, api, card, call:set, event, mobile
|
||||
## symbols
|
||||
- SessionCard
|
||||
- SessionList
|
||||
- SessionProgressPanel
|
||||
- CreateSessionForm
|
||||
- SessionCardProps
|
||||
- call:useState
|
||||
|
||||
Reference in New Issue
Block a user