feat: add /summary, /setbreak, weekly totals, and fix command dispatch for arg-bearing commands

- Add /summary [YYYY-MM] command for monthly work/break/day-off totals

- Add weekly totals row to main menu status

- Add /setbreak <minutes> for configurable daily break threshold

- Fix HandleMessage routing: extract command name instead of exact match (fixes /export YYYY-MM, /edit, /note, /summary, /setbreak)

- Update README with full command table and configurable break docs
This commit is contained in:
2026-06-24 20:39:51 +03:30
parent 323c1bc010
commit 834c318271
6 changed files with 255 additions and 15 deletions

View File

@@ -52,18 +52,24 @@ The history view, export month picker, and date displays all adapt to the user's
### Commands
| Command | Action |
| --------------------- | ------------------------------------------------------- |
| `/start` | Show inline menu |
| `/clockin` | Record clock-in |
| `/clockout` | Record clock-out |
| `/remote` | Toggle remote/onsite |
| `/report` | Today's work & break summary |
| `/export` | Export this month (optional `YYYY-MM` in your calendar) |
| `/dayoff` | Toggle today as day off |
| `/edit YYYY-MM-DD` | View/edit events for a specific date |
| `/settimezone <IANA>` | Set timezone (e.g. `Asia/Tehran`) |
| `/settings` | Open settings menu |
| Command | Action |
| --------------------------- | ----------------------------------------------------------- |
| `/start` | Show inline menu |
| `/clockin` | Record clock-in |
| `/clockout` | Record clock-out |
| `/remote` | Toggle remote/onsite |
| `/report` | Today's work & break summary |
| `/export [YYYY-MM]` | Export monthly report (optional `YYYY-MM` in your calendar) |
| `/summary [YYYY-MM]` | Show monthly summary (optional `YYYY-MM`) |
| `/dayoff` | Toggle today as day off |
| `/edit YYYY-MM-DD` | View/edit events for a specific date |
| `/note [DATE] HH:MM <text>` | Set note for an event at a specific time |
| `/settimezone <IANA>` | Set timezone (e.g. `Asia/Tehran`) |
| `/setbreak <minutes>` | Set minimum break threshold (0-480, default 5) |
| `/setaccent` | Select export accent color |
| `/setreporttime HH:MM` | Set daily auto-report time |
| `/reporttoggle` | Enable/disable daily auto-report |
| `/settings` | Open settings menu |
## Daily Report
@@ -71,7 +77,7 @@ A daily summary is sent automatically at the user's configured report time (defa
## How Break Time Works
The gap between a clock-out and the next clock-in is counted as break. Gaps shorter than the **min break threshold** (default 5 minutes) are absorbed into work time.
The gap between a clock-out and the next clock-in is counted as break. Gaps shorter than the **min break threshold** (default 5 minutes) are absorbed into work time. Use `/setbreak <minutes>` to adjust per day (0-480).
```
09:00 Clock In → work starts