6 Commits
Author SHA1 Message Date
John Smith 44c1e82328 test(ui): emulator crawl tool (Phase 0 baseline)
Launches every registry app via the debug deep link, screenshots it, and
reports crashes (filtered to the app package) and blank screens. Baseline
run: 63/63 launch, 0 crashes, 0 blanks. Screenshots + JSON land in
git-ignored reports/emulator/.
2026-09-11 11:00:31 -04:00
John Smith 39f43e7954 chore: ignore Python bytecode (remove accidentally committed pycache) 2026-09-10 21:58:09 -04:00
John Smith 526f12a081 fix(ui): prevent vertical clipping of hub screen headers in CroppedHeader
Fixes an issue where top hub titles (e.g. 'music', 'videos', 'settings')
were horizontally sliced in half across their midsection.

- EdgeCropText.kt: Remove negative vertical offset (visibleHeight - fontSize)
  in CroppedHeader; align text to CenterStart with EDGE.dp leading margin.
- DoradoTokens.kt: Introduce HEADER_HEIGHT = 48dp and align
  TYPE_HEADER_CROP_VISIBLE to 48dp to accommodate full 40sp typography.
- MiniAppsUtilities.kt & Mocks.kt: Use TYPE_NOW_TITLE (26sp) for scaled
  numerical readouts formerly tied to TYPE_HEADER_CROP_VISIBLE.
- docs/zune-hd-ui-canon.md & design-tokens.md: Update canon section 3.4
  and design tokens to reflect vertical integrity and horizontal signature crop.
2026-09-10 18:39:18 -04:00
John Smith 5df8cebb3a Sprint 4: M4-M7 — marketplace, device sync, scrobble, lyrics + audio analysis
- Marketplace: full screen parity (apps, games, Music+Videos catalog)
- Device link: pairing, sync engine, transport abstraction, golden simulator
- Scrobble: Last.fm client + signature, scrobble store, background service
- Lyrics: LrcLib fetch + synced lyric screen
- Audio analysis: feature extractor, dynamic mix, PCM decoder
- New Room entities/DAOs/migrations for sync, features, scrobbles
- Settings: device link, scrobble, sync configuration
- Parity roadmap doc + sync_golden tool scaffold
- Tests: audio, scrobble, sync, device link, lyrics, dynamic mix
2026-09-10 14:22:29 -04:00
John Smith e6edeb1d48 Xune-HD: full Zune HD replication (reverse-engineered official apps)
Reverse engineers the 62 .zcp packages from the ZuneRedux archive
(docs/zcp-inventory.md) and re-implements the full Zune HD on-device
experience natively in Compose.

- Phase 0: NX container format documented; canonical AES-ECB payload
  identified as marketplace DRM (unrecoverable; binaries never bundled).
- Phase 1: Quickplay parallax reveal, full A-Z popup, tappable song title,
  artist bio/photos/related, Smart DJ shuffle, lock shade.
- Phase 2: Room v1->v2 migration (preserves pins/ratings/history) with
  7 new entities (notes, appointments, alarms, radio_stations,
  podcast_feeds/episodes, game_scores), mini-app platform scaffold,
  full 9-entry home menu, marketplace shell with apps pivot.
- Phase 3: 12 utility apps (calculator, notes, stopwatch, metronome, alarm,
  calendar, level, piano, drum machine, chord finder, music quiz, shuffle
  by album) backed by reusable PCM synth + Room.
- Phase 4: 4 games (solitaire, sudoku, hexic, reversi) with persistent
  high scores.
- Phase 5: media pivots (videos via ExoPlayer, pictures with Quickplay pin,
  podcasts via RSS XmlPullParser, radio dial with stream playback, internet
  WebView) and offline mock shells for dead services (weather, twitter,
  facebook, email, messenger, msn money, zune reader).
- Phase 6: Robolectric unit tests (21 LogicTest + design-invariant audit)
  covering game rules, Smart DJ shuffle, alarm scheduler, calculator
  expression evaluator, music quiz builder, radio dial frequency math,
  chord shapes, sudoku board validity, hexic rotations and reversi AI.

All canon deltas applied (canon §3.6 apps, §4 Smart DJ, §8 mini-app
platform, §9 mini-app behavior). Build green: assembleDebug + test + lint.
2026-09-09 21:09:49 -04:00
John Smith f125324641 Xune-HD: the Zune HD UI reborn as an Android music player
Initial build implementing phases 0-6:
- AGP 9 built-in Kotlin toolchain (KGP 2.4.20), Media3/ExoPlayer, Room, Coil3
- Zune HD design system: edge-crop typography, cropped-header back nav,
  480x272 device-mode canvas + adaptive reflow, decelerating motion
- Home menu + Quickplay (now playing / pins / history / new)
- Crossbar library (albums, artists, playlists, songs, genres) with
  alphabet rail
- Now Playing: swipe-to-skip, transport overlay, swipe volume, tri-state
  heart rating, idle screensaver over artist photography (MBID-keyed)
- Accent themes, palette wash, context menus, playlists
- Unit tests incl. design-invariant audit; Selawik (OFL) stand-in font
2026-09-09 18:41:44 -04:00