Skip to content

Implement VatioBoard OS v1 with shell apps, launcher, TTS, and persistent UX#26

Merged
vatiolibre merged 58 commits into
mainfrom
feature/vatioboard-os
Jun 7, 2026
Merged

Implement VatioBoard OS v1 with shell apps, launcher, TTS, and persistent UX#26
vatiolibre merged 58 commits into
mainfrom
feature/vatioboard-os

Conversation

@vatiolibre

Copy link
Copy Markdown
Owner

This PR introduces the VatioBoard OS platform layer and migrates the application experience from legacy page/tool wiring into first-class route apps, shell-window apps, runtime services, and manifest-driven launch behavior.

Major changes include:

  • Add the VatioBoard OS app platform:
    • app manifests, registry, launcher, permissions, lifecycle, runtime services, storage/settings, background services, and shell app runtime management
    • App Manager, Start Menu, shell taskbar, app launcher menu, and OS documentation
  • Migrate existing tools/apps into first-class OS apps:
    • Calculator, Energy / Trip Cost, Camera Map, Speed Alerts, Player, Milkdrop
    • Speed, Board, Library, Replay, and Accel route wrappers
  • Add new apps and experiences:
    • TTS app with Piper engine, worker protocol, asset cache, resources, and OS integration
    • Premium Clock app with alarms/timer/stopwatch-style shell window
    • Code Rain app with fullscreen fallback and redesigned controls
  • Improve shell-window behavior:
    • persisted layout restore across refresh/revisit
    • minimum window sizing and panel bounds hardening
    • taskbar/window layering fixes
    • close/minimize/restore support across OS panels
  • Improve login/account UX:
    • vb-account-panel integration
    • hidden backend auth debug controls by default
    • guest-friendly login prompting only when required
    • cloud sync login action opens the account panel instead of the launcher
  • Improve Milkdrop UX:
    • OS-consistent header/controls
    • fullscreen Safari/iPhone behavior
    • preset persistence and ergonomic controls
  • Add licensing and project docs:
    • AGPL/open-core licensing files
    • app-platform docs and migration guides
  • Expand test coverage:
    • app platform, launcher, route wrappers, shell windows, account panel, TTS cache, Premium Clock, Code Rain, Milkdrop, Speed Alerts, Camera Map, Calculator, Energy, and smoke tests

Notes

This is a large architectural PR. The main intent is to establish VatioBoard OS as the durable foundation for future apps while preserving existing legacy behavior through compatibility wrappers and focused migration seams.

…rified. I tightened the app service contract so runtime services require both manifest.services and matching permissions, fixed the Speed full-suite initialization edge, and updated docs/handoff with the latest verification results.
…added src/apps/calculator/ as a wrapper around the existing widget, wired it to vatio.calculator, and preserved the old shell window ID calculator, legacy tool ID calculator, floating-tool/start-menu/taskbar behavior, visibility, position, and direct widget compatibility.
… OS shell-window app, following the Calculator pattern and preserving legacy behavior.
…pp wrapper under src/apps/speed-alerts, without changing the existing panel UI or legacy launch contract.
…pper under src/apps/player. The app shell now creates the persistent player through createPlayerApp(), which resolves vatio.player via shellAppRuntimeManager, keeps the existing shared audio-runtime singleton, and preserves queue/session restore, Media Session, background audio, pinned/local media, shell-window behavior, and direct widget compatibility.
…Launcher().openApp(appId) can now instantiate lazy shell-window app entries from a fresh shell manager, instead of requiring a wrapper to have registered the window first.
…hout rewriting the Board controller. vatio.board now loads through src/apps/board/, while src/app/views/BoardView.ts remains a compatibility re-export.
…library/ without rewriting src/library/library.ts.
…rough src/apps/replay/, while src/app/views/ReplayView.ts remains a compatibility re-export. The existing Replay controller/UI stayed intact.
…ross Speed, Board, Library, Replay, and Accel, added shared test helpers, added cross-app contract coverage, audited runtime seams, and documented the final route-app contract.
…voke logic was added, and I did not change Player, Speed Alerts, GPS, or audio lifecycle behavior.
@vatiolibre
vatiolibre merged commit a3f1aca into main Jun 7, 2026
2 checks passed
@vatiolibre
vatiolibre deleted the feature/vatioboard-os branch June 14, 2026 12:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants