Removals (net -570 lines):
- Delete the Instructions and Feedback (feature_requests) pages + backend.
- Retire lp_profiles + investor_type across server, ingest, and seeds; migration
0008 drops both empty tables (a sanctioned one-off exception to
never-hard-delete). 0001's lp_profiles ALTER is removed so a fresh DB doesn't
break the migration chain (live DBs already applied it).
Fixes:
- Email sync: a transient timeout no longer terminally parks a mailbox; the
scheduler retries 'retrying' each cycle and re-includes errored accounts on an
hourly backoff, so stuck mailboxes self-heal.
- Mobile Contacts: page through the full directory (server caps 500/page) -- one
fetch silently truncated at 720, hiding people from the list and from search.
- Mobile email review: clock icon to set a reminder inline; approval cards show
date/time.
New:
- Admin-only purge of soft-deleted rows (Settings -> Admin; type-to-confirm,
refuses any row still linked to live data).
Tests: 45/45 (adds test_sync_ready + test_purge_soft_deleted). Reviewer pass
applied (NULL reminders.contact_id on contact purge). Bumped to v0.1.0:104.
Move subsystem mechanics (migrations, thesis gate, redaction, ingest,
email, packaging) out of AGENTS.md into docs/guides/<topic>.md, each
scoped by paths: frontmatter and symlinked from .claude/rules/ so Claude
Code lazy-loads them. AGENTS.md keeps whole-repo facts and universal
guardrails plus a one-line index per guide. Fix the inaccurate
".claude/ is gitignored" note — it is tracked.