int lane test#12
Conversation
… ade/fix-files-tab-4815bb48
…nto ade/fix-missions-tab-b7d64aca
… ade/fix-files-tab-4815bb48
…nto ade/fix-missions-tab-b7d64aca
ℹ️ Recent review infoConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Free ⛔ Files ignored due to path filters (5)
📒 Files selected for processing (34)
💤 Files with no reviewable changes (1)
📝 WalkthroughWalkthroughThis PR extends desktop capabilities across multiple systems: adds clipboard and external editor integration via IPC, introduces folder-based lane grouping with database migrations, refactors the terminal UI with new components and session management hooks, enhances mission orchestration with DAG layout using dagre and timing adjustments, adds folder metadata to lanes, and refactors FilesPage with theme support and editor session state. Changes
Sequence Diagram(s)sequenceDiagram
actor Renderer as Renderer Process
participant IPC as IPC Main
participant Electron as Electron APIs
participant Filesystem as Filesystem/Child Process
Renderer->>IPC: writeClipboardText(text)
IPC->>Electron: clipboard.writeText(text)
Electron-->>IPC: success
IPC-->>Renderer: void
Renderer->>IPC: openPathInEditor(rootPath, relativePath, target)
IPC->>Filesystem: resolve targetPath
alt target == "finder"
IPC->>Electron: open -a Finder {targetPath}
else target in [vscode, cursor, zed]
IPC->>Filesystem: spawn({cmd, args})
Filesystem-->>IPC: process started
end
Filesystem-->>IPC: success/error
IPC-->>Renderer: void or error
sequenceDiagram
participant TerminalsPage as TerminalsPage
participant useWorkSessions as useWorkSessions Hook
participant SessionListPane as SessionListPane
participant WorkViewArea as WorkViewArea
participant Backend as Backend APIs
TerminalsPage->>useWorkSessions: initialize
useWorkSessions->>Backend: fetch sessions
Backend-->>useWorkSessions: TerminalSessionSummary[]
useWorkSessions->>useWorkSessions: compute filtered/running/ended
useWorkSessions-->>TerminalsPage: work object
TerminalsPage->>SessionListPane: pass filtered sessions
SessionListPane->>TerminalsPage: onLaunchPty(laneId, profile)
TerminalsPage->>useWorkSessions: handleLaunchPty()
useWorkSessions->>Backend: create PTY session
Backend-->>useWorkSessions: sessionId
useWorkSessions->>useWorkSessions: update openTabs, refresh
TerminalsPage->>WorkViewArea: pass active session, view mode
WorkViewArea->>TerminalsPage: onSelectTab/onCloseTab
TerminalsPage->>useWorkSessions: close or select session
useWorkSessions->>Backend: update session state
Backend-->>useWorkSessions: success
useWorkSessions-->>TerminalsPage: refresh sessions
sequenceDiagram
participant OrchestratorDAG as OrchestratorDAG Component
participant Dagre as Dagre Library
participant Layout as Layout Computation
OrchestratorDAG->>Layout: start layout computation
Layout->>Dagre: create Graph()
loop for each step
Layout->>Dagre: graph.setNode(stepKey, {width, height})
end
loop for each step with dependencies
Layout->>Dagre: graph.setEdge(depId, stepId)
end
Layout->>Dagre: layout(graph)
Dagre-->>Layout: computed node positions
Layout->>Layout: map dagre x,y to col, row
Layout-->>OrchestratorDAG: LayoutNode[] with positions
OrchestratorDAG->>OrchestratorDAG: render nodes and edges
Estimated code review effort🎯 4 (Complex) | ⏱️ ~50 minutes Note 🎁 Summarized by CodeRabbit FreeYour organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login. Comment |
test
Summary by CodeRabbit
Release Notes