diff --git a/pkg/agentic/commands.go b/pkg/agentic/commands.go index 57c6f8a..7a48db2 100644 --- a/pkg/agentic/commands.go +++ b/pkg/agentic/commands.go @@ -316,7 +316,18 @@ func (s *PrepSubsystem) cmdStatus(_ core.Options) core.Result { } for _, sf := range statusFiles { - core.Print(nil, " %s", WorkspaceName(core.PathDir(sf))) + workspaceDir := core.PathDir(sf) + workspaceName := WorkspaceName(workspaceDir) + result := ReadStatusResult(workspaceDir) + workspaceStatus, ok := workspaceStatusValue(result) + if !ok { + continue + } + + core.Print(nil, " %-8s %-8s %-10s %s", workspaceStatus.Status, workspaceStatus.Agent, workspaceStatus.Repo, workspaceName) + if workspaceStatus.Question != "" { + core.Print(nil, " question: %s", workspaceStatus.Question) + } } return core.Result{OK: true} } diff --git a/pkg/agentic/commands_test.go b/pkg/agentic/commands_test.go index 854e752..29abe69 100644 --- a/pkg/agentic/commands_test.go +++ b/pkg/agentic/commands_test.go @@ -718,6 +718,9 @@ func TestCommands_CmdStatus_Good_DeepWorkspace(t *testing.T) { assert.True(t, r.OK) }) + assert.Contains(t, output, "completed") + assert.Contains(t, output, "codex") + assert.Contains(t, output, "go-io") assert.Contains(t, output, "core/go-io/task-5") } @@ -738,9 +741,33 @@ func TestCommands_CmdStatus_Good_BranchWorkspace(t *testing.T) { assert.True(t, r.OK) }) + assert.Contains(t, output, "completed") assert.Contains(t, output, "core/go-io/feature/new-ui") } +func TestCommands_CmdStatus_Good_BlockedQuestion(t *testing.T) { + s, _ := testPrepWithCore(t, nil) + + ws := core.JoinPath(WorkspaceRoot(), "core", "go-io", "task-9") + fs.EnsureDir(ws) + fs.Write(core.JoinPath(ws, "status.json"), core.JSONMarshalString(WorkspaceStatus{ + Status: "blocked", + Repo: "go-io", + Agent: "gemini", + Question: "Which API version?", + })) + + output := captureStdout(t, func() { + r := s.cmdStatus(core.NewOptions()) + assert.True(t, r.OK) + }) + + assert.Contains(t, output, "blocked") + assert.Contains(t, output, "gemini") + assert.Contains(t, output, "go-io") + assert.Contains(t, output, "Which API version?") +} + func TestCommands_CmdPrompt_Bad_MissingRepo(t *testing.T) { s, _ := testPrepWithCore(t, nil) r := s.cmdPrompt(core.NewOptions())