diff --git a/dbus.go b/dbus.go index 901f8a8..3069d80 100644 --- a/dbus.go +++ b/dbus.go @@ -151,6 +151,19 @@ func (a *DBusAdapter) startWatcher(id string, sess *session.Session) { } }() + // Agent watcher — emits ConfigChanged when the agent name changes + go func() { + current := sess.Core.AgentName() + for { + next, ok := sess.Core.WaitChange(ctx, agent.WatchAgent, current) + if !ok { + return + } + current = next + a.conn.Emit(busPath, busIface+".ConfigChanged", id, "agent", current) + } + }() + // Chat watcher (polls log version) go func() { var lastLen int @@ -751,5 +764,6 @@ var introspectXML = ` + ` diff --git a/session/session.go b/session/session.go index 7e28d56..82d0100 100644 --- a/session/session.go +++ b/session/session.go @@ -1060,7 +1060,7 @@ func (s *Manager) CreateSession(args []string) (string, error) { name := "" backendOverride := "" modelOverride := "" - agentName := "default" + agentName := "" cwd := "" remoteTarget := "" systemPromptOverride := "" @@ -1091,9 +1091,11 @@ func (s *Manager) CreateSession(args []string) (string, error) { return "", fmt.Errorf("unknown option %q (valid: name, backend, model, agent, cwd, remote, system_prompt)", k) } } - if agentName == "default" { + if agentName == "" { if v := os.Getenv("OLLIE_DEFAULT_AGENT"); v != "" { agentName = v + } else { + agentName = "default" } }