@@ -243,29 +243,7 @@ func collectStatus(repoPath string, limit int) (statusResult, error) {
243243 }
244244
245245 ctx := context .Background ()
246- submissions , err := store .ListIntegrationSubmissions (ctx , repoRecord .ID )
247- if err != nil {
248- return statusResult {}, err
249- }
250- requests , err := store .ListPublishRequests (ctx , repoRecord .ID )
251- if err != nil {
252- return statusResult {}, err
253- }
254- events , err := store .ListEvents (ctx , repoRecord .ID , limit )
255- if err != nil {
256- return statusResult {}, err
257- }
258-
259- enrichedSubmissions , err := enrichStatusSubmissions (ctx , store , repoRecord .ID , cfg .Repo .MainWorktree , cfg .Repo .ProtectedBranch , submissions )
260- if err != nil {
261- return statusResult {}, err
262- }
263- estimate , err := collectExecutionEstimate (ctx , store , repoRecord .ID , cfg , submissions )
264- if err != nil {
265- return statusResult {}, err
266- }
267- enrichedSubmissions = annotateQueueEstimates (enrichedSubmissions , estimate )
268- queue , err := loadQueueSnapshot (store , repoRecord .ID )
246+ snapshot , err := loadRepoStatusSnapshot (ctx , store , repoRecord , cfg , limit )
269247 if err != nil {
270248 return statusResult {}, err
271249 }
@@ -278,12 +256,12 @@ func collectStatus(repoPath string, limit int) (statusResult, error) {
278256 ProtectedBranch : cfg .Repo .ProtectedBranch ,
279257 ProtectedBranchSHA : protectedSHA ,
280258 ProtectedUpstream : protectedStatus ,
281- ExecutionEstimate : estimate ,
259+ ExecutionEstimate : snapshot . ExecutionEstimate ,
282260 PublishExecution : buildPublishExecutionPolicy (cfg ),
283- Counts : queue .Counts ,
284- ActiveSubmissions : activeSubmissions ( enrichedSubmissions ) ,
285- ActivePublishes : activePublishes ( requests ) ,
286- RecentEvents : events ,
261+ Counts : snapshot .Counts ,
262+ ActiveSubmissions : snapshot . ActiveSubmissions ,
263+ ActivePublishes : snapshot . ActivePublishes ,
264+ RecentEvents : snapshot . RecentEvents ,
287265 }
288266 if currentBranch != "(detached)" && currentBranch != "" && currentBranch != cfg .Repo .ProtectedBranch {
289267 comparison , compareErr := engine .CompareBranches (cfg .Repo .ProtectedBranch , currentBranch )
@@ -292,34 +270,13 @@ func collectStatus(repoPath string, limit int) (statusResult, error) {
292270 result .RebaseGuidance = buildStatusRebaseGuidance (cfg , comparison , protectedStatus , layout .WorktreeRoot , currentBranch )
293271 }
294272 }
295- result .QueueSummary = queue .Summary
296- result .Alerts = buildStatusAlerts (result .Counts )
297- lockManager := state .NewLockManager (layout .RepositoryRoot , layout .GitDir )
298- if metadata , ok := readActiveLease (lockManager , state .IntegrationLock ); ok {
299- result .IntegrationWorker = & metadata
300- }
301- if metadata , ok := readActiveLease (lockManager , state .PublishLock ); ok {
302- result .PublishWorker = & metadata
303- }
304- result .ProtectedWorktreeActivity = buildProtectedWorktreeActivity (cfg .Repo .MainWorktree , result .IntegrationWorker , result .PublishWorker )
305- if len (enrichedSubmissions ) > 0 {
306- latest := enrichedSubmissions [len (enrichedSubmissions )- 1 ]
307- result .LatestSubmission = & latest
308- }
309- if len (requests ) > 0 {
310- latest := newStatusPublish (requests [len (requests )- 1 ])
311- if result .PublishWorker != nil && result .PublishWorker .RequestID == latest .ID {
312- latest .ActiveStage = result .PublishWorker .Stage
313- }
314- result .LatestPublish = & latest
315- }
316- if result .PublishWorker != nil {
317- for i := range result .ActivePublishes {
318- if result .ActivePublishes [i ].ID == result .PublishWorker .RequestID {
319- result .ActivePublishes [i ].ActiveStage = result .PublishWorker .Stage
320- }
321- }
322- }
273+ result .QueueSummary = snapshot .QueueSummary
274+ result .Alerts = snapshot .Alerts
275+ result .IntegrationWorker = snapshot .IntegrationWorker
276+ result .PublishWorker = snapshot .PublishWorker
277+ result .ProtectedWorktreeActivity = snapshot .ProtectedWorktreeActivity
278+ result .LatestSubmission = snapshot .LatestSubmission
279+ result .LatestPublish = snapshot .LatestPublish
323280
324281 return result , nil
325282}
0 commit comments