From 65ad54a060a8035d8cf1e1ca2004f7c3bc5ff296 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Sat, 4 Jul 2026 08:38:12 -0700 Subject: History: gifts are timeline entries, not a separate section MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Gift links now sort into the send/receive timeline like any entry: a clickable row (🎁, status tag, age, amount) opening a detail page that carries the date/status plus the actions that used to crowd the list row (view gift link, cancel/reclaim with the existing confirm flow). A claimed gift merges into its claim transaction's row — labeled as the gift, clickable to the tx detail, which gains a "This transaction delivered your gift" section (claim txid resolved via outspend and cached on the gift record). The old pinned gifts header and the paginated all-gifts view are gone. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01QFAcD4V284DvYZZHP7Rxxy --- tools/ark/gift-shot.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'tools/ark') diff --git a/tools/ark/gift-shot.js b/tools/ark/gift-shot.js index b0c9ca5..948854c 100644 --- a/tools/ark/gift-shot.js +++ b/tools/ark/gift-shot.js @@ -90,6 +90,23 @@ const t0 = Date.now(); const celebrated = await waitText('Payment received', 10000); console.log('celebration:', celebrated, 'after', Date.now() - t0, 'ms'); await page.screenshot({ path: '/tmp/gift-claimed.png' }); + +// tap through, mine so the claim settles, then check History +await clickText('.card', 'Payment received'); +await sleep(400); +sh(`${BCLI} generatetoaddress 1 $(${BCLI} getnewaddress) >/dev/null`); +await sleep(4000); // scan + outspend resolution +await clickText('.tabs button', 'History'); +await sleep(2500); +const rows = await page.evaluate(() => [...document.querySelectorAll('.item')].map((e) => e.textContent.replace(/\s+/g, ' ').trim())); +console.log('history rows:', JSON.stringify(rows.slice(0, 5), null, 1)); +const giftRows = rows.filter((r) => r.toLowerCase().includes('gift link')); +console.log('gift rows in timeline:', giftRows.length); +await page.evaluate(() => { const el = [...document.querySelectorAll('.item')].find((e) => e.textContent.toLowerCase().includes('gift link')); if (el) el.click(); }); +await sleep(800); +const detail = await page.evaluate(() => document.body.innerText); +console.log('gift detail page:', /🎁 Gift link/.test(detail), '| link+cancel actions:', detail.includes('View link') || detail.includes('Cancel')); +await page.screenshot({ path: '/tmp/gift-history.png' }); console.log('done'); await browser.close(); dev.kill(); -- cgit v1.2.3