Files
SoulStream/handoff/rounds/ins-r35-doc-export.txt
T
KeelrLeek 9f0601027c 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.
2026-09-14 07:57:41 -05:00

20 lines
1.3 KiB
Plaintext

- **Exporting** (`playlist_export`, the playlist's own sheet and the shelf
card's): the desktop's five profiles, in the desktop's order and its own
words — M3U8, XSPF, PLS, CSV and the backup JSON. The file is built in
Rust by `playlist_formats`, ABOVE the platform fork, so the phone never
rebuilds a format and the two exports cannot drift. The doors differ
because the answers do: `tauri-plugin-dialog` does open Android's
create-document sheet, but it answers with a `content://` URI and
`std::fs::write` cannot take one, so on the phone the bytes go to
`tauri-plugin-storage`'s `create_document` and its Kotlin writes them
through the ContentResolver (`openOutputStream(uri, "wt")`), wherever the
sheet pointed. That is a plugin function called from Rust, not a command:
the file never passes through the WebView, and nothing was added to the
ACL. A dismissed sheet resolves nothing and the phone says nothing —
which is the desktop's `Ok(None)`. A row with no local file exports
exactly as it does on the desktop: named, with a comment where the
location would be (M3U8), carried without a location (XSPF, CSV, the
backup), or left out (PLS, which holds only real files). The locations
that ARE written are this phone's own paths, inside the app's folder —
the format behaving correctly, not a bug to rewrite.