diff --git a/session/session.go b/session/session.go index 624e425..dc45b54 100644 --- a/session/session.go +++ b/session/session.go @@ -528,10 +528,7 @@ func (s *Manager) createSession(args []string) error { name := "" backendOverride := "" modelOverride := "" - agentName := os.Getenv("OLLIE_DEFAULT_AGENT") - if agentName == "" { - agentName = "default" - } + agentName := "default" cwd := "" for _, arg := range args { k, v, ok := strings.Cut(arg, "=") @@ -556,6 +553,11 @@ func (s *Manager) createSession(args []string) error { return fmt.Errorf("unknown option %q (valid: name, backend, model, agent, cwd)", k) } } + if agentName == "default" { + if v := os.Getenv("OLLIE_DEFAULT_AGENT"); v != "" { + agentName = v + } + } cwd = paths.ExpandHome(os.ExpandEnv(cwd)) if cwd == "" { @@ -629,7 +631,7 @@ func (s *Manager) createSession(args []string) error { "execute": execute.Decl(cwd, execOpts...), }) - env := agent.BuildAgentEnv(cfg, newDisp(), cwd, []string{"OLLIE_SESSION_ID=" + sessID, "OLLIE_UNAME=" + uname}) + env := agent.BuildAgentEnv(cfg, newDisp(), cwd, []string{"OLLIE_SESSION_ID=" + sessID, "OLLIE_UNAME=" + uname, "OLLIE=" + execute.MountPath(uname)}) core = agent.NewAgentCore(agent.AgentCoreConfig{ Backend: be, @@ -654,6 +656,9 @@ func (s *Manager) createSession(args []string) error { s.sessions[sessID] = sess s.mu.Unlock() + // HACK: Load the agent now that the session mount is active. + core.Submit(ctx, "/agent "+agentName) + s.cfg.Log.Info("new session %s (backend=%s model=%s agent=%s)", sessID, core.BackendName(), core.ModelName(), core.AgentName()) return nil