Sentinel
- Role
- Codeowner
- Stack
- Python · SQLite · systemd
What it solves
Steady income can still hit zero by payday when spending regulates to a perceived account balance — no sensor, no in-the-moment feedback. Sentinel is that sensor: it watches charges as they book (PSD2 Account Information via Enable Banking, read-only) and pushes cap alerts, recurring-bill checks, and one honest daily safe-to-spend number to a private Telegram chat.
Everything downstream of ingest is deterministic arithmetic. Money is integer cents end to end in SQLite; ingestion is idempotent and crash-safe; the feed's own liveness is monitored, so a stale ledger is never presented as gospel. It never moves money.
Deployed and in active daily use: it runs continuously on a Netcup Linux VPS under systemd-managed services and scheduled jobs for ingestion, policy evaluation, and reporting — with CI (ruff, mypy, an 80% coverage gate) guarding every change.
How it solves the problem
- Sourcegithub.com/…/sentinel
- READMEREADME.md
- SPECSPEC.md
- ADRsdocs/adr