Ensuring data integrity through planning vs execution separation
The anti-cheat system separates planning data (locked) from execution notes (editable).
User sets category, project, planning note. Data saved to PreSession table.
/api/mac_timer_start
/api/windows_timer_start
Planning fields locked. Slack notifications sent. User works on planned task.
Planned data shown as read-only. Only execution note editable.
/api/get_presession/{id}
/api/pomodoro/submit
Platform | Timer Start API | Planning Notifications | Anti-Cheat Forms | Status |
---|---|---|---|---|
Web Timer | ✅ Implemented | ✅ Working | ✅ Working | Complete |
Mac App | ✅ Implemented | ✅ Working | ❌ Missing | Needs Fix |
Windows App | ⚠️ UI updated, needs API integration | ❌ Needs timer start API call | ✅ Working | Needs API Integration |
Purpose: Create PreSession record and trigger planning notifications
{
"category": "Doing",
"duration": 25,
"project_id": "team_2",
"note": "Planning note here"
}
Response: Fast (<200ms) with background Slack processing
Purpose: Get planned data for anti-cheat post-session forms
{
"success": true,
"presession": {
"category": "Doing",
"planned_duration": 25,
"planning_note": "Planning note here",
"project": {
"id": "team_2",
"name": "Cross Border Summit",
"type": "team"
}
}
}
Purpose: Submit completed session with execution notes
{
"category": "Doing", // From PreSession (locked)
"project_id": "team_2", // From PreSession (locked)
"duration": 25, // From PreSession (locked)
"note": "What I actually accomplished", // Editable
"start_time": "2025-08-21T15:00:00Z",
"end_time": "2025-08-21T15:25:00Z"
}
/api/get_presession/{session_id}
when opening post-session form/api/windows_timer_start
when timer begins/api/get_presession/{session_id}
to load planned dataQuestions about the anti-cheat system? Contact the RegardingWork development team.
Full API Documentation