Architecture

┌─────────────────────────────────────────────────────────┐
│  Pi4 Agent (cron or webhook-triggered)                  │
│                                                         │
│  Loop:                                                  │
│   1. Check seedbank for new/changed docs                │
│   2. If new docs exist:                                 │
│      a. Render markdown → TXT/EPUB for KOReader         │
│      b. Open telnet to Kindle                           │
│      c. Poll: is device awake? is KOReader running?     │
│      d. Push new docs via netcat                        │
│      e. Trigger KOReader to open latest                 │
│   3. Log: what was pushed, when, read status            │
│                                                         │
└─────────────────────┬───────────────────────────────────┘
                      │ telnet (local network)
                      ▼
┌─────────────────────────────────────────────────────────┐
│  Kindle PW5 (jailbroken, SpringBreak)                   │
│                                                         │
│  telnetd running (scriptlet: Start telnet)              │
│  KOReader installed (scriptlet: KOReader Installer)     │
│  Ads disabled (scriptlet: Disable ADs)                  │
│  OTA permanently blocked (KUAL: renameotabin)           │
│  KOReader launcher (scriptlet, asap mode)               │
└─────────────────────────────────────────────────────────┘