Skip to content

Commit 7311a95

Browse files
refactor(queue): drop duplicate top-level fields
Co-authored-by: Andrew <andrewxhill@gmail.com>
1 parent 27e2272 commit 7311a95

3 files changed

Lines changed: 37 additions & 78 deletions

File tree

internal/app/app_test.go

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -204,18 +204,12 @@ func TestStatusJSONContractContainsStableTopLevelFields(t *testing.T) {
204204
"current_branch",
205205
"current_worktree",
206206
"execution_estimate",
207-
"has_blocked_submissions",
208-
"has_queued_work",
209-
"has_running_publishes",
210-
"has_running_submissions",
211207
"protected_branch",
212208
"protected_branch_sha",
213209
"protected_upstream",
214-
"queue_length",
215210
"queue_summary",
216211
"recent_events",
217212
"repository_root",
218-
"state",
219213
"state_path",
220214
}
221215
gotKeys := sortedJSONKeys(payload)
@@ -246,15 +240,12 @@ func TestStatusJSONIncludesOperatorSummaryFields(t *testing.T) {
246240
if err := json.Unmarshal(stdout.Bytes(), &status); err != nil {
247241
t.Fatalf("Unmarshal: %v", err)
248242
}
249-
if status.State != "queued" {
243+
if status.QueueSummary.Headline != "queued" {
250244
t.Fatalf("expected queued state, got %+v", status)
251245
}
252-
if status.QueueLength != 1 {
246+
if status.QueueSummary.QueueLength != 1 {
253247
t.Fatalf("expected queue length 1, got %+v", status)
254248
}
255-
if status.HasQueuedWork != true || status.HasRunningPublishes || status.HasRunningSubmissions || status.HasBlockedSubmissions {
256-
t.Fatalf("expected explicit queued-work booleans, got %+v", status)
257-
}
258249
if status.QueueSummary.Headline != "queued" || status.QueueSummary.QueueLength != 1 || !status.QueueSummary.HasQueuedWork {
259250
t.Fatalf("expected queue_summary to mirror queued state, got %+v", status.QueueSummary)
260251
}
@@ -411,7 +402,7 @@ func TestStatusPrefersPublishingHeadlineWhenBlockedSubmissionAlsoExists(t *testi
411402
if err := json.Unmarshal(stdout.Bytes(), &status); err != nil {
412403
t.Fatalf("Unmarshal: %v", err)
413404
}
414-
if status.State != "publishing" {
405+
if status.QueueSummary.Headline != "publishing" {
415406
t.Fatalf("expected publishing headline, got %+v", status)
416407
}
417408
if len(status.Alerts) == 0 || !strings.Contains(status.Alerts[0], "Separate blocked submissions") {
@@ -510,7 +501,7 @@ func TestWaitBySubmissionIDReturnsIntegratedOutcome(t *testing.T) {
510501
if result.PublishRequestID != 0 || result.PublishStatus != "" {
511502
t.Fatalf("expected no publish correlation for integrated-only wait, got %+v", result)
512503
}
513-
if result.QueueState != "idle" || result.QueueLength != 0 || result.HasQueuedWork || result.HasRunningPublishes || result.HasRunningSubmissions || result.HasBlockedSubmissions {
504+
if result.QueueSummary.Headline != "idle" || result.QueueSummary.QueueLength != 0 || result.QueueSummary.HasQueuedWork || result.QueueSummary.HasRunningPublishes || result.QueueSummary.HasRunningSubmissions || result.QueueSummary.HasBlockedSubmissions {
514505
t.Fatalf("expected idle queue summary after integrated wait, got %+v", result)
515506
}
516507
}
@@ -547,7 +538,7 @@ func TestWaitBySubmissionIDReturnsLandedOutcome(t *testing.T) {
547538
if result.Outcome != waitOutcome("landed") || result.SubmissionStatus != "succeeded" || result.PublishStatus != "succeeded" || result.PublishRequestID == 0 {
548539
t.Fatalf("expected landed wait outcome with publish correlation, got %+v", result)
549540
}
550-
if result.QueueState != "idle" || result.QueueLength != 0 || result.HasQueuedWork || result.HasRunningPublishes || result.HasRunningSubmissions || result.HasBlockedSubmissions {
541+
if result.QueueSummary.Headline != "idle" || result.QueueSummary.QueueLength != 0 || result.QueueSummary.HasQueuedWork || result.QueueSummary.HasRunningPublishes || result.QueueSummary.HasRunningSubmissions || result.QueueSummary.HasBlockedSubmissions {
551542
t.Fatalf("expected idle queue summary after landed wait, got %+v", result)
552543
}
553544
}
@@ -595,7 +586,7 @@ func TestWaitBySubmissionIDReturnsFailedWhenCorrelatedPublishFails(t *testing.T)
595586
if result.Outcome != waitOutcomeFailed || result.PublishStatus != "failed" || result.PublishRequestID == 0 {
596587
t.Fatalf("expected failed landed wait with failed publish correlation, got %+v", result)
597588
}
598-
if result.QueueState == "" {
589+
if result.QueueSummary.Headline == "" {
599590
t.Fatalf("expected explicit queue state on failed wait, got %+v", result)
600591
}
601592
}

internal/app/status.go

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,6 @@ type statusResult struct {
4646
CurrentBranchStatus *git.BranchComparison `json:"current_branch_status,omitempty"`
4747
RebaseGuidance *statusRebaseGuidance `json:"rebase_guidance,omitempty"`
4848
Alerts []string `json:"alerts,omitempty"`
49-
State string `json:"state"`
50-
QueueLength int `json:"queue_length"`
51-
HasBlockedSubmissions bool `json:"has_blocked_submissions"`
52-
HasRunningPublishes bool `json:"has_running_publishes"`
53-
HasRunningSubmissions bool `json:"has_running_submissions"`
54-
HasQueuedWork bool `json:"has_queued_work"`
5549
QueueSummary queueSummary `json:"queue_summary"`
5650
ProtectedBranch string `json:"protected_branch"`
5751
ProtectedBranchSHA string `json:"protected_branch_sha"`
@@ -320,12 +314,6 @@ func collectStatus(repoPath string, limit int) (statusResult, error) {
320314
result.RebaseGuidance = buildStatusRebaseGuidance(cfg, comparison, protectedStatus, layout.WorktreeRoot, currentBranch)
321315
}
322316
}
323-
result.State = queue.Summary.Headline
324-
result.QueueLength = queue.Summary.QueueLength
325-
result.HasBlockedSubmissions = queue.Summary.HasBlockedSubmissions
326-
result.HasRunningPublishes = queue.Summary.HasRunningPublishes
327-
result.HasRunningSubmissions = queue.Summary.HasRunningSubmissions
328-
result.HasQueuedWork = queue.Summary.HasQueuedWork
329317
result.QueueSummary = queue.Summary
330318
result.Alerts = buildStatusAlerts(result.Counts)
331319
lockManager := state.NewLockManager(layout.RepositoryRoot, layout.GitDir)
@@ -364,13 +352,13 @@ func renderStatus(stdout *stepPrinter, result statusResult) error {
364352
printer.Line("Repository root: %s", result.RepositoryRoot)
365353
printer.Line("Current worktree: %s", result.CurrentWorktree)
366354
printer.Line("Current branch: %s", result.CurrentBranch)
367-
printer.Line("State: %s", result.State)
368-
printer.Line("Queue length: %d", result.QueueLength)
355+
printer.Line("State: %s", result.QueueSummary.Headline)
356+
printer.Line("Queue length: %d", result.QueueSummary.QueueLength)
369357
printer.Line("Queue summary: blocked=%t running_publishes=%t running_submissions=%t queued_work=%t",
370-
result.HasBlockedSubmissions,
371-
result.HasRunningPublishes,
372-
result.HasRunningSubmissions,
373-
result.HasQueuedWork,
358+
result.QueueSummary.HasBlockedSubmissions,
359+
result.QueueSummary.HasRunningPublishes,
360+
result.QueueSummary.HasRunningSubmissions,
361+
result.QueueSummary.HasQueuedWork,
374362
)
375363
printer.Line("Protected branch: %s", result.ProtectedBranch)
376364
printer.Line("Publish execution: configured_hook_policy=%s effective_hook_policy=%s hooks_bypassed_for_push=%t prepare=%t validate=%t",

internal/app/wait.go

Lines changed: 25 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -25,27 +25,22 @@ const (
2525
)
2626

2727
type integrationWaitResult struct {
28-
SubmissionID int64 `json:"submission_id"`
29-
Branch string `json:"branch"`
30-
SourceRef string `json:"source_ref,omitempty"`
31-
RefKind domain.RefKind `json:"ref_kind,omitempty"`
32-
SourceWorktree string `json:"source_worktree"`
33-
SourceSHA string `json:"source_sha"`
34-
RepositoryRoot string `json:"repository_root"`
35-
ProtectedBranch string `json:"protected_branch"`
36-
SubmissionStatus domain.SubmissionStatus `json:"submission_status"`
37-
PublishRequestID int64 `json:"publish_request_id,omitempty"`
38-
PublishStatus domain.PublishStatus `json:"publish_status,omitempty"`
39-
Outcome waitOutcome `json:"outcome"`
40-
DurationMS int64 `json:"duration_ms"`
41-
QueueState string `json:"queue_state,omitempty"`
42-
QueueLength int `json:"queue_length,omitempty"`
43-
HasBlockedSubmissions bool `json:"has_blocked_submissions,omitempty"`
44-
HasRunningPublishes bool `json:"has_running_publishes,omitempty"`
45-
HasRunningSubmissions bool `json:"has_running_submissions,omitempty"`
46-
HasQueuedWork bool `json:"has_queued_work,omitempty"`
47-
LastWorkerResult string `json:"last_worker_result,omitempty"`
48-
Error string `json:"error,omitempty"`
28+
SubmissionID int64 `json:"submission_id"`
29+
Branch string `json:"branch"`
30+
SourceRef string `json:"source_ref,omitempty"`
31+
RefKind domain.RefKind `json:"ref_kind,omitempty"`
32+
SourceWorktree string `json:"source_worktree"`
33+
SourceSHA string `json:"source_sha"`
34+
RepositoryRoot string `json:"repository_root"`
35+
ProtectedBranch string `json:"protected_branch"`
36+
SubmissionStatus domain.SubmissionStatus `json:"submission_status"`
37+
PublishRequestID int64 `json:"publish_request_id,omitempty"`
38+
PublishStatus domain.PublishStatus `json:"publish_status,omitempty"`
39+
Outcome waitOutcome `json:"outcome"`
40+
DurationMS int64 `json:"duration_ms"`
41+
QueueSummary queueSummary `json:"queue_summary,omitempty"`
42+
LastWorkerResult string `json:"last_worker_result,omitempty"`
43+
Error string `json:"error,omitempty"`
4944
}
5045

5146
type waitTarget string
@@ -70,12 +65,7 @@ type submissionWaitResult struct {
7065
PublishStatus domain.PublishStatus `json:"publish_status,omitempty"`
7166
Outcome waitOutcome `json:"outcome"`
7267
DurationMS int64 `json:"duration_ms"`
73-
QueueState string `json:"queue_state,omitempty"`
74-
QueueLength int `json:"queue_length,omitempty"`
75-
HasBlockedSubmissions bool `json:"has_blocked_submissions,omitempty"`
76-
HasRunningPublishes bool `json:"has_running_publishes,omitempty"`
77-
HasRunningSubmissions bool `json:"has_running_submissions,omitempty"`
78-
HasQueuedWork bool `json:"has_queued_work,omitempty"`
68+
QueueSummary queueSummary `json:"queue_summary,omitempty"`
7969
LastWorkerResult string `json:"last_worker_result,omitempty"`
8070
PublishFailureCause string `json:"publish_failure_cause,omitempty"`
8171
PublishFailureSummary string `json:"publish_failure_summary,omitempty"`
@@ -177,12 +167,12 @@ Flags:
177167
}
178168
printer.Line("Outcome: %s", result.Outcome)
179169
printer.Line("Queue summary: state=%s length=%d blocked=%t running_publishes=%t running_submissions=%t queued_work=%t",
180-
result.QueueState,
181-
result.QueueLength,
182-
result.HasBlockedSubmissions,
183-
result.HasRunningPublishes,
184-
result.HasRunningSubmissions,
185-
result.HasQueuedWork,
170+
result.QueueSummary.Headline,
171+
result.QueueSummary.QueueLength,
172+
result.QueueSummary.HasBlockedSubmissions,
173+
result.QueueSummary.HasRunningPublishes,
174+
result.QueueSummary.HasRunningSubmissions,
175+
result.QueueSummary.HasQueuedWork,
186176
)
187177
if result.LastWorkerResult != "" {
188178
printer.Line("Last worker result: %s", result.LastWorkerResult)
@@ -531,12 +521,7 @@ func populateIntegrationWaitQueueSummary(store state.Store, repoID int64, result
531521
if err != nil {
532522
return
533523
}
534-
result.QueueState = snapshot.Summary.Headline
535-
result.QueueLength = snapshot.Summary.QueueLength
536-
result.HasBlockedSubmissions = snapshot.Summary.HasBlockedSubmissions
537-
result.HasRunningPublishes = snapshot.Summary.HasRunningPublishes
538-
result.HasRunningSubmissions = snapshot.Summary.HasRunningSubmissions
539-
result.HasQueuedWork = snapshot.Summary.HasQueuedWork
524+
result.QueueSummary = snapshot.Summary
540525
}
541526

542527
func populateSubmissionWaitQueueSummary(store state.Store, repoID int64, result *submissionWaitResult) {
@@ -547,10 +532,5 @@ func populateSubmissionWaitQueueSummary(store state.Store, repoID int64, result
547532
if err != nil {
548533
return
549534
}
550-
result.QueueState = snapshot.Summary.Headline
551-
result.QueueLength = snapshot.Summary.QueueLength
552-
result.HasBlockedSubmissions = snapshot.Summary.HasBlockedSubmissions
553-
result.HasRunningPublishes = snapshot.Summary.HasRunningPublishes
554-
result.HasRunningSubmissions = snapshot.Summary.HasRunningSubmissions
555-
result.HasQueuedWork = snapshot.Summary.HasQueuedWork
535+
result.QueueSummary = snapshot.Summary
556536
}

0 commit comments

Comments
 (0)