docs(v0.5.7): CHANGELOG + release-notes + badge
This commit is contained in:
76
CHANGELOG.md
76
CHANGELOG.md
@@ -6,6 +6,79 @@
|
|||||||
|
|
||||||
## [Unreleased]
|
## [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
|
## [0.5.6] — 2026-05-22
|
||||||
|
|
||||||
Большой релиз с 7 новыми фичами + экран «Что нового», который покажется
|
Большой релиз с 7 новыми фичами + экран «Что нового», который покажется
|
||||||
@@ -343,7 +416,8 @@
|
|||||||
иконки), системный трей, автозапуск с Windows, native-уведомления,
|
иконки), системный трей, автозапуск с Windows, native-уведомления,
|
||||||
NSIS-инсталлятор, auto-update через electron-updater.
|
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.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.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
|
[0.5.4]: https://xn--90adajar8af4h.xn--p1ai/git/AnRil/laude/releases/tag/v0.5.4
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
## TL;DR
|
## 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 и после каждого матча превращает статистику (смерти, убийства, ассисты) в количество повторений.
|
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 type ReleaseNotes = Record<Language, ReleaseNoteItem[]>
|
||||||
|
|
||||||
export const RELEASE_NOTES: Record<string, ReleaseNotes> = {
|
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': {
|
'0.5.6': {
|
||||||
ru: [
|
ru: [
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user