Skip to content

docs(app): document per-route state instead of claiming the flows are done - #29

Merged
YazarAyobami merged 3 commits into
mainfrom
docs/readme-refresh
Oct 8, 2026
Merged

YazarAyobami merged 3 commits into
mainfrom
docs/readme-refresh

Conversation

@YazarAyobami

Copy link
Copy Markdown
Contributor

What and why

The README said "Send, claim, decline, and lock-detail flows work end to end against testnet." That is ahead of reality on three counts: /payee and /attester are stubs, the Playwright e2e is still test.fixme, and there is no rate provider. Overstating status in the repo a contributor reads first is the worst place to be wrong.

Changes

  • Per-route table: seven real flows (/, /request, /send, /claim/[id], /locks/[id], /r/[txHash]/[eventIndex], /verify) and /payee / /attester marked as stubs with their rows (M3-11, M3-12).
  • Status block updated: M3-06 in progress, e2e not yet enabled, USD-only display with a note while M3-16 is open, Phase 4 at 11 DONE / 6 IN PROGRESS / 9 TODO.
  • Documented the five rules this repo enforces: money pages read chain; the claim fragment never leaves the browser (proxy.ts nonce CSP on /claim/*, site-wide Referrer-Policy: no-referrer, nosniff, X-Frame-Options: DENY, zero third-party scripts, claim links only in localStorage with export); amounts shown honestly through AssetLabel/AmountDisplay/DateTimeDisplay with RateProvider failing closed; no hard-coded country (messages/en.json, an inline-string guard test, Intl); and only lib/sdk.ts talks to the contract, with wallets behind Stellar Wallets Kit.
  • Called out the lib/payees/known.ts caveat: three testnet fixture payees (KE, NG, PH) re-derived and matched against live getPayee; status and payout always come from chain; the deployed app currently runs without NEXT_PUBLIC_INDEXER_URL.
  • Commands, toolchain versions, required env vars, and the manual vercel --prod deploy caveat.

Hard rules / invariants touched

3 (chain is truth), 5 (no personal data / claim fragment never reaches a server), 7 (honest wording), 11 (country-agnostic core). Documentation of existing enforcement; no behavior change.

Tests

Docs only. Route list from the app router directory; the CSP and header rules from proxy.ts; the component names from components/; the fixture payees and getPayee cross-check from lib/payees/known.ts; test.fixme and the missing rate provider verified by reading the e2e spec and RateProvider call sites. I did not run pnpm e2e or pnpm dev for this PR, since nothing executable changed.

Docs / ADR

README.md only. No ADR.

Roadmap

No row changes. Changelog entry added (2026-10-08, docs/readme-refresh, app).

Assumptions and open questions

  • The honest-but-unflattering status is deliberate. If you'd rather the README read like a product page, say so and I'll soften it, but I'd argue against.
  • Branch from origin/main; the unmerged feature branch is not stacked here.

… done

"Send, claim, decline and lock-detail work end to end" overstated it:
/payee and /attester are stubs, the Playwright e2e is still fixme, and
there is no rate provider so displays are USD-only. List each route's
real state and the rules the repo enforces (chain-is-truth, fragment
never leaves the browser, no hard-coded country).
@YazarAyobami
YazarAyobami requested a review from a team as a code owner October 8, 2026 14:00
@YazarAyobami
YazarAyobami merged commit 61a344a into main Oct 8, 2026
3 of 4 checks passed
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