MCPcopy Create free account
hub / github.com/MiniCodeMonkey/chief / hasStatusChanged

Method hasStatusChanged

internal/prd/watcher.go:143–176  ·  view source on GitHub ↗

hasStatusChanged returns true if any story's inProgress or passes field changed.

(newPRD *PRD)

Source from the content-addressed store, hash-verified

141
142// hasStatusChanged returns true if any story's inProgress or passes field changed.
143func (w *Watcher) hasStatusChanged(newPRD *PRD) bool {
144 if w.lastPRD == nil {
145 return true
146 }
147
148 // If number of stories changed, treat as changed
149 if len(w.lastPRD.UserStories) != len(newPRD.UserStories) {
150 return true
151 }
152
153 // Build a map of old stories by ID for comparison
154 oldStories := make(map[string]*UserStory)
155 for i := range w.lastPRD.UserStories {
156 oldStories[w.lastPRD.UserStories[i].ID] = &w.lastPRD.UserStories[i]
157 }
158
159 // Check each new story for status changes
160 for i := range newPRD.UserStories {
161 newStory := &newPRD.UserStories[i]
162 oldStory, exists := oldStories[newStory.ID]
163
164 if !exists {
165 // New story added
166 return true
167 }
168
169 // Check if status fields changed
170 if oldStory.Passes != newStory.Passes || oldStory.InProgress != newStory.InProgress {
171 return true
172 }
173 }
174
175 return false
176}

Callers 2

TestHasStatusChangedFunction · 0.95
handleFileChangeMethod · 0.95

Calls

no outgoing calls

Tested by 1

TestHasStatusChangedFunction · 0.76