2026-03-30
LATEST5 mudanças
✦NEW2
- M3Swap environment mid-session without ending flow — "Trocar" button in HUD opens an animated inline preset picker.
- M5Wall Street environment added — replaces Old Library. Includes brown noise, server hum, keyboard typing, and distant footsteps.
◈FIXED3
- B9App window now opens centered on the monitor where your cursor is, not the primary display.
- B7AI no longer assigns car-only sounds (wiper, blinker) to café or office environments — system prompt rewritten with strict per-scene rules.
- B3Pro upgrade CTA no longer flashes free tier state after upgrading — tier is now cached across widget rebuilds.
2026-03-29
6 mudanças
◈FIXED6
- B1Event sounds (wood creak, keyboard click, etc.) no longer stack on top of each other — only one instance per sound plays at a time.
- B23D audio positioning now works correctly — listener orientation vectors (at/up) were missing and caused flat mono output.
- B8Snow Cabin environment was silent due to the 3D audio bug above — fixed as a side-effect of B2.
- Event sound intervals now respect the 45–90s minimum range from spec. Overlap after fade-out eliminated.
- Ending a session then restarting no longer triggers a phantom "session completed" event.
- Soft 2-minute fade-out on session complete no longer blocks the app state machine.
2026-03-28
3 mudanças
⊞INFRASTRUCTURE2
- Backend packaged as a multi-stage Docker image (golang:1.22-alpine → alpine:3.19) for Railway deployment.
- Added railway.toml with /health check and restart policy.
◈FIXED1
- Web: login no longer loops back to /auth after Google OAuth — fixed Next.js middleware redirect.
2026-03-27
5 mudanças
⬡SECURITY1
- Backend now verifies JWTs using ES256 via Supabase's JWKS endpoint, with HS256 fallback.
◈FIXED4
- Google OAuth deep link now uses a single-instance lock to prevent duplicate auth windows.
- Arrow keys and ESC now work together in the command bar quick-actions.
- Logout button added to the bottom bar.
- Enter key now submits in the command bar.
// END OF HISTORY