android: the handoff — the pending rounds, the pipeline, and what is unverified
Everything written this session that has not been through the device: rounds 43 to 48 (each patch adversarially verified, 43's transient-notice expectation fixed), a partial round 49, the pipeline scripts, the Android Auto design and the icon comparison mock. Also the two harness changes that were never A/B'd — adaptive waits, which may only shorten a declared wait and never lengthen it, and a ship that runs the mock walk and the deploy at the same time. The A/B and its 255-step baseline are in handoff/tools; main stays at what the phone has actually walked.
This commit is contained in:
1 parent
867fd42972
commit
9f0601027c
400 files changed
+26401
-3
No files matched your search
@@ -0,0 +1,45 @@
|
||||
## Not done yet
|
||||
|
||||
Thirty rounds in, this is the honest map: what is deliberately absent, what
|
||||
is waiting on Rust, and what is simply smaller than the rest. Most of what
|
||||
the backend exposes and the phone never calls is a whole module it has no
|
||||
business calling, so the list is by module — that is the reason, not the
|
||||
symptom.
|
||||
|
||||
- **Off by design — the private layer.** Spaces, holdings, the sealed inbox,
|
||||
friends by key, shared playlists, Who has it, the persona and its profile,
|
||||
and the Soulseek↔persona link: sixty-six commands across ten modules
|
||||
(`freenet` 7, `friends` 7, `holdings` 8, `inbox` 3, `persona` 6, `profile`
|
||||
4, `proposals` 3, `shared_playlists` 13, `slsk_link` 5, `spaces` 10).
|
||||
Freenet on the phone is a later experiment; the network side is in, and
|
||||
rooms and chat are built and mock-walked. A live room is Kyle's to join.
|
||||
- **Off by design — the desktop's own machinery.** The tag-import pipeline
|
||||
(all sixteen of `import.rs`: its audition, its cover report, its portable
|
||||
root — which is the import session's root, not the library folder); hover
|
||||
previews (all eight of `preview.rs`), and with them the three pause/fade
|
||||
acknowledgements that live there because they exist only to hand silence
|
||||
between the main player and the preview player; the mini window, the glass
|
||||
mode, Show in folder and SMTC; the updater (the phone's own build of it
|
||||
answers honestly that there is no channel here, and the version is in You,
|
||||
from `app_status`); the hero GPU upscaler, the cover-wordmark OCR and its
|
||||
debug tools. The phone shows a wordmark the page carries; it does not run
|
||||
the pipeline that makes one — and it does not fetch a 3000px cover upgrade
|
||||
over mobile data for a screen that cannot show it, which is why
|
||||
`catalog_cover` and `invalidate_catalog_cover` stay here too.
|
||||
- **Off by design — external runtimes.** yt-dlp and deno, the vocal
|
||||
separator, the lyric alignment models, and the listener door that needs
|
||||
them.
|
||||
- **Waiting on Rust, not on a picker.** Playlist EXPORT: `tauri-plugin-dialog`
|
||||
does open Android's create-document sheet from Rust, but it answers with a
|
||||
`content://` URI and `playlist_export` writes with `std::fs::write`, which
|
||||
cannot take one. It needs a ContentResolver write, or the bytes handed to
|
||||
an outbound share intent — and `crates/tauri-plugin-share` is inbound-only
|
||||
today. Playlist-FILE import wants a `pick_file` in the storage plugin,
|
||||
beside the `pick_folder` and `pick_image` it already has.
|
||||
- **Still desktop-only, smaller.** Drag reorder (Move up / down / to the top
|
||||
stand in), catalog track previews, the full discography page, and the
|
||||
fused-artist portrait verdict — that last one needs the identity merge the
|
||||
phone does not run, so porting it means porting the merge first.
|
||||
- **Per library folder.** Follows and the play history live in the library
|
||||
folder, so the phone's own folder starts empty of both; they arrive with a
|
||||
shared library.
|
||||
Reference in new issue
Block a user