@@ -23,6 +23,8 @@ mod rules;
2323mod shared;
2424#[ path = "../storage.rs" ]
2525mod storage;
26+ #[ path = "../symphony_binary.rs" ]
27+ mod symphony_binary;
2628#[ path = "codex_monitor_daemon/transport.rs" ]
2729mod transport;
2830#[ allow( dead_code) ]
@@ -82,13 +84,13 @@ use shared::process_core::kill_child_process_tree;
8284use shared:: prompts_core:: { self , CustomPromptEntry } ;
8385use shared:: {
8486 agents_config_core, codex_aux_core, codex_core, files_core, git_core, git_ui_core,
85- local_usage_core, settings_core, workspaces_core, worktree_core,
87+ local_usage_core, settings_core, symphony_core , workspaces_core, worktree_core,
8688} ;
8789use storage:: { read_settings, read_workspaces} ;
8890use types:: {
8991 AppSettings , GitCommitDiff , GitFileDiff , GitHubIssuesResponse , GitHubPullRequestComment ,
9092 GitHubPullRequestDiff , GitHubPullRequestsResponse , GitLogResponse , LocalUsageSnapshot ,
91- WorkspaceEntry , WorkspaceInfo , WorkspaceSettings , WorktreeSetupStatus ,
93+ WorkspaceEntry , WorkspaceInfo , WorkspaceSettings , WorkspaceSymphonyEvent , WorktreeSetupStatus ,
9294} ;
9395use workspace_settings:: apply_workspace_settings_update;
9496
@@ -122,6 +124,7 @@ struct DaemonEventSink {
122124#[ derive( Clone ) ]
123125enum DaemonEvent {
124126 AppServer ( AppServerEvent ) ,
127+ WorkspaceSymphony ( WorkspaceSymphonyEvent ) ,
125128 #[ allow( dead_code) ]
126129 TerminalOutput ( TerminalOutput ) ,
127130 #[ allow( dead_code) ]
@@ -140,6 +143,10 @@ impl EventSink for DaemonEventSink {
140143 fn emit_terminal_exit ( & self , event : TerminalExit ) {
141144 let _ = self . tx . send ( DaemonEvent :: TerminalExit ( event) ) ;
142145 }
146+
147+ fn emit_workspace_symphony_event ( & self , event : WorkspaceSymphonyEvent ) {
148+ let _ = self . tx . send ( DaemonEvent :: WorkspaceSymphony ( event) ) ;
149+ }
143150}
144151
145152struct DaemonConfig {
@@ -158,6 +165,7 @@ struct DaemonState {
158165 event_sink : DaemonEventSink ,
159166 codex_login_cancels : Mutex < HashMap < String , CodexLoginCancelState > > ,
160167 daemon_binary_path : Option < String > ,
168+ symphony_runtimes : Arc < symphony_core:: SymphonyRuntimeRegistry > ,
161169}
162170
163171#[ derive( Serialize , Deserialize ) ]
@@ -185,6 +193,7 @@ impl DaemonState {
185193 event_sink,
186194 codex_login_cancels : Mutex :: new ( HashMap :: new ( ) ) ,
187195 daemon_binary_path,
196+ symphony_runtimes : Arc :: new ( Mutex :: new ( HashMap :: new ( ) ) ) ,
188197 }
189198 }
190199
@@ -757,8 +766,7 @@ impl DaemonState {
757766 limit : Option < u32 > ,
758767 sort_key : Option < String > ,
759768 ) -> Result < Value , String > {
760- codex_core:: list_threads_core ( & self . sessions , workspace_id, cursor, limit, sort_key)
761- . await
769+ codex_core:: list_threads_core ( & self . sessions , workspace_id, cursor, limit, sort_key) . await
762770 }
763771
764772 async fn list_mcp_server_status (
0 commit comments