@@ -12,15 +12,24 @@ final class RefreshCoordinator {
1212 private let settings : SettingsStore
1313 private let client : AeroSpaceClient
1414 private let configService : AeroSpaceConfigService
15+ private let workspaceMemoryStore : WorkspaceMemoryStore
1516 private let stateStore : SidebarStateStore
1617 private let logger : AppLogger
1718 private var scheduledRefresh : Task < Void , Never > ?
1819 private var pollingTask : Task < Void , Never > ?
1920
20- init ( settings: SettingsStore , client: AeroSpaceClient , configService: AeroSpaceConfigService , stateStore: SidebarStateStore , logger: AppLogger ) {
21+ init (
22+ settings: SettingsStore ,
23+ client: AeroSpaceClient ,
24+ configService: AeroSpaceConfigService ,
25+ workspaceMemoryStore: WorkspaceMemoryStore ,
26+ stateStore: SidebarStateStore ,
27+ logger: AppLogger
28+ ) {
2129 self . settings = settings
2230 self . client = client
2331 self . configService = configService
32+ self . workspaceMemoryStore = workspaceMemoryStore
2433 self . stateStore = stateStore
2534 self . logger = logger
2635 }
@@ -62,12 +71,26 @@ final class RefreshCoordinator {
6271 async let integrationTask = configService. integrationStatus ( sidebarWidth: settings. sidebarWidth)
6372 let snapshot = try await snapshotTask
6473 let integrationStatus = await integrationTask
65- let totalWindowCount = snapshot. workspaces. reduce ( 0 ) { $0 + $1. windows. count }
74+ async let workspaceMemoryTask = workspaceMemoryStore. metadataByWorkspace (
75+ for: snapshot. workspaces. map ( \. workspaceName)
76+ )
77+ let workspaceMemory = await workspaceMemoryTask
78+ let annotatedWorkspaces = snapshot. workspaces. map { workspace in
79+ let metadata = workspaceMemory [ workspace. workspaceName]
80+ return WorkspaceGroup (
81+ workspaceName: workspace. workspaceName,
82+ windows: workspace. windows,
83+ isFocused: workspace. isFocused,
84+ titleOverride: metadata? . title,
85+ descriptionOverride: metadata? . description
86+ )
87+ }
88+ let totalWindowCount = annotatedWorkspaces. reduce ( 0 ) { $0 + $1. windows. count }
6689 let status : SidebarStatus = totalWindowCount == 0 ? . empty : . ready
6790 let workspaceState = WorkspaceState (
6891 workspaceName: snapshot. workspaceName,
6992 monitorName: snapshot. monitorName,
70- workspaces: snapshot . workspaces ,
93+ workspaces: annotatedWorkspaces ,
7194 focusedWindowId: snapshot. focusedWindowId,
7295 integrationStatus: integrationStatus,
7396 lastUpdatedAt: . now,
0 commit comments