11package daemon
22
33import (
4+ "context"
45 "encoding/json"
56 "fmt"
67 "log/slog"
@@ -17,12 +18,18 @@ import (
1718type SocketMessageType string
1819
1920const (
20- SocketMessageTypeSync SocketMessageType = "sync"
21- SocketMessageTypeHeartbeat SocketMessageType = "heartbeat"
22- SocketMessageTypeStatus SocketMessageType = "status"
23- SocketMessageTypeCCInfo SocketMessageType = "cc_info"
21+ SocketMessageTypeSync SocketMessageType = "sync"
22+ SocketMessageTypeHeartbeat SocketMessageType = "heartbeat"
23+ SocketMessageTypeStatus SocketMessageType = "status"
24+ SocketMessageTypeCCInfo SocketMessageType = "cc_info"
25+ SocketMessageTypeSessionProject SocketMessageType = "session_project"
2426)
2527
28+ type SessionProjectRequest struct {
29+ SessionID string `json:"sessionId"`
30+ ProjectPath string `json:"projectPath"`
31+ }
32+
2633type CCInfoTimeRange string
2734
2835const (
@@ -179,6 +186,15 @@ func (p *SocketHandler) handleConnection(conn net.Conn) {
179186 encoder .Encode (map [string ]string {"status" : "ok" })
180187 case SocketMessageTypeCCInfo :
181188 p .handleCCInfo (conn , msg )
189+ case SocketMessageTypeSessionProject :
190+ if payload , ok := msg .Payload .(map [string ]interface {}); ok {
191+ sessionID , _ := payload ["sessionId" ].(string )
192+ projectPath , _ := payload ["projectPath" ].(string )
193+ if sessionID != "" && projectPath != "" {
194+ go model .SendSessionProjectUpdate (context .Background (), * p .config , sessionID , projectPath )
195+ slog .Debug ("session_project update dispatched" , slog .String ("sessionId" , sessionID ))
196+ }
197+ }
182198 default :
183199 slog .Error ("Unknown message type:" , slog .String ("messageType" , string (msg .Type )))
184200 }
0 commit comments