docs(v0.5.7): CHANGELOG + release-notes + badge
This commit is contained in:
76
CHANGELOG.md
76
CHANGELOG.md
@@ -6,6 +6,79 @@
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.5.7] — 2026-05-22
|
||||
|
||||
Сквозное ревью UX: пройдено 12 сценариев глазами пользователя, найдено
|
||||
13 проблем (3 настоящих бага P0 + 4 UX-просадки P1 + 6 мелочей P2),
|
||||
все починены.
|
||||
|
||||
### Fixed (P0 — функциональные баги)
|
||||
|
||||
- **Match-челленджи теперь пишутся в историю.** Раньше клик ✓ в окне
|
||||
Match Summary обновлял только локальный `Set<challengeId>` — челленджи
|
||||
не доходили до store, и стрик / today_done / достижения игнорировали
|
||||
игровые тренировки (самую главную фишку приложения). Сейчас IPC
|
||||
`markChallengeDone` пишет entry с `source='match'`,
|
||||
`exerciseId='challenge:<id>'`, `actualReps`, `reps` (snapshot).
|
||||
- **Tray-пауза синхронизирована с Dashboard.** Раньше «Пауза напоминаний»
|
||||
из tray использовала scheduler-local `paused` boolean, который не
|
||||
отражался в `settings.globalEnabled` — Dashboard показывал «running»
|
||||
с тикающим таймером, хотя fires не приходили. Сейчас единый
|
||||
source of truth — `settings.globalEnabled`. `setPaused/isPaused`
|
||||
удалены, IPC `pauseAll/resumeAll` переписаны на updateSettings.
|
||||
- **WhatsNew покажется обновляющимся пользователям.** В v0.5.6 логика
|
||||
была: `lastSeenVersion === undefined` → silent save (не показывать).
|
||||
Это означало что **никто** из текущих пользователей при апгрейде с
|
||||
v0.5.5 не увидит описание новых фич. Сейчас: если есть Exercise
|
||||
с `lastDoneAt` — пользователь существующий, показываем заметки
|
||||
текущей версии. Иначе (новичок) — silent.
|
||||
|
||||
### Fixed (P1 — UX просадки)
|
||||
|
||||
- **Удаление упражнения теперь спрашивает подтверждение.** Раньше
|
||||
один клик в menu «Удалить» сразу удалял. Сейчас iOS-style ConfirmModal
|
||||
с destructive-кнопкой.
|
||||
- **Daily goal закрыт — больше не «25 часов 13 минут».** Когда дневная
|
||||
цель достигнута, ExerciseCard показывает «Цель закрыта · 100/100»
|
||||
с success-зелёным цветом, а не запутанный обратный отсчёт до завтра.
|
||||
- **Авто-пауза на ВКС видна в Dashboard.** Раньше fires пропускались
|
||||
молча — пользователь не понимал почему через 12 мин ничего не пришло.
|
||||
Сейчас info-баннер «Не дёргаем — ты на встрече» с указанием закрыть
|
||||
Zoom/Teams/etc.
|
||||
- **Native `window.confirm()` → iOS-style ConfirmModal** в restore-операции.
|
||||
Раньше всплывал серый системный диалог.
|
||||
|
||||
### Fixed (P2 — полировка)
|
||||
|
||||
- **Achievement unlock celebration.** Когда впервые открылся новый
|
||||
badge — pulse + accent-glow анимация 2.8 сек. Список celebrated
|
||||
хранится в localStorage, при следующем заходе анимации нет.
|
||||
- **Match Summary close confirm.** При закрытии окна с незакрытыми
|
||||
челленджами спрашиваем подтверждение с указанием остатка.
|
||||
- **TTS задержка 800мс.** Дикторский голос даёт пользователю шанс
|
||||
decrement'нуть stepper — иначе TTS произносил планируемые reps в тот
|
||||
момент когда юзер уже изменил цифру.
|
||||
- **Tracking badge точность.** Раньше зелёный показывался даже при
|
||||
`queued` launch option. Сейчас 3 состояния: `live` (success, всё
|
||||
работает), `setup` (warning «закрой Steam и снова открой» если launch
|
||||
option ещё не применён), `off` (muted, не подключено).
|
||||
- **HistoryEntry хранит snapshot `reps`+`name`+`source`.** Heatmap и
|
||||
achievements больше не теряют данные после удаления упражнения.
|
||||
- **Adaptive-badge на ExerciseCard.** Маленькая Brain-иконка показывает,
|
||||
что упражнение в адаптивном режиме — пользователь понимает почему
|
||||
Next не строго равен intervalMinutes.
|
||||
|
||||
### Added
|
||||
|
||||
- `src/renderer/src/components/ui/ConfirmModal.tsx` — переиспользуемый
|
||||
iOS-style confirm с focus-trap'ом через Modal.
|
||||
- IPC `markChallengeDone(challengeId, reps)` — handler в main, метод в
|
||||
preload (раньше канал был в IPC enum, handler не зарегистрирован).
|
||||
- IPC `getMeetingActive` + event `evtMeetingChanged` — meeting-detect
|
||||
broadcast'ит при переходе on/off.
|
||||
- Helper `repsDoneTodayForExercise(history, exercise)` —
|
||||
per-exercise daily count для UI индикатора goal.
|
||||
|
||||
## [0.5.6] — 2026-05-22
|
||||
|
||||
Большой релиз с 7 новыми фичами + экран «Что нового», который покажется
|
||||
@@ -343,7 +416,8 @@
|
||||
иконки), системный трей, автозапуск с Windows, native-уведомления,
|
||||
NSIS-инсталлятор, auto-update через electron-updater.
|
||||
|
||||
[Unreleased]: https://xn--90adajar8af4h.xn--p1ai/git/AnRil/laude/compare/v0.5.6...HEAD
|
||||
[Unreleased]: https://xn--90adajar8af4h.xn--p1ai/git/AnRil/laude/compare/v0.5.7...HEAD
|
||||
[0.5.7]: https://xn--90adajar8af4h.xn--p1ai/git/AnRil/laude/releases/tag/v0.5.7
|
||||
[0.5.6]: https://xn--90adajar8af4h.xn--p1ai/git/AnRil/laude/releases/tag/v0.5.6
|
||||
[0.5.5]: https://xn--90adajar8af4h.xn--p1ai/git/AnRil/laude/releases/tag/v0.5.5
|
||||
[0.5.4]: https://xn--90adajar8af4h.xn--p1ai/git/AnRil/laude/releases/tag/v0.5.4
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## TL;DR
|
||||
|
||||
**Laude / Exercise Reminder** — Windows desktop приложение на Electron 33, которое напоминает делать упражнения и опционально парсит статистику матчей Dota 2 (через GSI) в количество повторений. Текущая версия — **0.5.6**. Один разработчик (AnRil), один remote — self-hosted Gitea.
|
||||
**Laude / Exercise Reminder** — Windows desktop приложение на Electron 33, которое напоминает делать упражнения и опционально парсит статистику матчей Dota 2 (через GSI) в количество повторений. Текущая версия — **0.5.7**. Один разработчик (AnRil), один remote — self-hosted Gitea.
|
||||
|
||||
## Стек
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Windows desktop приложение, которое напоминает делать упражнения во время работы за компьютером. Опционально подключается к Dota 2 и после каждого матча превращает статистику (смерти, убийства, ассисты) в количество повторений.
|
||||
|
||||
[](https://xn--90adajar8af4h.xn--p1ai/git/AnRil/laude/releases/latest)
|
||||
[](https://xn--90adajar8af4h.xn--p1ai/git/AnRil/laude/releases/latest)
|
||||
[]()
|
||||
[]()
|
||||
|
||||
|
||||
@@ -21,6 +21,86 @@ export type ReleaseNoteItem = {
|
||||
export type ReleaseNotes = Record<Language, ReleaseNoteItem[]>
|
||||
|
||||
export const RELEASE_NOTES: Record<string, ReleaseNotes> = {
|
||||
'0.5.7': {
|
||||
ru: [
|
||||
{
|
||||
title: 'Челленджи из матчей идут в историю',
|
||||
detail:
|
||||
'Раньше ✓ в Match Summary не считался — стрик и достижения игнорировали игровые тренировки. Исправлено.',
|
||||
tag: 'fix'
|
||||
},
|
||||
{
|
||||
title: 'Пауза из трея и из Dashboard теперь синхронизированы',
|
||||
detail: 'Раньше Dashboard показывал «running» когда tray был на паузе.',
|
||||
tag: 'fix'
|
||||
},
|
||||
{
|
||||
title: 'Удаление упражнения спрашивает подтверждение',
|
||||
tag: 'fix'
|
||||
},
|
||||
{
|
||||
title: 'Daily goal: «Цель закрыта · 100/100»',
|
||||
detail:
|
||||
'Когда дневная цель достигнута — больше не показываем обратный отсчёт «25ч 13м».',
|
||||
tag: 'fix'
|
||||
},
|
||||
{
|
||||
title: 'Видно когда мы молчим из-за ВКС',
|
||||
detail:
|
||||
'Запущен Zoom/Teams — на Dashboard баннер «Не дёргаем — ты на встрече».',
|
||||
tag: 'new'
|
||||
},
|
||||
{
|
||||
title: 'Celebration анимация на новых достижениях',
|
||||
tag: 'new'
|
||||
},
|
||||
{
|
||||
title: 'Tracking-badge точнее',
|
||||
detail:
|
||||
'Live / Setup (закрой Steam) / Off — раньше зелёный показывался даже когда launch option не применён.',
|
||||
tag: 'fix'
|
||||
}
|
||||
],
|
||||
en: [
|
||||
{
|
||||
title: 'Match challenges now write to history',
|
||||
detail:
|
||||
'Previously ✓ in Match Summary did not count — streak and achievements ignored game training. Fixed.',
|
||||
tag: 'fix'
|
||||
},
|
||||
{
|
||||
title: 'Tray pause and Dashboard pause are now synced',
|
||||
detail: "Previously Dashboard showed 'running' while tray was paused.",
|
||||
tag: 'fix'
|
||||
},
|
||||
{
|
||||
title: 'Exercise deletion asks for confirmation',
|
||||
tag: 'fix'
|
||||
},
|
||||
{
|
||||
title: 'Daily goal: "Goal hit · 100/100"',
|
||||
detail:
|
||||
'When the daily goal is met — no more confusing 25h countdown to tomorrow.',
|
||||
tag: 'fix'
|
||||
},
|
||||
{
|
||||
title: "Visible when we're quiet because of a meeting",
|
||||
detail:
|
||||
"Zoom/Teams running — Dashboard shows a banner: 'You're in a meeting'.",
|
||||
tag: 'new'
|
||||
},
|
||||
{
|
||||
title: 'Celebration animation on newly unlocked achievements',
|
||||
tag: 'new'
|
||||
},
|
||||
{
|
||||
title: 'Tracking badge more accurate',
|
||||
detail:
|
||||
'Live / Setup (close Steam) / Off — previously green even when launch option was not applied.',
|
||||
tag: 'fix'
|
||||
}
|
||||
]
|
||||
},
|
||||
'0.5.6': {
|
||||
ru: [
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user