C1cold launch C2no session C3plain files C4diagnostics C5release gate

STOWAWAY

an offline record

STW‑001FIRST PRESSING2026 ONE RECORD11 TRACKS52:49 ONE SERVERONE USERNO DRM

33 1/3 RPM  ·  FULL DYNAMIC RANGE  ·  MP4 ONLY
PLAYS WITHOUT THE NETWORK’S PERMISSION

A person sitting on the roof of a hillside cabin at dusk, beside an antenna throwing concentric rings into a star field crossed by airliner contrails.

SLEEVE NOTE

Three consecutive flights.

Logo. Spinner. Black screen. Hours of downloaded film sitting on the disk, one tap away, unreachable — because a player had quietly decided that a thing already on the device required permission from somewhere else.

This record exists so that failure is structurally impossible, not merely fixed.

INNER GATEFOLD — “THE LAST EVENING BEFORE A LONG FLIGHT.”
The antenna is broadcasting. Nobody on that hill needs it to.

SIDE ONE

THE OFFLINE CONTRACT

  1. Cold Launch (All Radios Off)4:11
  2. Playback Without a Session3:02
  3. Plain Files5:40
  4. Diagnostics from a Dead App2:18
  5. Red Test, No Build Ships7:55

SIDE TWO

THE WORKING PARTS

  1. Connect2:44
  2. Quick Connect / Password3:19
  3. The Deliberately Dumb Picker1:57
  4. Stow11:08
  5. Library (read from disk)4:33
  6. Play6:02

Track 4 contains a long passage taken at wire speed.

STW‑001‑Afive clauses23:06
STW‑001‑Bsix parts29:43
TOTALone record52:49

STW‑001

THE OFFLINE CONTRACT

Five clauses. Non‑negotiable. Each one testable.

TERMS OF CARRIAGE  ·  DRAFTED 02 AUGUST 2026  ·  ONE SERVER, ONE USER

  1. C1 Cold launch with all radios off renders the local library from disk.

    Zero network calls on the launch path. No auth check, no reachability probe, no remote config, no first‑run experience fetched from anywhere. First run works in airplane mode, showing an empty library and a connect affordance.

  2. C2 Local playback never requires a live session.

    Backgrounding, force‑quit, device restart and token expiry must not affect playback of downloaded files. Credentials gate acquiring content. Never playing it.

  3. C3 Downloads are plain files.

    Stored in a Files‑app‑visible directory, named legibly, playable by anything else if Stowaway is deleted tomorrow. No proprietary packaging. No DRM.

  4. C4 Diagnostics reachable from a dead app.

    Logs are plain text in the same visible storage. If the app cannot boot, the logs are still retrievable.

  5. C5 C1 is a release gate.

    An automated launch test, network layer stubbed to hard‑fail, asserts the library screen renders. Red test, no build ships.

Countersigned by continuous integration — the airplane test, run on every build. Red test, no build ships.

LYRIC SHEET

SILENCE IS NEVER
AN OUTCOME

THE FEEDBACK CONTRACT — NAMED FOR THE LOGIN BUTTON
THAT SILENTLY ATE TAPS OVER PLAIN HTTP.

TEST PRESSING — WHAT IT HAS TO SURVIVE

  1. A1 The airplane test. CI launches the app with the network layer stubbed to hard‑fail and asserts the library screen renders from disk.
  2. A2 The field test. Three real flights, zero instances of downloaded content exists but is unreachable. The bar Plex failed.
  3. A3 The Streamyfin test. Point it at a plain http:// address, tap connect, and receive a useful sentence instead of nothing at all.

F1 Every user action produces a visible state change within one second — even if the state is trying.

F2 Every failure states what failed and what to do, in words. “Server rejected the password.” “This address uses plain HTTP, which iOS blocks; use HTTPS.” Never a dead button. Never a bare spinner.

F3 Network‑dependent UI is an explicit state machine — idle, working, success, failed‑with‑reason. No boolean spinner flags.

F4 Spinners are bounded. Anything that runs shows progress or times out into a sentence. Nothing spins forever.

NOT INCLUDED ON THIS RECORD

A hostile list is a feature. Everything above is something this record refuses to carry.

Colophon. Written & performed by JD Huntington. Recorded in Swift and SwiftUI, iOS / iPadOS 17 and up, universal; iPad is the primary instrument. Source material Jellyfin, which stays canonical — Stowaway owns nothing but its local copies. Behaviour mined from Swiftfin, under MPL‑2.0: URL normalisation, keychain and session handling, the state‑machine pattern. Mined, not forked; see NOTICE. Transfer mp4 · H.264 · 8‑bit · requireAvc · context=Static. Playback AVPlayer — PiP, AirPlay, hardware decode, best‑case battery. Deleted from the session MobileVLCKit and its 1.1 GB framework, 2 August 2026.