aboutsummaryrefslogtreecommitdiffstats
path: root/src/i18n.js
Commit message (Collapse)AuthorAgeFilesLines
* The profile editor learns to take a photo, not just a URL: an Upload button ↵Adam Soltys2026-08-281-0/+1
| | | | | | | feeds the same signed nostr.build path the onboarding picker uses and fills the picture field with the result Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* Renewals earn a line in the ledger: "Renewed ↻" rows in history showing ↵Adam Soltys2026-08-281-1/+2
| | | | | | | what the round cost (or "free"), with the in-and-out detail behind them — and the toast is simply "Renewal requested" Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* The advisory names both prices: "renew for 2 sats to bring that down to ↵Adam Soltys2026-08-281-2/+2
| | | | | | | about 1,060" — and stays silent when renewing wouldn't actually help; the toast learns to speak in one plain breath Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* The exit-cost advisory moves to where eyes already are: a quiet line under ↵Adam Soltys2026-08-281-2/+1
| | | | | | | the Spending balance — current trustless-exit price, the renewal that shrinks it, one inline Renew now — instead of a settings card nobody would know to dig for Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* The tradeoff gets a quiet advanced card, not a quiz: when coins run four or ↵Adam Soltys2026-08-281-0/+5
| | | | | | | more hops deep, Settings grows an "exit cost" card naming today's trustless-exit price and offering a one-tap renewal that flattens the history — invisible to everyone whose coins are shallow Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* An exit dearer than its cargo is not an option: when the trustless road ↵Adam Soltys2026-08-281-0/+1
| | | | | | | would cost more than it moves, the fallback says so plainly and points at Lightning — the road with no mining fees — instead of offering an 8,486-sat ticket for 928 sats of passenger Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* No exit leaves without fare money: starting one now requires Savings to ↵Adam Soltys2026-08-281-1/+2
| | | | | | | cover the estimated hop fees (named in the refusal), and a mid-flight stall says exactly how many sats the next step needs and that it resumes on its own Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* The explorer link stops blinking with the retry loop — it shows only for ↵Adam Soltys2026-08-281-1/+1
| | | | | | | transactions genuinely broadcast — and the ETA drops its tilde: "about 25 hours" says approximate once, in words Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* The send flow chooses the road itself: cooperative always goes first, and ↵Adam Soltys2026-08-281-2/+3
| | | | | | | only when the server actually refuses does the trustless fallback appear — stating up front that the whole balance exits to Savings, how long it takes, and the mining-fee reserve Savings will pay, with the button disabled until Savings can cover it Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* The send page sends and history remembers: an in-flight exit is a pending ↵Adam Soltys2026-08-281-1/+4
| | | | | | | history record with its own detail card (ETA, explorer link, cancel while it's real) — pasting an address with everything mid-exit now stays on the send form with a plain no-spendable-balance error and a link to that record, and the exit page drops its double balance Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* The exit page stops arguing with itself: the header names how much is ↵Adam Soltys2026-08-281-0/+2
| | | | | | | mid-exit, and the cooperative card explains that the balance is held by the exit below — and that cancelling it (while nothing has broadcast) frees the coins for the cooperative road Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* The details page honors the rail you rode: a Lightning payment keeps its ↵Adam Soltys2026-08-281-0/+2
| | | | | | | bolt on the detail view instead of confessing the ark underneath, and the preimage — the receipt merchants actually ask for — is shown and copyable Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* The exit tells one story instead of narrating hops: a single line — total ↵Adam Soltys2026-08-281-3/+3
| | | | | | | sats, an honest ETA through chain, timelock and claim — with a block-explorer link for the tx actually out there, and one cancel button that exists only while cancelling is true (nothing broadcast, driver waiting on fees) Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* The switcher catches up: it says Accounts tooAdam Soltys2026-08-281-1/+1
| | | | | Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* The word settles where it belongs: the things you save, unlock, rename and ↵Adam Soltys2026-08-281-21/+21
| | | | | | | remove are Accounts now — "wallet" stays for the seed, the app, and the money itself Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* The shop blurb finds its final fit: "Support Coinos and wear the proof on ↵Adam Soltys2026-08-281-1/+1
| | | | | | | your avatar." Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* The hat stand gets its button back: "Support Coinos, Buy a Hat!" — a ↵Adam Soltys2026-08-281-1/+1
| | | | | | | proper button beside the avatar, not a shy link Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* The wallet remembers it has a spending side: the relay backup carries the ↵Adam Soltys2026-08-281-3/+0
| | | | | | | hint, stamped the moment spending becomes real, so a restore paints Spending from its first frame instead of reflowing when the name lookup catches up — and the sign-in toasts are gone, since a wallet appearing announces itself Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* Silence is the normal price: the renewal forecast only speaks when a fee is ↵Adam Soltys2026-08-271-1/+0
| | | | | | | actually coming — free renewals pass without comment Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* The hat shop blurb tips its brim and says less: just "Support coinos and ↵Adam Soltys2026-08-271-1/+1
| | | | | | | wear the proof." Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* Each door leads to its own room: choosing Nostr shows only the nostr ways in ↵Adam Soltys2026-08-271-1/+1
| | | | | | | — Google and passkey stay on the porch where they already stand, though link and reconnect keep the full set, since a Google-born account needs the same door back Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* One tap, one dialog: a passkey sign-in with nothing on the device rolls ↵Adam Soltys2026-08-271-2/+0
| | | | | | | straight into creating one — the browser's own passkey sheet is the confirmation, and dismissing it is a quiet cancel, not an error Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* Renewal becomes a promise you can read: coins now live sixty days (pool ↵Adam Soltys2026-08-271-0/+4
| | | | | | | coins thirty, not three), the refresh base fee is gone and the brackets quartered, the app renews only the coins that need it inside the free final window — with free rescue even past expiry — and the wallet screen quietly states when the next renewal comes and what it costs, which is now almost always the word "free" Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* The Google button keeps its own counsel: no flickering narration beneath it ↵Adam Soltys2026-08-261-4/+0
| | | | | | | — just a quiet spinner in place of the label while the popup does the talking Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* All three doors on the porch: Google, passkey, and Nostr sign-in stand ↵Adam Soltys2026-08-261-1/+2
| | | | | | | directly on the welcome screen — Google and passkey act in place, the Nostr button steps into the signer list as before Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* The door says what it is: "Sign in" — Google and passkeys live behind it ↵Adam Soltys2026-08-261-2/+2
| | | | | | | now, not just nostr Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* Two new doors, no new locks: "Sign in with Google" (pomegranate — the ↵Adam Soltys2026-08-261-0/+8
| | | | | | | nostr key FROST-sharded 2-of-3 across community operators, Google as coordinator and recovery, a plain bunker:// URI feeding the existing signer flow) and passkey sign-in (WebAuthn PRF derives the key deterministically, treated exactly like a pasted nsec, synced wherever the platform carries the passkey) — both lazy chunks, neither touching the first paint Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* Fewer words on the hat stand: the profile link now just says "Buy your ↵Adam Soltys2026-08-261-1/+1
| | | | | | | avatar a hat" Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* The hat pitch moves next door to the head it would sit on: a small "Support ↵Adam Soltys2026-08-261-0/+1
| | | | | | | Coinos — buy a hat for your avatar" link beside the profile avatar replaces the block button buried in the editor Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
* A missing signer opens a door instead of a toast: the reconnect screen ↵Adam Soltys2026-08-181-0/+2
| | | | | | | offers the extension, the signer-app link, or a pasted key — same account enforced — and the silent reattach closes it on its own when it lands Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* The on-chain send from Spending shows both doors: the cooperative exit it ↵Adam Soltys2026-08-181-0/+2
| | | | | | | always was, with the unilateral hatch one quiet link away — promoted to a button the moment the server stops cooperating Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* Money finds its way to Spending: the setup wizard ends with a top-up step ↵Adam Soltys2026-08-181-0/+3
| | | | | | | when Savings can fund one, and a low Spending face wears a one-tap Top up from Savings button Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* An empty Spending stops being a dead end: the zap button becomes the door to ↵Adam Soltys2026-08-171-0/+1
| | | | | | | boarding, prefilled with what the payment needs and open to more Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* Typed names take the instant rail too: a Send button outranks the Zap for ↵Adam Soltys2026-08-171-0/+1
| | | | | | | our domains, resolving to the ark address instead of an LNURL round-trip that needs the recipient awake Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* The savings-only card offers the door: Set up a spending account sits right ↵Adam Soltys2026-08-171-1/+1
| | | | | | | on the balance instead of hiding behind a face you can't swipe to Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* Staging gets a hat economy of its own: mutinynet mints on its own CLN into ↵Adam Soltys2026-08-171-2/+2
| | | | | | | its own registry, play sats never buy mainnet flex — plus the toque earns its Canadian name, the wizard takes the throne at 2.1M, the crown leaves the menu, and every hat sits a little higher and straighter Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* Entropy gets a room of its own: a button beside Copy and Regenerate opens a ↵Adam Soltys2026-08-171-0/+1
| | | | | | | page of just text and Submit — the derivation happens once, on the way out, not under your fingers Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* The entropy fold drops the arrow act: a plain Entropy button opens it on ↵Adam Soltys2026-08-171-1/+1
| | | | | | | both panes Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* The entropy copy trims its jargon and raises the bar: what you type is what ↵Adam Soltys2026-08-171-2/+2
| | | | | | | you get, and getting it right takes 100+ dice rolls or a full shuffled deck Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* Own entropy means owned outcome: the typed text alone derives the seed, so ↵Adam Soltys2026-08-171-1/+2
| | | | | | | re-typing it is an import on any device — the warn-box says what that guarantee costs, and Regenerate bows out of a deterministic job Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* The logout blurb ends where it should: your wallets stay saved on this deviceAdam Soltys2026-08-171-1/+1
| | | | | Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* The seed takes dice: an optional entropy field folds open on the generate ↵Adam Soltys2026-08-171-1/+4
| | | | | | | step, hashed with the device's own randomness so it can only strengthen the phrase — and the forget option now says all data, which is what it takes Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* One Log out button, one honest question: the popup offers the plain exit and ↵Adam Soltys2026-08-171-0/+1
| | | | | | | the full forget, each keeping its own warnings Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* The profile grows a second, honest exit: Log out leaves the room, Log out & ↵Adam Soltys2026-08-171-0/+1
| | | | | | | forget this device burns it down — behind the Delete-all warning, which now also sweeps the cached balances and history it always implied Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* The wallet row's delete earns a trash can instead of an ambiguous ✕, and ↵Adam Soltys2026-08-171-1/+1
| | | | | | | Clear all says Delete all — the word for what it does Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* A blank-password vault stops masquerading as a locked one: new wallets ↵Adam Soltys2026-08-171-1/+1
| | | | | | | auto-save through it again, setting a real password re-encrypts every saved wallet instead of dropping the absent ones, and the save-first lock prompt finally names the password it wants Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* Hats: put your money where your head is — supporter hats perch above the ↵Adam Soltys2026-08-161-0/+23
| | | | | | | avatar everywhere it appears, from 21-sat beanie to 2.1M-sat top hat; the crown stays on the founder Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* Chat stops blaming the signer for a locked door: a padlocked wallet says so ↵Adam Soltys2026-08-161-0/+1
| | | | | | | plainly, with the unlock one tap away Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv
* The lock prompt says Lock: locking an unsaved wallet asks for the password ↵Adam Soltys2026-08-151-1/+2
| | | | | | | plainly, without a word about devices or a button that points the wrong way Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv
* The upkeep paragraph retires quietlyAdam Soltys2026-08-151-1/+0
| | | | | Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv