Every morning, scan ~/.local/state/bounded-email/ for pending (account,to) threads that have been blocked >24h with no ack, and surface them as a single e-ink card on the TCL tablet showing 'who's waiting on you' grouped by recipient. Turns the invisible bounded-email backlog into a glanceable morning triage list — right now blocked threads pile up silently until you trip over them mid-send.
Create ~/bin/bounded-email-tablet-brief (bash, ~60 lines): (1) jq over ~/.local/state/bounded-email/*.json to extract threadId, account, to, blocked_since; (2) filter age > 24h via date math; (3) group by 'to' field, count threads, find oldest; (4) render markdown card with 'bounded-email-ack
**Created**
- `~/bin/bounded-email-tablet-brief` (81 lines, executable) — scans `~/.local/state/bounded-email/*.json`, filters pending threads older than 24h (configurable via `BOUNDED_EMAIL_AGE_HOURS`), groups by recipient (oldest-first within group), and writes a markdown card to `~/Tablet/inbox/bounded-email-backlog-YYYY-MM-DD.md` for tablet-sync to pick up. Empty backlog → no file written. Inline `bounded-email-ack <id>` per thread plus a copy-paste "ack all" block.
- `~/bin/bounded-email-tablet-brief.bats` — 5 tests covering empty state, fresh-only (no file), one stale (contains threadId + ack), mixed (excludes fresh), grouped-by-recipient (single header). All pass.
**Wired up**
- Cron `0 7 * * *` installed via safe-append, logs to `~/.cache/bounded-email-tablet-brief.log`.
**Verified live**
- Real run produced `~/Tablet/inbox/bounded-email-backlog-2026-05-20.md`: 3 stale threads across 2 recipients (you owe acks to ethan@braceyourself.solutions ×2 and kristin@exi.global ×1).
Side note: the SessionStart hook flagged that no async-loop is active for this project. If you want one bootstrapped for `~`, say the word and I'll invoke `/async-loop`.