Skip to content

feat(r01): Stripe cash path, goal scorecard, PTV, multi-domain ops - #1

Merged
Igor Holt (igor-holt) merged 7 commits into
mainfrom
feat/r01-public-stripe-checkout
Jul 29, 2026
Merged

feat(r01): Stripe cash path, goal scorecard, PTV, multi-domain ops#1
Igor Holt (igor-holt) merged 7 commits into
mainfrom
feat/r01-public-stripe-checkout

Conversation

@igor-holt

Copy link
Copy Markdown
Member

Summary

  • R01 public Stripe webhook fulfillment path, inference meter go-live, cashflow booking
  • Goal scorecard (13×$70k) + procedural truth in maintenance cycle and Agents SDK MaintenanceAgent
  • Airflow 3.3 state-store DAGs for scorecard/reconcile; Axiom north-star dashboard specs
  • Stripe Directory partner shortlist + vault/webhook setup tooling
  • x402 monetize server + revenue flywheel helpers

Test plan

  • python3 swarm/test_procedural_truth_verifier.py (9/9) on diamondnode
  • node --test scripts/x402-monetize-server.test.mjs (8/8)
  • node scripts/goal-scorecard.mjs → PTV PASS, scorecard JSON
  • POST https://inference.yennefer.quest/webhook/stripe fail-closed 503 until vault secret
  • Install STRIPE_WEBHOOK_SECRET / register with STRIPE_SECRET_KEY
  • One signed checkout.session.completed mints key + books R01 cashflow

Go-live blockers

  • STRIPE_WEBHOOK_SECRET not in vault
  • Stripe Payment Links unset

diamondnode-ops added 7 commits July 21, 2026 02:43
Expose 127.0.0.1:8792 via named tunnel inference-meter at
https://inference.yennefer.quest (cert zone). Durable systemd unit
cloudflared-inference, public URL files, and quick-tunnel fallback example.
Preferred hostname inference.genesisconductor.io pending zone CNAME.
- Block public /admin/* at cloudflared edge (404 before origin)
- Drop non-intentional hostname inference.genesisconductor.io.yennefer.quest
- Add ops-inference-meter.service unit; enable meter + tunnel when creds exist
- Soften public /pricing checkout_note (no /admin/keys mint advertising)
- Prefer runtime public URL under reports/ (config only if INFERENCE_WRITE_CONFIG=1)
- Add cloudflared-inference + ops-inference-meter to heal/verify allowlists
Add POST /webhook/stripe with Stripe-Signature HMAC verification,
session→key mapping (Redis+disk), GET /issued-key for success-page
redeem, and checkout URL placeholders on GET /pricing. On
checkout.session.completed mint tier key and recordCashflow(R01).
Reject missing webhook secret with 503; never log full API keys.
- Retry cashflow on already_fulfilled when cashflow_recorded is false
- On first fulfill, mint key with cashflow_recorded=false; if ledger
  write fails return cashflow_pending so webhook answers 500 and Stripe
  retries (success only after cashflow sticks)
- Include session_id in cashflow note for ops audit
- tierFromCheckoutSession no longer defaults paid sessions to starter;
  only metadata.tier/plan or exact cents 2900/14900/99900 resolve
npm run test:inference hits live :8792 for health, chat auth,
admin unauth, and Stripe webhook rejection without printing keys.
- verify: Inference meter (R01) boundary + optional public URL (trycloudflare non-critical)
- maintenance-cycle: log estimated_mrr, active_keys, public URL; write reports/r01-go-live.json
- STATUS: buyer playbook for Stripe webhook → https://inference.yennefer.quest/webhook/stripe
…ain ops

- Wire procedural truth + goal scorecard into maintenance cycle and Agents SDK
- Add Firecrawl monitor specs, Airflow 3.3 state-store DAGs, Axiom north-star dashboard
- Stripe Directory partner shortlist + vault/webhook setup script for go-live
- x402 monetize server tests and revenue flywheel helpers
@gemini-code-assist

Copy link
Copy Markdown

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

@igor-holt
Igor Holt (igor-holt) merged commit 66659ca into main Jul 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant