This commit is contained in:
2026-06-23 19:10:42 +03:30
commit c803239193

39
AGENTS.md Normal file
View File

@@ -0,0 +1,39 @@
# Agents.md
## Current Task
Build a simple Telegram timetracking bot in Go.
## Context Summary
- **User requirements**: only clockin / clockout, autoinfer breaks, onsite/remote flag (ask after first clockin), i18n (fa/en), SQLite storage, monthly .xlsx export, HTTP proxy support, Docker, CI via Gitea.
- **Design decisions**: single user, event pairing logic, minimal SQLite schema, ondemand Excel download, Docker multistage, CI/CD workflow.
- **Implementation plan**: 11 phases (scaffold → Docker → CI), with edgecase handling (multiple clockouts, missed clockout, midnight sessions, timezone).
## Edge Cases Covered
- Multiple clockouts → treat middle clockout as break start.
- No clockout → blocked unless clockin first.
- Midnight or overnight sessions → attributed to originating day.
- Unpaired final event → indicates currently clockedin.
- Remote work flag set after first clockin (default onsite).
## Edge Cases Checklist
- [ ] Clockin/out validation (no duplicate in/out).
- [ ] Onsite/remote flag storage.
- [ ] i18n message loading (fa/en).
- [ ] Excel file saved monthly and on demand.
- [ ] Proxy configuration respected for all outbound traffic.
## Next Steps (TODO)
1. Scaffold repo & config loader.
2. Initialize SQLite DB and event models.
3. Implement Telegram bot core with proxy transport.
4. Add clockin / clockout handlers with validation.
5. Build event pairing & daily/weekly/monthly totals logic.
6. Create monthly .xlsx template and generation.
7. Implement dayoff handling and editevent UI.
8. Add Dockerfile, dockercompose, and Gitea CI workflow.
9. Polish i18n, error handling, and edgecase tests.