diff --git a/pkg/agent/commands.go b/pkg/agent/commands.go index 1310ceb..ae920f1 100644 --- a/pkg/agent/commands.go +++ b/pkg/agent/commands.go @@ -199,6 +199,7 @@ func (s *agent) handleCommand(ctx context.Context, input string) bool { s.agentName = name s.session = nil s.pushSessionEnv() + s.notifyChange() for _, msg := range rt.Messages { s.emit(infoEvent(msg)) } diff --git a/pkg/agent/core.go b/pkg/agent/core.go index 465adaa..3de52f4 100644 --- a/pkg/agent/core.go +++ b/pkg/agent/core.go @@ -752,6 +752,8 @@ func (s *agent) WaitChange(ctx context.Context, field, current string) (string, return s.CtxSz() case WatchCWD: return s.CWD() + case WatchAgent: + return s.AgentName() } return "" } diff --git a/pkg/agent/types.go b/pkg/agent/types.go index 4dfff4e..2534bdd 100644 --- a/pkg/agent/types.go +++ b/pkg/agent/types.go @@ -15,6 +15,7 @@ const ( WatchUsage = "usage" WatchCtxSz = "ctxsz" WatchCWD = "cwd" + WatchAgent = "agent" ) // ErrInterrupted is returned when the user cancels an agent turn (Ctrl-C).