Repository navigation
docs: integration notes, Vercel limits, SPEI testing, history; Supabase keep-alive - #143
Merged
Merged
Conversation
…y 6 hours Supabase pauses Free plan projects that see little database activity over 7 days. Nothing in the repo generated that activity, so a quiet week would pause the project and break the faucet dedup and the SPEI on-ramp. - api/_supabase.mjs: pingSupabase() reads one row (5 s timeout) and reports "ok", "not_configured" or throws. - /api/readiness now checks Supabase: 200 with checks.supabase "ok" or "not_configured", 503 "not_ready" when Supabase fails. No new Vercel function (still 10 of the Hobby limit of 12). - .github/workflows/supabase-keepalive.yml calls production /api/readiness at minute 17 every 6 hours and fails if Supabase is not "ok", so GitHub emails when the project stops answering. KEEPALIVE_BASE_URL (repo variable) overrides the URL. - Tests for the three readiness states; the shared test setup now skips window-only mocks when a test runs in the node environment. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdHcE65RWNbp7Fwjug6WZL
…d failure modes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdHcE65RWNbp7Fwjug6WZL
…ure modes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdHcE65RWNbp7Fwjug6WZL
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdHcE65RWNbp7Fwjug6WZL
…odes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdHcE65RWNbp7Fwjug6WZL
… failure modes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdHcE65RWNbp7Fwjug6WZL
…lls and WalletConnect Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdHcE65RWNbp7Fwjug6WZL
…s and failure modes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdHcE65RWNbp7Fwjug6WZL
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdHcE65RWNbp7Fwjug6WZL
…what is missing Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdHcE65RWNbp7Fwjug6WZL
…to do at the limit Function count verified against vercel.json (10 of 12) and limits checked against Vercel's docs on 2026-10-22. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdHcE65RWNbp7Fwjug6WZL
…Hub, Google Fonts and Lovable Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdHcE65RWNbp7Fwjug6WZL
…risks) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdHcE65RWNbp7Fwjug6WZL
… partial integrations Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdHcE65RWNbp7Fwjug6WZL
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdHcE65RWNbp7Fwjug6WZL
…s and current routes Removes outdated parts (XLM staking, Freighter-only auth, polling credit, staking APY) and links every layer to its integration note. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdHcE65RWNbp7Fwjug6WZL
…, scoring, loans and treasury Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdHcE65RWNbp7Fwjug6WZL
… faucet, readiness) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdHcE65RWNbp7Fwjug6WZL
…scheduled jobs Also removes the claim that the staking_pool ID is hard-coded and documents that contracts are redeployed, not upgraded. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdHcE65RWNbp7Fwjug6WZL
…ce; fix init args and URLs The migration guide described an upgrade path that the deployed contracts don't support (none implements an upgrade function), and its init commands were missing the admin/vault (staking_pool) and treasury (vinculo_lending) arguments. The runbook now points at the real production domain and the readiness check. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdHcE65RWNbp7Fwjug6WZL
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdHcE65RWNbp7Fwjug6WZL
…x runbook anchors Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdHcE65RWNbp7Fwjug6WZL
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Documents every external integration from the code and the merged PRs, corrects the docs that no longer matched the app, and adds a keep-alive so the Supabase Free project isn't paused for inactivity.
Code (one commit)
api/_supabase.mjs:pingSupabase()reads one row with a 5 s timeout./api/readinessnow checks Supabase:200withchecks.supabase"ok"or"not_configured",503"not_ready"when Supabase fails. No new Vercel function (still 10 of the Hobby limit of 12)..github/workflows/supabase-keepalive.yml: calls production/api/readinessat minute 17 every 6 hours and fails unless Supabase answers, so GitHub emails on failure.KEEPALIVE_BASE_URL(repo variable) overrides the URL; it can also be run by hand.src/test/setup.tsskips window-only mocks in node-environment tests.Why this design: Supabase pauses Free projects with too little DB activity over 7 days ("a few requests a day" prevents it). Vercel Cron on Hobby runs at most once a day, so a GitHub schedule is used instead.
Docs
docs/integrations/: overview table, Soroban RPC, Horizon + Friendbot, DeFindex, Privy, Stellar Wallets Kit, BlindPay (SPEI), Supabase, USDC faucet, Vercel (function count and Hobby limits checked against Vercel's docs on 2026-10-22), WebSocket (not connected), other services, pending/half-finished integrations.docs/spei-testing.md(sandbox setup, simulate, sentinel amounts, risks from Bind BlindPay SPEI payouts to a verified on-chain withdrawal #91/Make on-ramp settlement idempotent and gate simulate mode #92) anddocs/history.md(merged PRs by stage).architecture.md,flows.md,api.md(no nonce, all 10 endpoints),deployment.md(port 8080, every env var, scheduled jobs).contracts/migration.md: warning that no contract has anupgradefunction, plus correctedinitarguments.runbook.md: real production URLs.websocket.md: status note.00-Index.mdlinks everything.Checks
npm test: 60/60 pass (9 files).npx tsc --noEmit -p tsconfig.app.json: 23 errors, same asmain.find api -name '*.js' | wc -l= 10.docs/checked with a script.After merge
/api/readiness; then run supabase-keepalive once from the Actions tab to confirm it's green.Generated by Claude Code