Fix critical concurrency bug where simultaneous ReportCompletion calls from multiple parties could cause lost database updates. Changed from UPSERT-all to UPDATE-individual pattern to ensure each participant status update is atomic and won't be overwritten by concurrent transactions. Before: All participants were UPSERTed in single transaction, causing last-commit-wins behavior that lost earlier status updates. After: Each participant is UPDATEd individually using UPDATE...WHERE, then INSERT only if row doesn't exist. This prevents concurrent updates to different participants from conflicting. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| backend | ||
| docs | ||
| frontend | ||
| kubernetes | ||
| scripts | ||
| tests | ||
| .gitignore | ||
| README.md | ||
| docker-compose.yml | ||