feat: rebuilt interface, landing page, and the disclosure #40 asked for - #41
Merged
Conversation
#40 asked for Answers the review in one pass. **Landing page.** A real front door at `/`, with the dashboard moved to `/app`. Eight sections written to explain rather than impress: a hero whose counter is already ticking when you arrive, the problem stated in human terms, three steps, an interactive milestone gate you open yourself, three use cases, and a "what StelFlow deliberately cannot do" section that leads with the honesty rather than burying it. The jargon is gone from anything a visitor reads. No stroops, no SEP-41, no TTL, no accrual. "Withdrawn / Claimable / Held" became "Taken / Ready / Held". A cancelled stream's remainder is "Back with the sender" rather than "Unstreamed". Event descriptions read as sentences. **#40 — the disclosure the threat model was relying on.** T6 and T7 are accepted *on condition* that the interface discloses them, which made the acceptance dishonest while it did not. Now: the asset's issuer is resolved and clawback status reported before anything is escrowed, with an explicit "we could not check" state rather than a silent pass on lookup failure — reporting "no clawback" because a request failed is the one answer that could talk someone into a stream they would otherwise avoid. Naming yourself as approver warns inline, since the milestone editor defaults to exactly that. **VitePress removed.** It built a real static site, not just a local preview, but it was redundant once the landing page existed: GitHub renders `docs/` fine, and a second frontend is a second thing to keep current. **Comment density cut roughly in half** across the contract — 36-58% down to 16-25%. Kept what explains *why* and cannot be derived from the code; dropped the essays restating what the line below already says. **#12 — Spanish README**, produced as asked and labelled honestly at the top: an AI translation, with the English as authoritative and corrections invited. Technical terms stay in English per that issue's rule. **TESTING.md** — wallet-by-wallet walkthrough. Freighter is the recommendation: SDF-built, best Soroban support, and the app's default. Covers three funded accounts so you can play all three roles, a 5-minute short version, then the awkward cases worth trying — two-signature cancel, cliffs, deadlines, double withdrawal, and a finished stream. **DEMO.md** — a timed 120-second script with the setup that de-risks it, lines written to cover the 5-8 second confirmation gaps, and an explicit list of what to cut if you run long (and what never to). Verified: 75/75 contract tests, clippy clean on both targets, fmt clean, markdownlint clean across 28 files, 0 broken links across 29, web typechecks, lints and builds, and both routes exercised in a browser. Closes #12, #40. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
6 tasks
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.
Answers the review in one pass. Closes #12 and #40.
VitePress — removed
It was not only local: it built a static site for GitHub Pages, with the deploy workflow present but disabled. It is redundant now, though — GitHub renders
docs/perfectly well, and the landing page does the educating far better than a docs site would. A second frontend is a second thing to keep current, so it is gone.The interface, rebuilt
A real landing page at
/, dashboard moved to/app.The jargon is gone from anything a visitor reads. No stroops, no SEP-41, no TTL, no "accrual". In the app, Withdrawn / Claimable / Held became Taken / Ready / Held, and a cancelled stream's remainder now reads Back with the sender rather than "Unstreamed" — which was also factually misleading, since that money had already gone home.
Two pieces do the explaining that prose could not:
The section I would point at is "The interesting part is what StelFlow deliberately cannot do" — no upgrade button, no admin over funds, withdrawals that can never be blocked — followed immediately by an amber box saying it is unaudited and on testnet. Leading with the honesty rather than burying it is the tone throughout.
#40 — the disclosure the threat model was relying on
T6 and T7 are accepted on the explicit condition that the interface discloses them. That made the acceptance dishonest for as long as it did not.
#12 — Spanish README
Produced as you asked, and labelled honestly at the top: an AI translation, English authoritative, corrections invited. Technical terms stay in English per that issue's own rule, and the status banner keeps its full force.
Code quality
Contract comment density cut from 36–58% down to 16–25%. Kept what explains why and cannot be derived from the code; dropped the essays restating the line below them. Tests untouched and still 75/75.
The two new guides
TESTING.md — Freighter is the recommendation: built by the SDF, best Soroban support, and the app's default. It covers getting free test XLM from the faucet, setting up three accounts so you can play payer, earner and reviewer, a 5-minute short version, then the awkward cases — two-signature cancel, cliffs, deadlines, double withdrawal, finished streams.
DEMO.md — a timed 120-second script. The setup section exists because most of the risk is there, the narration is written to cover the 5–8 second confirmation gaps rather than leaving silence, and there is an explicit list of what to cut if you run long and what never to.
Verification
cargo fmt