You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(sprint): add sprint progress tracking with scope change visibility (#14)
* feat(sprint): add sprint progress tracking with scope change visibility
Add comprehensive sprint progress tracking to the Sprint widget:
- Progress bars showing completion percentage for issues and story points
- Visual indicators for days remaining in sprint (danger/attention/secondary)
- Scope change tracking showing recently added items after sprint start
- Assignee avatars with tooltips for recently added issues
- Points badges for items with story point values
- Metric bars with smooth CSS transitions respecting reduced-motion preference
- Error handling with Flash warnings for failed progress loads
Technical changes:
- New SprintProgressView component for displaying progress metrics
- Background message handlers for getSprintProgress requests
- GraphQL queries for fetching sprint progress data and field configurations
- Extended message types for SprintProgressData and SprintInfo
- SprintSettings type for configuration storage
UI follows Primer design system with proper color tokens, spacing,
and motion preferences support.
* fix(sprint): address code review issues from PR #14
Fixes the following issues identified by cubic-dev-ai:
1. **sprint-progress-view.tsx**: Guard async sendMessage results in useEffect
- Add cancelled flag to prevent stale responses from overwriting state
- Skip state updates if component unmounted or dependencies changed
2. **sprint-modal.tsx**: Prevent choosing same status for Done and Not started
- Filter out the selected done option from the not started dropdown
- Show validation error if user attempts to select the same option
3. **background/index.ts**: Include settings in sprint progress cache key
- Cache key now includes all settings that affect computation:
sprintFieldId, doneFieldId, doneOptionId, notStartedOptionId,
pointsFieldId, and sprintSnapshotAt
- Prevents stale metrics when settings change
4. **background/index.ts**: Fix scope-change classification time precision
- Use full ISO timestamp instead of date-only comparison
- Same-day additions after the snapshot time are now correctly identified
5. **graphql/queries.ts**: Increase fieldValues cap from 20 to 50
- Prevents omission of required fields on projects with many fields
- Aligns with existing sprint pagination patterns
0 commit comments