Commit Graph

20 Commits

Author SHA1 Message Date
posimai dcb0274de7 fix: add Authorization header to POST /api/feed request 2026-04-10 18:06:47 +09:00
posimai d3d1980bfc chore: migrate font Inter → Geist + Lucide integrity hash 2026-04-10 08:09:47 +09:00
posimai 58f06ac82e fix: add standard line-clamp property for compatibility 2026-03-29 21:32:05 +09:00
posimai 3eb72c7706 fix: VPS text update, SW clients.claim fix 2026-03-29 21:25:42 +09:00
posimai 1338c309f7 fix: add SRI integrity hashes to Lucide CDN script 2026-03-27 20:23:19 +09:00
posimai d3a0eee052 perf: add preconnect hints for external origins 2026-03-27 09:46:23 +09:00
posimai 4108a85678 perf: add preconnect for unpkg.com 2026-03-27 09:35:12 +09:00
posimai 7eba92f44b fix: update API URL to api.soar-enrich.com 2026-03-26 23:05:07 +09:00
posimai 3052045b0a fix: migrate API endpoint from Synology to VPS (posimai.soar-enrich.com) 2026-03-25 23:21:53 +09:00
posimai 0984a87b77 fix: remove client warmup that was blocking TTS requests 2026-03-25 09:11:48 +09:00
posimai 8b88340045 fix: correct speaker IDs, add male voices (Aoyama, Kurono) 2026-03-23 00:48:12 +09:00
posimai d471ef153c fix: increase font sizes, icon sizes, reduce player spacing for mobile 2026-03-23 00:15:46 +09:00
posimai dcdac89470 feat: client-side TTS warmup after feed load 2026-03-22 23:39:28 +09:00
posimai 1353d455e4 fix: retry TTS_BUSY up to 3 times with backoff
Auto-retries on TTS_BUSY (2s/4s/6s backoff) so pre-warm race at
startup is transparent to the user.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 18:23:39 +09:00
posimai 605b2697d1 feat: personalized feed — fetch /feed/media when API key is set
If API key present, GET /feed/media from Brain API to collect user's
custom sources, then POST to Feed API with customFeeds array.
Falls back to default GET if no key or fetch fails.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 17:06:22 +09:00
posimai ef35f18223 fix: surface VOICEVOX errors via toast (401/503/network)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 16:48:36 +09:00
posimai 40efd9b8e3 feat: Daily-style wave/particles, skip buttons inline, speed to settings
- Replace Canvas wave with CSS div bars + sparkle animation (Daily style)
- Add radial glow behind waveform + particle burst around play button
- Play button: Daily style (glow, inset highlight, pulse ring when playing)
- Move skip-back/forward next to play button (horizontal row)
- Remove separate controls bar
- Move speed selector into settings panel
- Add VOICEVOX speaker selector in settings panel (ずんだもん/春日部つむぎ/四国めたん)
- Article list: show publishedAt time ago next to source
- Article list: external-link icon button on right (opens URL in new tab)
- stopPropagation on link button so tap doesn't trigger playback jump

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 14:40:02 +09:00
posimai 0c81dcf06f refactor: redesign UI — article title at top, fix list display, larger fonts
- Move article title/source/meta OUT of player into .brief-now-playing section at top
- .brief-player now contains only wave canvas + play button (prevents overflow issue)
- Increase font sizes: title 18→20px, list 13→14px, top bar 13→14px
- Add HTML escaping (esc()) in renderList to prevent XSS/broken layout
- Fix skip() to use articles.length (not speechQueue.length) for bounds
- Guard updateListHighlight against null querySelector results
- Remove defer from inline script (ignored for inline scripts, was misleading)
- Add border-top to brief-list for clear visual separation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 14:26:21 +09:00
posimai 9adbf23768 feat: add article list below player
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 14:10:48 +09:00
posimai 7e0dd8b686 feat: initial Brief PWA — 音声ブリーフィング 2026-03-21 13:37:40 +09:00