Browse Source

share footer snapshot assembly

Simon Klee 4 days ago
parent
commit
ee65fbc84e
1 changed files with 10 additions and 9 deletions
  1. 10 9
      packages/opencode/src/cli/cmd/run/subagent-data.ts

+ 10 - 9
packages/opencode/src/cli/cmd/run/subagent-data.ts

@@ -518,27 +518,28 @@ function snapshotQueues(data: SubagentData) {
   }
 }
 
-export function snapshotSubagentData(data: SubagentData): FooterSubagentState {
+function snapshotState(data: SubagentData, details: FooterSubagentState["details"]): FooterSubagentState {
   return {
     tabs: listSubagentTabs(data),
-    details: Object.fromEntries(
-      [...data.details.entries()].map(([sessionID, detail]) => [sessionID, snapshotDetail(detail)]),
-    ),
+    details,
     ...snapshotQueues(data),
   }
 }
 
+export function snapshotSubagentData(data: SubagentData): FooterSubagentState {
+  return snapshotState(
+    data,
+    Object.fromEntries([...data.details.entries()].map(([sessionID, detail]) => [sessionID, snapshotDetail(detail)])),
+  )
+}
+
 export function snapshotSelectedSubagentData(
   data: SubagentData,
   selectedSessionID: string | undefined,
 ): FooterSubagentState {
   const detail = selectedSessionID ? data.details.get(selectedSessionID) : undefined
 
-  return {
-    tabs: listSubagentTabs(data),
-    details: detail ? { [detail.sessionID]: snapshotDetail(detail) } : {},
-    ...snapshotQueues(data),
-  }
+  return snapshotState(data, detail ? { [detail.sessionID]: snapshotDetail(detail) } : {})
 }
 
 export function bootstrapSubagentData(input: BootstrapSubagentInput) {