    /* ── 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"),
