X-Git-Url: http://git.giacomolli.uk/onechat/blobdiff_plain/5a93b6124068c2a8748fc0bfbb2a2d151815bcf0..723f6e18adc6482ed913e1618c8a76e981720c2b:/daemon_message.go diff --git a/daemon_message.go b/daemon_message.go index 8415e49..40a99a9 100644 --- a/daemon_message.go +++ b/daemon_message.go @@ -16,7 +16,13 @@ import ( // messages before the loops start. A queue entry stays until its recipient // finishes the turn that takes it, so a stop can interrupt delivery or a turn. func openDaemonMessages(loops []*TurnLoop) (*DaemonMessages, error) { + routes, err := openRoutes(filepath.Join(loops[0].agent.dir, "routes.json"), loops[0].logger) + if err != nil { + return nil, fmt.Errorf("open agent routes: %w", err) + } + m := &DaemonMessages{ + routes: routes, path: filepath.Join(loops[0].agent.dir, "messages.json"), ordered: append([]*TurnLoop(nil), loops...), loops: make(map[string]*TurnLoop), @@ -27,6 +33,13 @@ func openDaemonMessages(loops []*TurnLoop) (*DaemonMessages, error) { loop.tools.messages = m if loop.agent.config.Parent == "" { loop.logger = loop.logger.With("name", loop.agent.config.Name) + loop.tools.routes = routes + if loop.tools.whatsapp != nil { + loop.tools.whatsapp.mutex.Lock() + + loop.tools.whatsapp.routes = routes + loop.tools.whatsapp.mutex.Unlock() + } } } @@ -89,6 +102,7 @@ type DaemonMessages struct { ordered []*TurnLoop state DaemonMessageFile failure error + routes *Routes } // deliver records one queued message and wakes its recipient. The caller holds