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.
13 lines
1.1 KiB
Plaintext
13 lines
1.1 KiB
Plaintext
/* ── the playlist export ──────────────────────────────────────────
|
|
Where the file went is the only thing the command answers, so the
|
|
notice naming it IS the feature; a dismissed sheet has to leave the
|
|
screen exactly as quiet as it found it; and a refusal has to arrive
|
|
as a sentence, because "permission denied (os error 13)" is the one
|
|
string Android hands back when the document is out of reach. */
|
|
"export-open": (i) => i.title.startsWith("Late night drive") && i.plrows >= 1 && !i.toast,
|
|
"export-sheet": (i) => i.half.includes("up") && /M3U8/.test(i.halfText) && /Backup \(JSON\)/.test(i.halfText),
|
|
"export-written": (i) => !i.half.includes("up") && /Exported as .+\.csv/.test(i.notice) && !i.toast,
|
|
"export-cancelled": (i) => !i.half.includes("up") && !i.notice && !i.toast,
|
|
"export-refused": (i) => /refused access/.test(i.toast) && !/os error|permission denied/i.test(i.toast),
|
|
"export-clear": (i) => /^(Good |Still)/.test(i.title) && !i.toast && !i.notice && !i.half.includes("up"),
|