From 7be9959241ebd9ff7dcf1e6592de09cfd29d8394 Mon Sep 17 00:00:00 2001 From: "Claude (draft, do not push as-is)" Date: Fri, 17 Jul 2026 00:01:41 +0200 Subject: [PATCH 1/2] Align index.html with yearly-listing terms MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Sidebar: replace vague 'Bid-based ranking' lead with the actual 4-criteria ordering (excess donated, total paid, base fee, points) - Sidebar: drop 'Early-adopter guarantee 12 months' (contradicts Terms 2.04 pro-rata conversion of legacy balances); add 'Listing period 365 days' / 'Renewal window' facts instead - Info block 03: rename 'Early Adopter Incentives' -> 'Listing & Renewal', remove the unconditional 12-month promise, describe the real pay -> listed -> renewal -> expiry lifecycle from Terms Sec. 2 - Rename 'Next deposit' -> 'Next renewal' (label + status text) - Fix s-block stat: use max(last_block) across all servers instead of getFiltered()[0].last_block, since the list order no longer tracks block height - Clarify 'Server added' -> 'Server verified... listed after 3 confirmations', matching Terms 2.01 (listing starts at 3 confs, not at submission) Note: result.donation (singular) confirmed correct against the current API by backend — left untouched, no change needed here. --- index.html | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/index.html b/index.html index 758f16b..051d0f3 100644 --- a/index.html +++ b/index.html @@ -319,7 +319,7 @@ footer a{color:var(--accent);text-decoration:none}
Contact
Server
Will Executor
- +

@@ -331,10 +331,11 @@ footer a{color:var(--accent);text-decoration:none}

How ranking works

-

Bid-based ranking: higher contributions rank higher.

+

Ordered by excess donated, then total paid, then base fee (lower first), then WeTime points.

Yearly fee50,000 sats
-
Plugin integrationautomatic
-
Early-adopter guarantee12 months
+
Listing period365 days
+
Renewal windowfrom 6 months before expiry
+
Plugin integrationautomatic
@@ -354,8 +355,8 @@ footer a{color:var(--accent);text-decoration:none}
03 -

Early Adopter Incentives

-

To support the project's initial launch phase, we plan to maintain the first Will Executor servers for a minimum of 12 months, rewarding early participants. Long-term position is determined by total paid, base fee, and WeTime points (see Terms).

+

Listing & Renewal

+

A flat yearly fee buys 365 days of presence in the list, starting when your payment reaches 3 confirmations. You can renew for one additional year at any time from 6 months before expiry; listings that are not renewed are removed at expiry. See the Terms for details.

@@ -439,8 +440,9 @@ function render() { const online = allServers.filter(d => d.status === "OK").length; document.getElementById('s-online').textContent = online; document.getElementById('s-total').textContent = allServers.length; - const top = getFiltered()[0]; - document.getElementById('s-block').textContent = top ? fmt(top.last_block) : '—'; + // Highest known block across all servers (the list is ranked by fee/points, not by height) + const maxBlock = allServers.reduce((m, d) => Math.max(m, d.last_block || 0), 0); + document.getElementById('s-block').textContent = maxBlock ? fmt(maxBlock) : '—'; } async function fetchData() { @@ -587,7 +589,7 @@ document.getElementById('terms-accept').addEventListener('click', async function document.getElementById('iv-nextdep').textContent = result.next_deposit_date || '—'; document.getElementById('iv-nextdep-row').style.display = 'flex'; document.getElementById('iv-status').className = 'ok-line'; - document.getElementById('iv-status').textContent = 'Server is already listed. Next deposit: ' + (result.next_deposit_date || '—'); + document.getElementById('iv-status').textContent = 'Server is already listed. Next renewal: ' + (result.next_deposit_date || '—'); const inv = document.getElementById('invoice'); inv.classList.add('show'); inv.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); @@ -623,7 +625,7 @@ document.getElementById('terms-accept').addEventListener('click', async function } }; document.getElementById('iv-status').className = 'ok-line'; - document.getElementById('iv-status').textContent = '✓ Server added: ' + serverUrl + '. Pay the invoice to complete.'; + document.getElementById('iv-status').textContent = '✓ Server verified: ' + serverUrl + '. Pay the invoice — it will be listed after 3 confirmations.'; const inv = document.getElementById('invoice'); inv.classList.add('show'); inv.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); From c297fb30db7fcc201c03e415d80f84d73ade880d Mon Sep 17 00:00:00 2001 From: "Claude (draft, do not push as-is)" Date: Fri, 17 Jul 2026 00:32:27 +0200 Subject: [PATCH 2/2] Match panel heights in Add-server / How-ranking-works grid align-items:start made each .panel size to its own content, so the two side-by-side cards in .add-grid ended up with different heights whenever their text length differed. Switch to align-items:stretch (+ flex column on the panels) so both cards always match height. --- index.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index 051d0f3..70ed6c3 100644 --- a/index.html +++ b/index.html @@ -117,7 +117,8 @@ tbody tr:hover{background:color-mix(in srgb,var(--accent-soft) 50%,transparent)} .num{font-family:var(--mono);font-variant-numeric:tabular-nums} .score{font-family:var(--display);font-weight:600;font-size:15px} -.add-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:24px;margin:40px 0;align-items:start} +.add-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:24px;margin:40px 0;align-items:stretch} +.add-grid>.panel{display:flex;flex-direction:column} .panel{ background:var(--panel);border:1px solid var(--line); border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);