Slim subagent runtime surface and remove legacy interfaces

This commit is contained in:
LPF
2026-03-17 13:41:12 +08:00
parent 341e578c9f
commit 0674d85ae1
76 changed files with 778 additions and 8782 deletions

View File

@@ -9,30 +9,36 @@ import (
func TestSubagentManagerRuntimeSnapshot(t *testing.T) {
workspace := t.TempDir()
manager := NewSubagentManager(nil, workspace, nil)
manager.SetRunFunc(func(ctx context.Context, task *SubagentTask) (string, error) {
manager.SetRunFunc(func(ctx context.Context, run *SubagentRun) (string, error) {
return "snapshot-result", nil
})
task, err := manager.SpawnTask(context.Background(), SubagentSpawnOptions{
run, err := manager.SpawnRun(context.Background(), SubagentSpawnOptions{
Task: "implement snapshot support",
AgentID: "coder",
OriginChannel: "cli",
OriginChatID: "direct",
})
if err != nil {
t.Fatalf("spawn task failed: %v", err)
t.Fatalf("spawn run failed: %v", err)
}
if _, _, err := manager.WaitTask(context.Background(), task.ID); err != nil {
t.Fatalf("wait task failed: %v", err)
if _, _, err := manager.waitRun(context.Background(), run.ID); err != nil {
t.Fatalf("wait run failed: %v", err)
}
time.Sleep(10 * time.Millisecond)
snapshot := manager.RuntimeSnapshot(20)
if len(snapshot.Tasks) == 0 || len(snapshot.Runs) == 0 {
t.Fatalf("expected runtime snapshot to include task and run records: %+v", snapshot)
if len(snapshot.Requests) == 0 || len(snapshot.Runs) == 0 {
t.Fatalf("expected runtime snapshot to include request and run records: %+v", snapshot)
}
if snapshot.Runs[0].RequestID == "" {
t.Fatalf("expected runtime snapshot run record to expose request_id: %+v", snapshot.Runs[0])
}
if len(snapshot.Threads) == 0 || len(snapshot.Artifacts) == 0 {
t.Fatalf("expected runtime snapshot to include thread and artifact records: %+v", snapshot)
}
msgArtifact := snapshot.Artifacts[0]
if msgArtifact.RequestID == "" {
t.Fatalf("expected runtime snapshot artifact to expose request_id, got %+v", msgArtifact)
}
if msgArtifact.SourceType != "agent_message" {
t.Fatalf("expected agent message artifact source type, got %+v", msgArtifact)
}