From bba14ddcde0f0195413832e8b4482219dc47c34d Mon Sep 17 00:00:00 2001 From: Levi Neely <141506390+lneely@users.noreply.github.com> Date: Sun, 19 Jul 2026 20:37:37 +0200 Subject: [PATCH] session: pass PromptEnvExtra to AgentCoreConfig --- session/session.go | 53 +++++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/session/session.go b/session/session.go index fdb13f5..bdc55eb 100644 --- a/session/session.go +++ b/session/session.go @@ -790,18 +790,20 @@ func (s *Manager) restoreSession(ps *agent.PersistedSession) error { } var sessPtr *Session + promptEnv := agent.PromptEnv(cwd) core := agent.NewAgentCore(agent.AgentCoreConfig{ - Backend: be, - AgentName: agentName, - AgentsDir: s.cfg.AgentsDir, - SessionsDir: s.cfg.SessionsDir, - SessionID: sessID, - Uname: uname, - CWD: cwd, - Session: restoredSession, - Runtime: rt, - NewDispatcher: newDisp, - Log: s.cfg.Sink.NewLogger("core"), + Backend: be, + AgentName: agentName, + AgentsDir: s.cfg.AgentsDir, + SessionsDir: s.cfg.SessionsDir, + SessionID: sessID, + Uname: uname, + CWD: cwd, + Session: restoredSession, + Runtime: rt, + NewDispatcher: newDisp, + PromptEnvExtra: promptEnv, + Log: s.cfg.Sink.NewLogger("core"), ReadPlanStep: func() string { if sessPtr == nil { return "" @@ -1037,26 +1039,29 @@ func (s *Manager) CreateSession(args []string) (string, error) { }) } - env := []string{"OLLIE_SESSION_ID=" + sessID, "OLLIE_UNAME=" + uname, "OLLIE=" + MountPathFor(uname)} + var promptEnv []string if len(remoteEnv) > 0 { - env = append(env, remoteEnv...) + promptEnv = remoteEnv } else { - env = append(env, agent.PromptEnv(cwd)...) + promptEnv = agent.PromptEnv(cwd) } + env := []string{"OLLIE_SESSION_ID=" + sessID, "OLLIE_UNAME=" + uname, "OLLIE=" + MountPathFor(uname)} + env = append(env, promptEnv...) rt := agent.BuildRuntime(cfg, newDisp(), cwd, env) // sessPtr is set after NewSession; the ReadPlanStep closure captures it. core = agent.NewAgentCore(agent.AgentCoreConfig{ - Backend: be, - AgentName: agentName, - AgentsDir: s.cfg.AgentsDir, - SessionsDir: s.cfg.SessionsDir, - SessionID: sessID, - Uname: uname, - CWD: cwd, - Runtime: rt, - NewDispatcher: newDisp, - Log: s.cfg.Sink.NewLogger("core"), + Backend: be, + AgentName: agentName, + AgentsDir: s.cfg.AgentsDir, + SessionsDir: s.cfg.SessionsDir, + SessionID: sessID, + Uname: uname, + CWD: cwd, + Runtime: rt, + NewDispatcher: newDisp, + PromptEnvExtra: promptEnv, + Log: s.cfg.Sink.NewLogger("core"), ReadPlanStep: func() string { if sessPtr == nil { return ""