azurenoops / azurenoops/spin_agent
[S-02] Conflict resolution UI presents resolution flow but does not persist outcomes
- Dominant language
- C#
- Stars
- 3
- Forks
- 1
- Avg merge
- 18h 9m
- Merged PRs (30d)
- 43
Description
## Summary
**Severity:** P2 — Data Integrity / UX Deception
**Phase:** Phase 4 Remediation (API Contract Hardening)
**Audit Reference:** SPIN Agent Product Integrity Report, Phase 1
## Finding
The conflict resolution UI (S-02) presents a complete resolution workflow — users can view conflicts, select resolutions, and confirm. However, the resolution decision is never persisted. On reload, all conflicts reappear as unresolved. Users believe they have resolved conflicts; the data does not reflect this.
## Impact
- Users are deceived into thinking conflicts are resolved when they are not
- Repeated conflict resolution attempts waste user time
- Compliance workflows that depend on conflict-free state may proceed incorrectly
- No audit trail of resolution decisions
## Reproduction
1. Navigate to a screen with conflict resolution UI
2. Resolve one or more conflicts and confirm
3. Reload the page
4. Observe: conflicts reappear as unresolved
## Acceptance Criteria
- [ ] Conflict resolution decisions are written to the database on confirmation
- [ ] UI reflects persisted state on reload (resolved conflicts do not reappear)
- [ ] E2E test: resolve conflict → reload → assert resolved state persists
- [ ] Audit log entry created for each conflict resolution action
## Related
- Audit artifact: SPIN Agent Product Integrity Report (Phase 1)
Contributor guide
Research direction
Start by locating the conflict resolution UI and tracing the confirmation flow to the database persistence path. Check how resolved state is loaded after a page reload, then add the requested end-to-end coverage for resolve → reload and verify that each resolution creates an audit log entry.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- database, full-stack, testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100