|
1 | 1 | # Changelog |
2 | 2 |
|
| 3 | +## [v0.8.0] - 2025-12-18 |
| 4 | + |
| 5 | +### 🚀 Stable release — Timeline & Work Gap engine |
| 6 | + |
| 7 | +This release marks the **first stable 0.8.x version** and concludes the alpha/beta cycle with a fully consolidated |
| 8 | +timeline engine, correct multi-pair handling, and a refined CLI experience. |
| 9 | + |
| 10 | +--- |
| 11 | + |
| 12 | +### ✨ Highlights |
| 13 | + |
| 14 | +- **Stable multi-pair daily model** |
| 15 | + - Unlimited IN/OUT pairs per day |
| 16 | + - Persistent pair numbering |
| 17 | + - Fully deterministic timeline reconstruction |
| 18 | + |
| 19 | +- **Working gap support (final)** |
| 20 | + - Explicit `--work-gap` / `--no-work-gap` flags on `OUT` events |
| 21 | + - Gaps can be added, removed, or edited retroactively |
| 22 | + - Correct impact on worked time, expected exit, and surplus |
| 23 | + - Clear visual indicators (🔗 / ✂️) |
| 24 | + |
| 25 | +- **Accurate time calculations** |
| 26 | + - Worked time now correctly: |
| 27 | + - sums all pairs |
| 28 | + - subtracts non-working gaps |
| 29 | + - includes working gaps only when explicitly marked |
| 30 | + - Expected exit is consistently based on: |
| 31 | + - first IN of the day |
| 32 | + - configured minimum working time |
| 33 | + - lunch rules and windows |
| 34 | + - Surplus calculation is now fully reliable in all scenarios |
| 35 | + |
| 36 | +--- |
| 37 | + |
| 38 | +### 🧠 Changed |
| 39 | + |
| 40 | +- `OUT` events without `--pos` now **inherit the position of the corresponding IN** |
| 41 | +- Day details view shows **pair-level positions**, not aggregated day position |
| 42 | +- Timeline, pairing, and gap logic fully unified across: |
| 43 | + - `list` |
| 44 | + - `list --events` |
| 45 | + - `list --details` |
| 46 | + - exports |
| 47 | + |
| 48 | +--- |
| 49 | + |
| 50 | +### 🗄️ Database & Migration |
| 51 | + |
| 52 | +- New stable column `events.work_gap` |
| 53 | +- Safe, idempotent migrations with: |
| 54 | + - automatic schema alignment |
| 55 | + - backup before destructive changes |
| 56 | +- Automatic recalculation of pairs and daily summaries after edits |
| 57 | + |
| 58 | +--- |
| 59 | + |
| 60 | +### 🖥️ CLI & UX |
| 61 | + |
| 62 | +- Unified message system across all commands: |
| 63 | + - ℹ️ info · ⚠️ warning · ❌ error · ✅ success |
| 64 | +- Clear, explicit confirmation messages for gap edits |
| 65 | +- Cleaner event listings: |
| 66 | + - no duplicated dates for multiple pairs |
| 67 | + - improved visual alignment |
| 68 | + |
| 69 | +--- |
| 70 | + |
| 71 | +### 📦 Export system (stable) |
| 72 | + |
| 73 | +- Fully refactored export architecture |
| 74 | +- Supported formats: |
| 75 | + - CSV |
| 76 | + - JSON |
| 77 | + - XLSX |
| 78 | + - PDF (multipage, styled, dynamic titles) |
| 79 | +- Shared helpers and consistent overwrite handling |
| 80 | + |
| 81 | +--- |
| 82 | + |
| 83 | +### ⚠️ Breaking changes |
| 84 | + |
| 85 | +- Legacy `work_sessions` table is no longer used |
| 86 | +- Timeline-based model is now the single source of truth |
| 87 | +- CLI behavior fully aligned with the new flag-based syntax introduced in 0.8.x |
| 88 | + |
| 89 | +--- |
| 90 | + |
| 91 | +### ✅ Final notes |
| 92 | + |
| 93 | +`v0.8.0` represents a **major architectural milestone**. |
| 94 | +The internal engine is now considered **stable, correct, and extensible**. |
| 95 | + |
| 96 | +Future releases will focus on: |
| 97 | + |
| 98 | +- automated tests |
| 99 | +- performance refinements |
| 100 | +- advanced reporting and statistics |
| 101 | + |
| 102 | +--- |
| 103 | + |
3 | 104 | ## [v0.8.0-beta3] - 2025-12-15 |
4 | 105 |
|
5 | 106 | ### ✨ Added |
|
0 commit comments