| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
floored to the cent (so it never parses back above the maximum), not a BTC figure under a CAD label. One ctx.amountField helper for the ark send/LN Max, the gift Max and fixed-amount zap/BOLT 12 fills
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
|
|
| |
(the operator's own IP while testing sign-ups)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| | |
|
| |
|
|
|
|
| |
names its inputs, and ArkManager._free / freeCoins exclude coins an in-flight remote renewal holds from balance (counted pending), send/LN/offboard/exit selection, auto-renew, the backstop and the coins page (greyed with the round). Freed the moment that renewal reads finished, failed or lapsed
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
|
|
| |
renewals as display-only slivers (step, amounts, fee, round txid; no signing material), merged into remoteRenewals furthest-step-wins, never as actions; the coins page lists another device's renewal in progress with its round transaction until it finishes there or a 'Renewed' row syncs (two-day cap)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
|
|
| |
schedule and re-prices instead of resubmitting the same underpaying set on every sync; if the new fee leaves under 330 sats (or the price didn't change) it fails and frees the coins. Backstop registration re-reads the schedule on the same refusal
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
|
|
| |
300 sats' and '300 sats' instead of 'free' when the ASP charges a base fee, and the description says automatic renewals wait for the cheapest bracket rather than a free one
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
|
|
| |
forever: once its done action is pruned, a re-read round breadcrumb adopted it again as a rescue at step 'issued', whose spent inputs had lost their bytes, so every sync threw. A round counts as claimed when its 'Renewed' movement or its fresh coins are already in the wallet; the breadcrumb and rescueParticipation skip it, and a stuck issued action retires without a row
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
|
|
| |
rewritemeta wants
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
|
|
| |
is unavailable; issues via gitworkshop.dev (NIP-34)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
|
|
| |
instead of stopping at the first unused address, so a seed restored from another wallet shows coins sitting past a gap; the window of 20 is probed in parallel, the empty look-ahead tail isn't kept, and the next fresh address is one past the highest used (never a hole another wallet left)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
|
|
|
| |
OfflineAudioContext and makes its real AudioContext on the first tap (one made at load ran at once in the installed app, re-opening the phone's audio output on every open/refocus), suspended again after the sound and when the app is hidden
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01PCGjEEMD23CweKrefbTDJp
|
| |
|
|
|
|
|
| |
one-shot reads for 30 s, doubling to 10 min; zap/reply tallies flush at most every 2 s in one REQ (two filters) and the live #e sub swaps at most every 10 s; quoted-note lookups batch per relay over 150 ms — scrolling a 300-follow feed went from ~21 to ~8.5 REQs per 10 s on the busiest relay, primal's "too many concurrent REQs" from 19 to 0
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01PCGjEEMD23CweKrefbTDJp
|
| |
|
|
|
|
| |
button and size (no seek bar or sound button until playing); hovering the cover no longer paints it over with the app's button grey; upright phone clips (stored sideways with a quarter-turn matrix) paint upright, v1 size caches dropped; a clip the probe found HEVC switches to the copy before fetching the original
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
|
|
| |
clip this browser can't picture (an iPhone's HEVC on Chrome for Linux played sound over black) — vmedia container on cs (bun + ffmpeg, /vmedia/), switch on zero-width metadata or an HEVC header from the probe, a line saying why if the copy fails too
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
|
|
| |
blocked the recipient field — only a field you're typing in is protected now (test opens Send with a real click)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
| |
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
|
|
| |
never off another field, never on phones); the amount field still takes it once a recipient resolves
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
|
|
| |
the send-by menu (White Noise is one app that speaks it); a zap on something no relay has says it may be a private message instead of claiming the post vanished
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
|
|
| |
(self-hosted, Unsplash) cycled with arrows or a swipe, or upload your own; untouched, each pubkey gets its own default, published as the kind-0 banner beside the punk
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
|
|
| |
the first three — a reply delivered only to the fourth (primal) never showed
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
|
|
|
|
|
|
| |
/nprofile1… and /<name> with the kind 0, latest posts, follow counts and mentioned faces inlined (stale-while-refresh cache, 2 s budget), the app seeds its caches from it, and the big avatar never flashes punk art while a lookup runs
A cold visit to a profile link showed a punk, '–' counts and no posts for 9 s.
Server-side relay answers settle once events stop arriving (idle 400 ms)
instead of waiting out a relay that never sends EOSE: a cold build is ~1.9 s.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
|
|
|
|
| |
a pending Sent row with the recipient's face, and gives way to its completed row
One-tap zaps now record who they went to, so their rows carry a face too.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
|
|
| |
arrives — the default punk flashed in front of a new account's chosen picture
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
A suite run let ~90 throwaway test wallets subscribe and publish on public
relays from one home address, and nos.lol and relay.damus.io banned it.
tools/puppeteer.js wraps puppeteer-core: every socket to a non-local host
gets an in-page stand-in relay (EVENT -> OK, REQ -> EOSE). Tests that read
real content launch with { relays: 'read' } (real reads, publishes answered
in place); feed-live, chat-layout and cordn-ui launch with { relays: 'live' }.
LIVE_RELAYS=read|1|host,... overrides per run.
profile-key-qr: measure the QR again if a repaint swapped it out.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
|
|
| |
dead sockets are dropped and it retries on fresh ones (four welcomes on 2026-10-07 vanished after the uplink dropped while the log said sent)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
|
|
| |
never off another field, never on phones)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
|
|
| |
tap); Enter on Send picks the top suggestion, and Enter walks amount → review → confirm
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
ark ui-test: wait for the selected balance card to stick before opening
Receive (the carousel lands on a card's history, and a glide could settle
back on Savings), wait for the first mailbox read before paying, paste
addresses whole (typed a key at a time, a re-render mid-typing broke the
checksum), and poll for alice's balance and the history rows. 8/8 runs.
comments-test: the article and comments it fetched are handed to the app
on every relay socket that asks, so it no longer depends on the app
reaching the same public relays.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
receive
Run right after tests that mine, cln-ark could trail by a block or two and
the receive failed with final_incorrect_cltv_expiry.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The old test spawned ~/halwallet's dev server and drove its long-gone UI
(receive-mode select, Settings 'Refresh / consolidate'). It now builds this
repo's app bundle and drives it against the regtest stack: set up Spending,
receive over Ark from alice, send back from the Send form, fund Savings
on-chain and move it into Spending (board), reload. Only the page and the
local backends are reachable. aliceReady uses 'bark maintain' so actions a
killed run left half-done get resumed instead of holding coins locked.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| | |
| |
| |
| |
| |
| |
| |
| | |
It needs vtxo_lifetime <= 60 so it can mine past expiry; against the normal
4320-block server it would age the whole shared chain. Also import the
manager relative to the repo instead of the main checkout's absolute path.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
scheduled-refresh-test mines a whole vtxo lifetime, which expires alice's
coins; every test run after it funded nothing (spendableSat 0) or was handed
an expired coin (receive-test). The helper refreshes expired coins and boards
more when alice runs low, and the funding tests call it before paying.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- mine/fund through the bc container (the standalone :18543 node was retired
in the July consolidation)
- board-test hands the server the funding tx (require_board_funding_tx) and
waits for esplora to see the board confirmed: bark silently drops a received
vtxo whose board tx it can't find yet
- refresh-test rounds the ppm fee up like the server (and the manager) do
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
68fd614 removed the VtxoPolicy::Htlc encoding from send.js/proto.js (upstream
took type 0x08) and the bridge was retired from the app on 2026-08-02, so
htlcLock can no longer build its output (policyTaproot throws on the missing
userPubkey). bridge-e2e-test also drove bridge/server.js, which sits on the
same dead primitives.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| | |
| |
| |
| | |
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
scratchpad
The default fixture paths pointed into an old session's scratchpad, so the
test died reading them (exit 1, no output). Fresh pair from the regtest stack:
offer from clc, invoice fetched by cln-ark. Network and expiry checks no longer
assume mainnet or a recent wall clock.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| | |
| |
| |
| | |
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |\ \ |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
prepend and editor
- feed-list, markdown-note: open the Feed tab, on Following; feed-list opens
the editor from the feed's ⋯ menu
- feed-stability: the warm-up query asks kinds 1+1068 (polls); a live post with
the header on screen goes in above the first post, held still (it no longer
waits); the per-frame drift check uses a second post once the header is away
- relays-settings: a new identity puts out its DM inbox list at boot, and the
page has other Save buttons; the no-change save clears the log and clicks
the card's own Save
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The feed left the chat home for a bottom-nav tab, and a wallet with no
feed remembered opens on Popular, so these tests click the Feed tab and
seed Following as the wallet's last feed. Also brought up to date:
- feed-live: the pill lands on the oldest new post; arrivals at the top go
in above the first post (held still), not behind the pill; scroll up a
screen at a time (one jump lands before the windowed rows are back)
- feed-custom: only the feeds' chips are counted (not All/Images/…); the
follows box is not the first checkbox any more; the last feed is
remembered across a reload; the pack shows in the feed's editor (the chat
home no longer lists the feed)
- feed-follow: Feed tab + Following chip instead of the messages-home row;
the feed opens at ten posts (tall ones, so a page doesn't fill the screen)
- moderation: nos.lol is a local stand-in (a relay that won't connect held
the mute list back past the checks)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
paints it on the first frame
Since column-sized copies (8249fbe), a picture small enough to keep (or a GIF)
was fetched for its size but never decoded ahead: the row's <img> decoded it
on sight, from the network again when the host says no-store. Decode the
original ahead when there is no copy. (feed-live-test caught it.)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
defs and the tint that fades on sight
- feed-media-views: the mode switch has an Articles button now
- feed-media-cache: the live watch's since-only subscription isn't part of the crawl
- feed-switch-seed: seeded feeds carry their edit time (the feeds sync merge drops one without)
- feed-editor-relays: nos.lol is a local stand-in relay, so the test doesn't depend on reaching it
- feed-streaming: the stub wallet opens on Following (no remembered feed = Popular); the held picture
answers repeat fetches once released; the new-post tint is recorded as it paints (it fades on sight)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| |\ \ |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
the amount
A tap pays the default amount at once (21 sats unless set), so the test
holds the button to open the amount screen instead of tapping an empty
wallet into a failed payment.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The shared Popular snapshot is fetched from a relative /api/feed. Opened
from disk (dist/standalone.html) that is file:///api/feed, a request for a
file beside it that never exists (standalone-file-test: 'nothing looked
for beside the file'). Only ask when served over http(s); the relay path
covers the rest, as it already did for a failed fetch.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- unread-dot: the front door's way to import is Create a new wallet → Have an
existing seed; the dot is the Messages bottom-nav button's
- sw-reload: the split build loads app-<token>.js, so a restamped build asks
for app-deadbeef….js; serve the real entry for it
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
A /feed?r=… (or any /feed/… link) set the feed view up synchronously but
chose its feed in a setTimeout, so the first paint opened the remembered/
default feed — Popular since c89050e — and fetched the shared snapshot for
it before switching. The frame now holds (header only) for that tick, the
way a note link's pending frame does. public-feed-browser-test: custom
relays bypass the snapshot again.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When our own community list came back with a channel key the local copy
lacked (every community we create: its list entry carries the keys), the
room was torn down to be rebuilt with them, but the wraps it had already
opened stayed in seenWraps. The rebuilt room's subscription then skipped
the relay replay, so its Control fold held only editions newer than the
rebuild: a second channel showed up as the only one (no picker; general
gone from the fold), and the guestbook lost its joins.
Each room now remembers the wrap ids it opened and hands them back when it
is rebuilt. chat-layout-test reaches Messages through the bottom nav.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|