feat(spine): Vapron-parity — Slack-compatible paging, mutual watch, exclusion rot rule #5521
ccantynzAI Reviewcommented 10d ago
AI Triage
(no summary)
Priority: medium Risk area: mixed
Suggested labels: (no label suggestions) Suggested reviewers: (no reviewer suggestions)
Suggestions only — nothing has been applied. The PR author stays in control.
gluecron[bot]🤖 botAI Reviewcommented 10d ago
AI review unavailable
The platform's AI balance is exhausted, so AI generation is temporarily unavailable. Nothing was lost. You can queue this as a repair for the internal agent from the repository's Health page, or try again once the balance is restored. The PR is otherwise unchanged.
Cross-repo impact
See what breaks downstream if this PR merges.
⮌ Merged
This pull request was merged into main.
c comment · e edit title · m merge · a approve · r request changes · ? shortcuts
Three of the Vapron briefing's four asks (#2 ships separately as systemd config)
textfield: pointingMONITOR_ALERT_WEBHOOK_URLat a Slack incoming webhook would have silently 400'd every page. Fixed; ntfy/Pushover behavior unchanged.PEER_WATCH_URLadds apeer:watchsynthetic check probing the peer's absolute URL every monitor tick — up/down rides the existing transition alerting, incident log, and paging webhook, so a dead vapron.ai pages exactly like a dead gluecron.com. (Absolute check URLs now probe as-is; the runner always base-prefixed before.) Off when unset — generic self-hosters have no peer.exclusion-rot.test.ts: everyci-test-excludes.txtentry must name a test file that still exists, actually be a test file, and the list must carry reasons — a stale exclusion fails the suite instead of aging into false-negative blindness. The selfcheck engine already enforced this forselfcheck-ignoremarkers; this extends the principle to the biggest remaining skip list.Owner wiring after merge (on 161,
/opt/gluecron/.env+ container recreate):MONITOR_ALERT_WEBHOOK_URL=<Slack webhook or ntfy topic>andPEER_WATCH_URL=https://vapron.ai/.Tests: 4 new peer-watch/text tests, 3 rot tests, fanout suite 6/6, env-drift green, typecheck clean.
🤖 Generated with Claude Code