68fed087-9049-446f-bfc5-3f8.../Sources/ui
徐翔宇 d4fea96d17 feat(clockout): celebration on boundary cross
Prior: clockoutRemainingSec rolled forward to tomorrow the moment
target <= now, so the panel jumped 1s → 86399s with no observable
"zero" — the most expected moment of the day was silent.

Now:
- clockoutRemainingSec returns 0 when past today's clockout (sits
  at 0 until midnight rolls the calendar component)
- WorkerStore detects the >0 → 0 edge in tickFire, fires per-day-
  deduped celebration (notification + Glass × 3 + panel banner ~5s)
- SoundPlayer.playClockoutCelebration: Glass.aiff × 3 with 0.6s gap
  (joyful 1.8s shot, not the sit Morse's 15s nag)
- ClockoutView overlays a lime→tomato gradient banner driven by
  store.clockoutCelebrationActive
- tipText rewrite — old text said "不会响铃" which contradicts

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 09:48:21 +08:00
..
ClockoutView.swift feat(clockout): celebration on boundary cross 2026-05-20 09:48:21 +08:00
ExpandedView.swift v0.1.0: initial 摸鱼侠 — Worker Toolkit plugin for MioIsland 2026-04-27 20:21:12 +08:00
PomodoroView.swift fix: pomodoro paused-in-break fraction + notif status wired to store 2026-05-19 17:54:28 +08:00
SitView.swift feat: v0.2.0 — sleep-aware timers + auto-loop pomodoro 2026-04-30 11:23:09 +08:00
Theme.swift v0.1.0: initial 摸鱼侠 — Worker Toolkit plugin for MioIsland 2026-04-27 20:21:12 +08:00
WaterView.swift v0.1.0: initial 摸鱼侠 — Worker Toolkit plugin for MioIsland 2026-04-27 20:21:12 +08:00
WeekendView.swift v0.1.0: initial 摸鱼侠 — Worker Toolkit plugin for MioIsland 2026-04-27 20:21:12 +08:00