Log drawer: the Logs button shows its open state (Close logs, chevron); a Newest button appears when the user scrolls up and follow re-engages at the end; a time ruler with error and swap marks, an HH:MM:SS jump box, last error and last swap buttons; substring search with a match count and highlights; copy the lines in view; the height drags from a grip (140 px to 70% of the window, remembered); a window under 700 px tall opens a 180 px drawer. The list is virtualised (19 px rows, only the rows in view in the DOM; up to 20,000 lines kept; wrap mode under 5,000 lines). Polling runs only while the drawer is open and the window is visible. Screens: one type scale and spacing scale in app.css, tabular figures everywhere, the bottom bar in pieces (machine name truncates first, address always short, uptime dropped under 1100 px), tile captions carry their full text as a title, syncing shows an ETA from the measured block rate, the engine-away state names itself on the node tile, short-window rules, the key sheet scrolls on a short window, compact settings card rows on two lines, only a block that just arrived flashes (not the whole strip on first paint). Performance: the minute grid is drawn once into an offscreen layer; the strip redraws twice a second and at the display rate only during a flash; nothing draws and the state poll drops to every 5 s while document.hidden. ?debug=1 prints a budget line every 5 s and exposes window.__igneumBench. tools/ui-mock: a stand-in engine (node tools/ui-mock/server.mjs) replaying recorded, scrubbed API responses with scenarios (syncing, nodedown, nocards, integrated, clock, paused, biglog, fresh, job, nvidia), so UI work never touches a running miner. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
1 line
No EOL
12 KiB
JSON
1 line
No EOL
12 KiB
JSON
{"address":{"display":"0xdd442fCbb964A3aFDc90D49B408e8DD296FA86E8","key_saved":true,"source":"generated","value":"0xdd442fcbb964a3afdc90d49b408e8dd296fa86e8","wallet_file":"~/Library/Application Support/Igneum/app/wallet.json"},"chain":"devnet v4","clock":{"checked_at":1791141792.659384,"hint":"System Settings > General > Date & Time: turn on \"Set time and date automatically\", or run: sudo sntp -sS time.apple.com","message":"","severity":"none","skew_s":0.0,"source":"","sync_result":"","syncing":false},"detect_message":"","detecting":false,"display_name":"mac-studio","events":[{"kind":"block","t":1791141792.659396,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141784.773495,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141780.816561,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141765.140061,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141758.844486,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141741.215849,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141721.809453,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141715.330922,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141693.942389,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141689.018952,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141679.870759,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141657.095033,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141651.267551,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141645.265141,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141644.751899,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141643.719755,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141623.660516,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141576.954069,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141562.728779,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141497.070319,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141476.805506,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141464.486529,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141463.975061,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141456.116723,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141453.281813,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141443.764918,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141408.692778,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"build","t":1791141394.020399,"text":"next hourly program compiled and ready"},{"kind":"block","t":1791141393.768472,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141390.668497,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141374.972848,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141367.949444,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141359.800809,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141345.256581,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141344.49173,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141341.695459,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141322.736675,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141313.224097,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141311.190745,"text":"block accepted by the node (Apple M5 Max)"},{"kind":"block","t":1791141258.928071,"text":"block accepted by the node (Apple M5 Max)"}],"finality":{"age_s":15.76532793045044,"last_lock":1240,"last_lock_at":1791141781.854171,"message":"","votes":570},"host":"mac-studio","jobs":{"active":false,"allowed":true,"checked_at":1791141794.015375,"error":"","history":[],"id":"","key_fingerprint":"8f186e37b48cfddf52d2b37478c562d78a74236fc87f0a675393ed6a35baac4e","kind":"","last":{"exit":0,"finished_at":0.0,"id":"","kind":"","run_id":"","started_at":0.0,"status":"","summary":"","title":"","uploaded":false},"last_results":[],"message":"","queued":0,"results":[],"run_id":"","stage":"","started_at":0.0,"title":"","url_set":true},"live_page":"https://igneum.network/live","log_dir":"~/Library/Logs/Igneum","machine_id":"0123456789abcdef","mining":{"accepted_session":6783,"accepted_total":8053,"cards":[{"accepted":6783,"detail":"40 GPU cores, 64 GB unified memory","device":"","enabled":true,"hash_avg":23.04,"hash_now":16.88,"identities":1,"ids":["8fafda27"],"index":0,"key":"apple::Apple M5 Max","kind":"apple","last_status_age_s":0.0,"message":"","name":"Apple M5 Max","path":"prebuilt","pid":14686,"power_applied":false,"power_before_w":0.0,"power_default_w":0.0,"power_limit_w":0.0,"power_max_w":0.0,"power_min_w":0.0,"power_note":"","power_pct":0,"power_w":0.0,"prepare":true,"prepared":true,"ready":true,"reason":"","rejected":0,"restart_in_s":0,"restarts":0,"state":"mining","synced":true,"telemetry_at":0.0,"temp_gpu":0.0,"temp_mem":0.0,"template_age_s":0.94,"vendor":"apple","vram_mb":65536,"worker":"Metal"}],"found":[1791138216.574043,1791138225.697665,1791138232.791751,1791138237.103233,1791138243.949566,1791138249.011633,1791138264.7276,1791138282.008339,1791138302.272067,1791138304.302477,1791138324.055243,1791138331.901677,1791138339.51623,1791138429.516579,1791138443.2053,1791138466.520049,1791138493.63345,1791138545.879553,1791138555.02205,1791138564.651655,1791138569.714284,1791138573.018003,1791138585.679625,1791138592.018392,1791138595.306195,1791138625.983751,1791138648.537181,1791138665.760553,1791138686.294336,1791138690.608171,1791138694.914922,1791138738.992256,1791138752.70466,1791138774.254614,1791138776.030881,1791138780.346652,1791138795.045989,1791138802.146932,1791138814.325476,1791138825.988248,1791138834.100366,1791138846.514869,1791138857.673936,1791138859.199142,1791138903.591985,1791138911.439351,1791138915.745913,1791138922.34557,1791138925.888326,1791138927.670742,1791138931.731884,1791138948.971082,1791138949.47371,1791138963.149284,1791138964.418166,1791139003.725285,1791139010.822192,1791139038.171439,1791139040.451441,1791139046.530285,1791139049.572738,1791139054.640835,1791139073.163256,1791139087.381047,1791139092.448433,1791139099.302888,1791139116.030369,1791139119.324547,1791139157.821907,1791139162.380384,1791139174.820154,1791139186.726357,1791139193.07342,1791139202.450408,1791139210.310766,1791139213.098101,1791139232.107076,1791139254.423744,1791139263.292323,1791139286.849799,1791139287.865321,1791139321.035329,1791139353.43567,1791139355.981022,1791139361.2961,1791139372.181396,1791139374.958105,1791139389.393862,1791139400.548015,1791139426.899092,1791139460.095324,1791139461.109187,1791139470.223228,1791139472.750748,1791139507.756583,1791139528.321001,1791139544.541706,1791139550.10821,1791139571.925407,1791139572.433242,1791139583.064615,1791139589.148688,1791139593.218712,1791139616.823976,1791139619.358454,1791139644.91632,1791139672.667823,1791139691.153469,1791139731.202806,1791139745.150247,1791139755.02217,1791139755.77839,1791139768.962765,1791139773.5205,1791139799.106689,1791139800.117086,1791139811.282153,1791139812.552075,1791139825.731143,1791139855.878333,1791139861.205648,1791139871.853908,1791139884.784642,1791139893.399561,1791139904.046238,1791139925.842086,1791139971.601992,1791139984.957904,1791140006.643005,1791140010.975623,1791140012.510067,1791140053.246595,1791140057.823569,1791140068.755368,1791140074.604312,1791140076.634004,1791140117.604698,1791140128.757927,1791140132.055985,1791140132.818727,1791140181.218388,1791140181.982351,1791140193.628323,1791140205.275319,1791140206.290104,1791140240.208862,1791140244.010165,1791140244.773556,1791140274.951692,1791140298.023546,1791140345.730951,1791140352.327287,1791140364.48789,1791140390.595776,1791140397.169197,1791140408.827621,1791140413.897476,1791140419.728664,1791140437.456341,1791140443.042557,1791140466.846068,1791140469.381475,1791140478.528657,1791140481.822259,1791140482.327058,1791140484.866706,1791140487.150133,1791140517.182883,1791140518.199856,1791140522.280443,1791140524.077669,1791140527.899961,1791140530.689242,1791140536.783646,1791140544.666018,1791140546.559656,1791140562.452509,1791140563.212551,1791140572.121526,1791140577.763383,1791140604.877714,1791140606.913714,1791140633.427776,1791140654.225522,1791140665.948962,1791140690.909947,1791140697.356828,1791140710.896789,1791140716.110732,1791140724.171437,1791140748.730109,1791140773.343235,1791140788.02886,1791140825.44664,1791140832.685648,1791140838.360569,1791140840.446381,1791140858.126799,1791140881.737743,1791140912.64696,1791140918.520978,1791140921.080518,1791140923.623283,1791140927.94495,1791140942.226674,1791140950.348717,1791140971.635886,1791140976.710713,1791141004.334877,1791141047.411567,1791141056.779072,1791141229.808096,1791141258.928069,1791141311.190743,1791141313.224095,1791141322.736672,1791141341.695456,1791141344.491728,1791141345.256578,1791141359.800807,1791141367.949441,1791141374.972846,1791141390.668495,1791141393.76847,1791141408.692775,1791141443.764914,1791141453.281809,1791141456.116715,1791141463.975059,1791141464.486526,1791141476.805503,1791141497.070317,1791141562.728776,1791141576.954066,1791141623.660514,1791141643.719753,1791141644.751897,1791141645.265138,1791141651.267548,1791141657.095031,1791141679.870756,1791141689.01895,1791141693.942386,1791141715.33092,1791141721.809451,1791141741.215846,1791141758.844215,1791141765.140058,1791141780.816559,1791141784.773492,1791141792.659393],"hash_total":16.88,"paused":false,"rejected_session":0,"state":"mining"},"network":"devnet","node":{"blocks":39571,"blue":37233,"consensus_switch_daa":33000,"daa":39571,"difficulty":136350545.9,"headers":39571,"last_reading_age_s":5.788984916,"message":"","override_restart_wait":"","peers":4,"pid":14673,"restart_in_s":0,"restarts":0,"starts":3,"state":"synced","synced":true,"tips":1,"version":"igneumd 2.1.0"},"node_dir":"~/Library/Application Support/Igneum/devnet-v4","now":1791141797.666736,"phase":"dashboard","program":{"boundary_daa":39600,"epoch_index":10,"eta_s":29,"message":"next program compiled and ready","prepare_sent":true,"prepared":true},"proving":{"assigned":0,"available":false,"backend":"","current":"","enabled":false,"failed":0,"keys":0,"last_paid":"","last_prove_s":0.0,"message":"","paid":0,"paid_wei":0,"proved":0,"setup_hint":"","started_at":0.0,"status":"off","submitted":0},"quitting":false,"settings":{"auto_update":true,"identities":1,"prove":false,"remote_jobs":true,"start_at_login":false,"vote":true},"setup_done":true,"update":{"activation_height":33000,"applying":false,"auto":true,"available":false,"channel":"devnet","checked_at":1791141355.46191,"downloaded":false,"error":"","file":"","min_supported":"0.3.0","notes":"Difficulty rule v2 from DAA score 33,000 (about 18:35 UTC on 4 October); every node must carry it before then","progress":0.0,"published_at":"2026-10-04T16:56:10Z","ready":false,"rolled_back":"","size":0,"status":"current","unsupported":false,"updated_from":"0.3.2","urgent":false,"urgent_text":"","url":"","version":"0.3.3","wait":""},"uptime_s":15058,"version":"0.3.3"} |