Status
reviewingIndependent reviewSapphire API
Harden billing webhooks
Reject replayed webhook events and capture verification evidence.
Stop, retry, and request-changes update local mock state only. They do not call OpenClaw or GitHub.
Related GitHub board (read-only mock, not this Maximus project): Harbor Reviews
Priority / risk
highhigh riskRoute
cursor-acp / grok-4.6pinned · 10h 17mNext gate
Owner pull-request decisionBranch feat/billing-webhooksRoute explanation
Pinned builder remains Cursor ACP / Grok 4.6 High; reviewer is a distinct agent.
Plan v1 · approved
Add webhook idempotency keys, signature age checks, and captured test evidence.
- Replayed events are rejected
- Verification is captured from the runner, not agent prose
Verification: Contract tests plus independent review of auth boundaries.
Stage timeline
- Reviewer recorded one medium-severity replay finding.Aug 20, 11:59 PM EDT · corr-billing · measured
Worktree receipt
Files changed
- modified src/webhooks/billing.ts +86/−12
Commits
- c0ffee1 Add webhook idempotency keys
Verification evidence
- passed test · npm test · runner-sapphire-dev1
- passed security · npm run scan:secrets · runner-sapphire-dev1
Findings, artifacts, cost
- medium · src/webhooks/billing.ts: Replay window is 24h; reviewer recommends 5 minutes with captured evidence.
- report Webhook test report · internal
- Cost inferred 18.42 USD period estimate
Browser offline. Live missions, approvals, memory, GitHub Projects, and agent state need a reconnect. Nothing private is replayed from cache.