feat(web): My Wave button, mood picker and endless wave playback (M4)
ci / contract / contract (сгенерированный код совпадает с openapi.yaml) (push) Successful in 41s
ci / mobile / mobile (Metro-бандл Android) (push) Successful in 1m13s
ci / ts / ts (packages + web) (push) Successful in 1m14s
ci / api / api (push) Successful in 36s

- WaveButton: TypeScript port of the prototype's canvas animation
  (orb and liquid), breathing at rest, pulsing to the track's BPM and
  energy in the cover palette, following the cursor, pressing with a
  spring; reduced motion and hidden tabs slow or stop it
- home: the wave in the centre with activity and mood chips; changing
  them while playing rebuilds the upcoming tracks without stopping
- player wave mode: asks for the next batch when two tracks are left,
  sends complete / skip / early skip / like / dislike as feedback and
  refreshes the queue right after a reaction or an early skip
- tracks expose bpm, energy and loudness once analysed; library page
  shows analysis progress and 7-day wave metrics; wave style setting

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
mrleo1nidandClaude Opus 5.5 committed 2026-10-20 12:29:38 +03:00
1 parent 3908814cda
commit eaedd1fc62
24 files changed
+1193 -244

No files matched your search

+30 -1
View File
@@ -89,7 +89,10 @@
"session_current": "Это устройство",
"session_last_used": "Активность: {{date}}",
"session_end": "Завершить",
"logout_all": "Выйти на всех устройствах"
"logout_all": "Выйти на всех устройствах",
"wave_variant": "Вид волны",
"wave_orb": "Сфера",
"wave_liquid": "Жидкая"
},
"form": {
"show_password": "Показать пароль",
@@ -155,5 +158,31 @@
"empty_dislikes": "Треки с дизлайком не попадут в волну. Пока таких нет",
"play_all": "Слушать всё",
"more": "Показать ещё"
},
"wave": {
"title": "Моя волна",
"for_you": "Под ваш вкус",
"start": "Запустить «Мою волну»",
"pause": "Пауза «Моей волны»",
"activity_label": "Занятие",
"mood_label": "Настроение",
"reset": "Сбросить",
"empty": "В библиотеке пока нечего предложить",
"fallback": "Рекомендации временно упрощены",
"activities": {
"running": "Бегаю",
"workout": "Тренировка",
"waking_up": "Просыпаюсь",
"focus": "Работаю",
"commute": "В дороге",
"chill": "Отдыхаю",
"sleep": "Засыпаю"
},
"moods": {
"energetic": "Энергичное",
"happy": "Весёлое",
"calm": "Спокойное",
"sad": "Грустное"
}
}
}