TestResolveSessionAgent_PinnedAgent verifies that resolveSessionAgent returns the session-pinned agent when AgentName is set, even though the runtime's currentAgent points elsewhere (root). Before the fix, the shared currentAgent field was always used, so background sub-agent tasks ran with root's c
(t *testing.T)
| 2761 | // currentAgent points elsewhere (root). Before the fix, the shared currentAgent |
| 2762 | // field was always used, so background sub-agent tasks ran with root's config. |
| 2763 | func TestResolveSessionAgent_PinnedAgent(t *testing.T) { |
| 2764 | t.Parallel() |
| 2765 | |
| 2766 | prov := &mockProvider{id: "test/mock-model", stream: &mockStream{}} |
| 2767 | worker := agent.New("worker", "Worker agent", agent.WithModel(prov)) |
| 2768 | root := agent.New("root", "Root agent", agent.WithModel(prov)) |
| 2769 | tm := team.New(team.WithAgents(root, worker)) |
| 2770 | |
| 2771 | rt, err := NewLocalRuntime(t.Context(), tm, WithSessionCompaction(false), WithModelStore(mockModelStore{})) |
| 2772 | require.NoError(t, err) |
| 2773 | assert.Equal(t, "root", rt.CurrentAgentName(t.Context()), "default agent should be root") |
| 2774 | |
| 2775 | // Session pinned to worker (as run_background_agent does). |
| 2776 | sess := session.New(session.WithAgentName("worker")) |
| 2777 | |
| 2778 | resolved := rt.resolveSessionAgent(sess) |
| 2779 | assert.Equal(t, "worker", resolved.Name(), "resolveSessionAgent should return pinned agent") |
| 2780 | } |
| 2781 | |
| 2782 | // TestResolveSessionAgent_FallsBackToCurrentAgent verifies that when no |
| 2783 | // AgentName is set on the session, resolveSessionAgent falls back to the |
nothing calls this directly
no test coverage detected