1.4 KiB
1.4 KiB
Selective adopted-storage failure matrix
| Event | Required behavior | Forbidden outcome |
|---|---|---|
| USB absent at boot | Open internal channel/Now/Next DB; schedule cache empty/reacquires | boot/provider crashloop |
| Removal during read | cancel cursor, close external pool, retry against internal minimum | stale FD loop or TV UI ANR |
| Removal during write | rollback/discard incomplete external generation | promote partial DB |
| Slow/failing fsync | trip latency/I/O circuit breaker and fall back internal | block Live TV thread |
| External full | stop cache acquisition, retain internal authority | internal low-space warning caused by USB |
| Corrupt DB/sentinel | quarantine generation logically and rebuild later | attach/open as authoritative |
| Reinsert same UUID | verify schema, integrity and generation before use | blind reopen |
| Different/reformatted UUID | initialize a new cache | trust old pointer |
| Factory reset | forget pointer/key and recreate internal minimum | require removed USB to boot |
| OTA/schema change | migrate a copy or discard/reacquire cache | in-place irreversible migration without fallback |
| Standby/power loss | recover last committed generation | cross-volume atomicity assumption |
The external payload is reconstructible cache only. Channel numbering, favorites, recordings, timers, reminders, credentials and the minimal provider schema remain internal.