Files
SoulStream/handoff/rounds/ins-r26-halfsheet-copy.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

19 lines
1.1 KiB
Plaintext

/* the desktop's copy_stream_to_folder: the cached stream written into a
folder picked on this phone, as the file it is — no re-download, no
tagging, no library row. Nothing leaves the phone, so the Wi-Fi guard
has no say here. A track that has not finished streaming is counted
back as missing, never fetched. */
async function copyToFolder(entries) {
const files = entries.filter((e) => e.t?.stream && e.t.path).map((e) => ({ username: e.t.stream.username, path: e.t.path }));
if (!files.length) return;
try {
const r = await api.pickLibraryFolder();
if (!r?.path) { player.error = "That folder has no path the phone can write to — pick one on this phone's storage."; return; }
const [saved, missing] = await api.copyStreamToFolder(files, r.path);
note(saved ? saved + " file" + (saved === 1 ? "" : "s") + " copied" + (missing ? " · " + missing + " not cached yet" : "")
: "Not cached yet — play it through first");
} catch (e) {
if (!/cancelled/.test(String(e))) oops(e);
}
}