From 83dd90bc0533037f7870438a145c03c25bc40846 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Wed, 7 Oct 2026 13:57:32 +0000 Subject: [PATCH 1/2] site-ui-5, deploy 2: every remaining route in the apps' look, /live's scene box fits its lanes with the key at the top (7 October 2026, 15:0x UK) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - /live (the project lead: "make it more efficient, key at the top"): the key (Included, Excluded, Selected chain, Your block, Proven, Locked checkpoint), the "Click to inspect · Drag to explore" hint and the window stepper sit on one row above the scene (hint left, key centred, stepper right; on phones the key wraps and the stepper goes under it); the blue-score range stays as a small line under the canvas; the canvas height comes from the lane count (one lane per key in view plus the others lane, capped at the renderer's 7, 4 on phones: padT 58 + lanes x 46 (40 narrow) + padB 38, read from scene/live-dag.js 2.0.3 layout(); a sizing hook was asked of the parity lane, which owns that file); the graph column no longer stretches to the inspector; the inspector keeps its rows with tighter spacing and Clear is a small button beside its title. - Every other route carries the slim bar, the app's buttons, pills and cards from site.css section 10 with its content untouched: /app (OS marks on its platform line), /miner (the download tabs take the OS wells), /miners and the bench table (the vendor badge in front of every card name), /explorer, /block, /address (hash titles wrap), /journey, /bench, /evidence (status pills wrap in their cell), /litepaper, /ledger (status badges wrap at 390), /claims, /randomx, /provenance, /dev-fee, /faucet, /metamask, /404. - Data tables fill their frame on desktop and scroll inside it on phones; no column squeezed to a sliver. - The overlap lane's detector over all 23 pages at 390 and 1440, dark and light, on build-2: 0 overlaps. Co-Authored-By: Claude Fable 5.1 --- site/app.html | 2 +- site/live.html | 57 +++++++++++++++++++++++++++---------------------- site/miner.html | 6 +++--- site/site.css | 12 +++++++++-- 4 files changed, 46 insertions(+), 31 deletions(-) diff --git a/site/app.html b/site/app.html index 39cd0b7b1..d9e828df3 100644 --- a/site/app.html +++ b/site/app.html @@ -210,7 +210,7 @@

The app you mine with.

Your rate, what it costs a day, and the chain drawn live with your own blocks ringed. One window, four pages, every card one row.

Download the minerThe chain on your screen
-
WindowsmacOSLinux · HiveOSlight and dark
+
WindowsmacOSLinuxHiveOSlight and dark
Overview
diff --git a/site/live.html b/site/live.html index 23f37b3a9..be846a346 100644 --- a/site/live.html +++ b/site/live.html @@ -86,13 +86,20 @@ .tb[aria-pressed="true"]{color:var(--bone);border-color:var(--line-2);background:var(--graphite)} .tb.on{color:var(--ember-text);border-color:var(--ember-40)} .sep{width:1px;height:18px;background:var(--line)} -.graph{display:grid;grid-template-columns:minmax(0,1fr) 295px} +.graph{display:grid;grid-template-columns:minmax(0,1fr) 295px;align-items:start} @media (max-width:1000px){.graph{grid-template-columns:1fr}} .gcol{padding:0;min-width:0;border-right:0;position:relative} @media (max-width:1000px){.gcol{border-right:0;border-bottom:var(--hair)}} .gcol .state{position:absolute;left:25px;top:14px;z-index:3;font-size:10px} .scene{position:relative} -#dag{display:block;width:100%;height:420px;background:var(--row);touch-action:pan-y} +#dag{display:block;width:100%;height:418px;background:var(--row);touch-action:pan-y} +.gtop{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:10px 25px;border-bottom:var(--hair);font:10px/1.7 var(--mono);color:var(--ash)} +.gtop .hint{white-space:nowrap} +.gtop .lg{display:flex;flex-wrap:wrap;gap:6px 10px;flex:1 1 auto;justify-content:center} +.gtop .lg span{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2);font-family:var(--f-sans);font-size:11px;white-space:nowrap} +.gtop .zoom{margin-left:4px} +.gunder{padding:8px 25px 10px;border-top:var(--hair);font:10px/1.7 var(--mono);color:var(--ash)} +@media (max-width:700px){.gtop{padding:10px 16px;gap:8px 12px}.gtop .lg{flex-basis:100%;justify-content:flex-start}.gtop .zoom{margin-left:auto}.gunder{padding:8px 16px 10px}} .tip{position:absolute;left:0;top:0;pointer-events:none;background:var(--graphite);border:1px solid var(--line-2);border-radius:6px;padding:10px 12px;font:400 12px/1.5 var(--f-mono);color:var(--ink-2);white-space:nowrap;z-index:5} .tip[hidden]{display:none} .gfoot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:17px 25px;border-top:var(--hair);font:10px/1.7 var(--mono);color:var(--ash)} @@ -100,14 +107,14 @@ .zoom button{background:transparent;border:0;color:var(--ink-2);font:400 13px/1 var(--f-mono);padding:8px 12px;cursor:pointer} .zoom button:hover{background:var(--hover)} .zoom span{font:400 11px/1 var(--f-mono);color:var(--ash);padding:0 6px;min-width:44px;text-align:center} -.icol{padding:22px;min-width:0;font-size:12px;border-left:var(--hair)} -.icol .ih{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px} +.icol{padding:16px 18px;min-width:0;font-size:12px;border-left:var(--hair)} +.icol .ih{display:flex;align-items:center;gap:8px;margin-bottom:10px}.icol .ih .chip{margin-left:auto} .icol .ih .eyebrow{margin:0} .icol .num{font:500 22px/1.2 var(--f-sans);color:var(--bone);margin:6px 0 4px;overflow-wrap:anywhere} .icol .hash{font:400 11px/1.5 var(--f-mono);color:var(--ash);overflow-wrap:anywhere;margin-bottom:14px} .insp{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0 10px;margin:0;border-top:var(--hair);padding-top:8px} -.insp dt{font:11px var(--mono);color:var(--ash);padding:10px 0;border-bottom:var(--hair)} -.insp dd{margin:0;font:11px var(--mono);color:var(--bone);font-weight:500;text-align:right;padding:10px 0;border-bottom:var(--hair);overflow-wrap:anywhere;min-width:0} +.insp dt{font:11px var(--mono);color:var(--ash);padding:7px 0;border-bottom:var(--hair)} +.insp dd{margin:0;font:11px var(--mono);color:var(--bone);font-weight:500;text-align:right;padding:7px 0;border-bottom:var(--hair);overflow-wrap:anywhere;min-width:0} .insp dd.hot{color:var(--molten-text)} .icol .note{font-size:12px;margin-top:14px;padding-top:12px;border-top:var(--hair)} .insp-empty{color:var(--ash);font-size:13px;line-height:1.5;padding:6px 0 2px} @@ -125,7 +132,7 @@ .tab{background:transparent;border:0;color:var(--ash);font:400 12px/1.2 var(--f-sans);padding:6px 10px;border-radius:4px;cursor:pointer} .tab.on{background:var(--row);color:var(--bone)} .ititle{font:500 22px/1.2 var(--f-sans);color:var(--bone);margin:6px 0 4px;letter-spacing:-.01em} -.proof-scene{height:200px;border:var(--hair);border-radius:6px;background:var(--row);margin:12px 0;overflow:hidden} +.proof-scene{height:170px;border:var(--hair);border-radius:6px;background:var(--row);margin:12px 0;overflow:hidden} .proof-scene canvas{display:block;width:100%;height:100%} .proof-head{display:flex;justify-content:space-between;align-items:baseline;font:500 13px/1.3 var(--f-sans);color:var(--bone);margin-bottom:8px} .track{display:flex;gap:3px;height:3px;margin-bottom:10px} @@ -383,15 +390,23 @@ details.tablebar summary{display:flex;align-items:center}
-
connecting to the observer
-
-
- Click to inspect  ·  Drag to explore +
+ Click to inspect  ·  Drag to explore +
+ Included + Excluded + Selected chain + Your block + Proven + Locked checkpoint +
60 s
+
connecting to the observer
+
blue score pending
-
-
- Included - Excluded - Selected chain - Your block - Proven - Locked checkpoint -
- blue score pending -
@@ -623,6 +626,10 @@ details.tablebar summary{display:flex;align-items:center} function uninspect(){sel=null;$('insp-close').hidden=true;$('i-kind').textContent='select a block';$('i-title').textContent='Select a block';$('i-hash').textContent='Click the graph, or a row of the table below.';$('i-shard-count').textContent='not set';$('i-track').innerHTML='';$('i-shards').innerHTML='
  • No block selected.
  • ';['i-incl','i-miner','i-blue','i-daa','i-parents','i-time','i-cp','i-lock'].forEach(function(id){$(id).textContent='not set';});if(proof)proof.setBlock(null);} $('insp-close').addEventListener('click',function(){if(dag)dag.select(null,'clear');uninspect();}); // the four stats above the graph, from the module's own window + // the scene box fits its lanes: the renderer places lanes at 46 px (40 on phones) under a 58 px top band and over a 38 px axis + // (scene/live-dag.js 2.0.3 layout()); one lane per key in view plus the others lane, capped at the renderer's 7 (4 on phones) + var fitH=0; + function fit(st){var c=$('dag');if(!c||!st)return;var cap=st.narrow?4:7,laneH=st.narrow?40:46,keys=Math.max(2,st.minerKeys||0),lanes=Math.min(cap,keys>cap?cap:keys+(keys>cap?1:0));var h=58+lanes*laneH+38;if(h!==fitH){fitH=h;c.style.height=h+'px';}} function miner(st){if(!dag)return;var cps=dag.getCheckpoints(),cp=cps.length?cps[cps.length-1]:null; $('m-blocks').textContent=fmtN(st.blocks);$('m-win').textContent='last '+st.window+' s';$('m-keys').textContent=st.minerKeys+' miner keys · not a card count';$('lane-caption').textContent=st.minerKeys+' keys'; $('m-mine').textContent=mine?fmtN(st.own):'0';$('m-mine').classList.toggle('dim',!mine);$('m-key').textContent=mine||'not set'; @@ -635,7 +642,7 @@ details.tablebar summary{display:flex;align-items:center} onState:function(st,reason){var el=$('dag-state');el.className='state '+(st==='live'?'live':st==='failed'?'bad':'');el.innerHTML=''+(st==='live'?'live devnet':esc(reason||st));if(proof)proof.setPaused(st!=='live'||dag.getStats().paused);}, onPause:function(p){$('dag-follow').classList.toggle('on',!p);if(proof)proof.setPaused(p||dag.getState().state!=='live');}, onFollow:function(f){$('dag-follow').classList.toggle('on',f);}, - onStats:miner, + onStats:function(st){miner(st);fit(st);}, onSelect:function(b,why){if(b){var full=lastD&&(lastD.blocks||[]).filter(function(x){return x.hash===b.hash;})[0];inspect(Object.assign({},b,full?{number:full.number}:{}));}else uninspect();}}); if(window.IgneumProof&&!proof)proof=IgneumProof.mount($('proof')); if(lastD)feed(lastD);} diff --git a/site/miner.html b/site/miner.html index a70321b33..6e07efec8 100644 --- a/site/miner.html +++ b/site/miner.html @@ -251,19 +251,19 @@ pre b{color:var(--molten-text);font-weight:500}
    -

    Ember for Windows

    the installer, from the signed manifest

    +

    Ember for Windows

    the installer, from the signed manifest

    Run the installer, press Start. NVIDIA and AMD cards both mine. Setting an NVIDIA power cap asks for administrator rights once.

    Download for Windows v0.3.14 · 45.4 MB
    from dl.igneum.networksha256 08e75effc732f88bca11006b3b7cdf2bc533576f56819f79509fee47a8f5dd59