aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Staging names its own: mutinynet claims land at @staging.coinos.io — play ↵Adam Soltys2026-08-171-15/+19
| | | | | | | personas and their testnet addresses stop squatting the real namespace Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* A picked punk publishes its full address: the avatar step stops writing ↵Adam Soltys2026-08-171-2/+5
| | | | | | | relative paths into kind 0, where they broke real faces on every other client Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* Mutinynet gets the full name experience: the payment-address pane, the claim ↵Adam Soltys2026-08-171-1/+6
| | | | | | | card, the re-registration — staging stops showing raw ark addresses to people who just claimed a name Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* The spending tap keeps its promise and then makes an offer: the account ↵Adam Soltys2026-08-171-3/+8
| | | | | | | exists before the username and avatar prompts, so declining them costs nothing Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* One tap grows the Spending side: same seed, named Spending, no wizard — ↵Adam Soltys2026-08-171-9/+14
| | | | | | | and deliberate latches carry timestamps so the phantom-healer only eats the legacy booleans 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-172-3/+6
| | | | | | | 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
* Spending admits it exists: a wallet created AS Spending needs no further ↵Adam Soltys2026-08-171-4/+31
| | | | | | | proof, a name claimed inside the wizard latches on any network, and off-mainnet Receive shows the ark address instead of quietly handing out an on-chain one Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* The login identity stays with the wallet that earned it: a live signer no ↵Adam Soltys2026-08-171-1/+16
| | | | | | | longer follows you into wallets that never linked it, where it claimed names, wore crowns, and answered to the wrong name 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-172-29/+37
| | | | | | | 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
* The phantom Spending flag heals itself: off mainnet, a spending side with no ↵Adam Soltys2026-08-171-1/+12
| | | | | | | balance and no history admits it was never set up Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* A mainnet name stops vouching for mutinynet spending: the claimed-address ↵Adam Soltys2026-08-171-2/+7
| | | | | | | evidence only counts on the network it was claimed on Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* A snapshot only counts on its own network: the seed-keyed cache stops ↵Adam Soltys2026-08-172-1/+17
| | | | | | | showing mainnet money under a mutinynet flag, and staging forgives the mainnet default it stamped before it knew better Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* One Back per screen: the outer step's back yields while the entropy page ↵Adam Soltys2026-08-171-2/+3
| | | | | | | holds the floor 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-172-41/+65
| | | | | | | 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-172-3/+3
| | | | | | | both panes Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* The import pane learns the entropy trick: the same fold, the same text, the ↵Adam Soltys2026-08-171-20/+40
| | | | | | | same wallet — typed entropy fills the phrase field with its derived words and clears only what it filled 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
* The entropy door moves behind the phrase: newcomers see one Generate button, ↵Adam Soltys2026-08-171-19/+26
| | | | | | | tinkerers unfold the toggle after — typing re-derives the words live, clearing restores the random draft 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-173-13/+16
| | | | | | | 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-173-6/+33
| | | | | | | 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
* The forget option speaks at full volume — same size as its siblings, red ↵Adam Soltys2026-08-171-1/+1
| | | | | | | says the rest 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-174-13/+35
| | | | | | | 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-173-2/+23
| | | | | | | 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-172-2/+2
| | | | | | | 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-172-6/+21
| | | | | | | 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
* The lock test learns the doors moved: logout is the front door and asks for ↵Adam Soltys2026-08-161-6/+6
| | | | | | | a password once ever (the guard is finally wired to its comment), the padlock keeps asking because it must, and the suite walks the real UI again Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* The padlock stops charging for hesitation: the password ask renders over the ↵Adam Soltys2026-08-161-13/+46
| | | | | | | open wallet and Not now means exactly that, the logo opens a passwordless vault instead of guarding it, and a seed is born as Savings alone — Spending appears when you actually set it up Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
* Staging wears its name on the logo and deals in play money: ↵Adam Soltys2026-08-164-2/+27
| | | | | | | HAL_TARGET=staging stamps the brand, renames the PWA, and starts fresh wallets on Mutinynet — one master, no diverging branch 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-167-16/+394
| | | | | | | 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-162-6/+20
| | | | | | | 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-152-4/+6
| | | | | | | 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-152-3/+1
| | | | | Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv
* Setting a password locks you in place, not out: home stays on screen, ↵Adam Soltys2026-08-151-1/+1
| | | | | | | watch-only, padlock shut Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv
* The password ask drops the lecture: set one, and this device needs it to spendAdam Soltys2026-08-151-1/+1
| | | | | Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv
* Coinos earns its capital letter when it opens a sentenceAdam Soltys2026-08-151-1/+1
| | | | | Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv
* The basics stop pretending it's 2009: servers exist but can't touch your ↵Adam Soltys2026-08-151-6/+6
| | | | | | | money, Savings restores anywhere, and the Move money button that no longer exists stops being explained Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv
* Mutinynet gets the full experience by default: the staging ASP answers ↵Adam Soltys2026-08-151-1/+1
| | | | | | | unless someone says otherwise Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv
* The logo learns the difference between fleeing and returning: mid-creation ↵Adam Soltys2026-08-151-0/+16
| | | | | | | it backs out to the start page, and only a truly idle visitor gets pointed at the vault Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv
* The reload remembers where you stood: the pre-refresh page is captured at ↵Adam Soltys2026-08-151-6/+9
| | | | | | | script load, before any boot render can pave over it Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv
* Username and display name go their separate ways: the handle wears a frozen ↵Adam Soltys2026-08-153-51/+49
| | | | | | | @coinos.io so it reads as address and NIP-05, renames claim before the profile publishes, and nip05 rides along with lud16 Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv
* A new name offers its hand to the address: saving a renamed profile proposes ↵Adam Soltys2026-08-153-27/+77
| | | | | | | the matching @coinos.io, and any rename repoints the kind-0 lightning address so zaps never chase a released name Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv
* The padlock refuses to strand a seed: a wallet the vault never met gets ↵Adam Soltys2026-08-152-3/+26
| | | | | | | saved (password asked) before locking, and unlocking returns you to the wallet you left Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv
* The profile form stops arriving fashionably late: it paints on the first ↵Adam Soltys2026-08-151-11/+27
| | | | | | | frame from the local cache, and the posts area holds its ground while the relays answer Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv
* A newborn identity knows it has no portrait: fresh seeds skip the kind-0 ↵Adam Soltys2026-08-152-0/+14
| | | | | | | wait and the punk paints the moment home appears Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv
* A refresh forgets nothing: bios and recent posts persist to storage and ↵Adam Soltys2026-08-151-5/+48
| | | | | | | paint instantly while the relays quietly freshen them behind the scenes Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv
* Profiles arrive warm: pages prefetch for every likely tap-target (own ↵Adam Soltys2026-08-151-16/+50
| | | | | | | avatar, DM peers, search results, feed rows) and the spinners are simply gone Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv
* The header avatar builds fresh each render — the cached-node trick ↵Adam Soltys2026-08-151-7/+5
| | | | | | | predates the morph, which both obsoleted it and was emptying it Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv
* Log out opens the front door: the start page, with saved wallets one Unlock awayAdam Soltys2026-08-151-1/+6
| | | | | Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv
* Log out lives in the profile card below Save, wearing the door-and-arrowAdam Soltys2026-08-151-6/+9
| | | | | Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv