betterwithage commited on
Commit
3ad3657
·
verified ·
1 Parent(s): dbf5918

fix(console): mesh real mesh_reach organs + honest empty-state ledger DAG

Browse files
Files changed (1) hide show
  1. pages/console.html +11 -5
pages/console.html CHANGED
@@ -5363,13 +5363,15 @@ window.warboard_init=warboard_init; window.warboard_all=warboard_all;
5363
  +'<div class="brain-note" id="me-note">Edge label = wire status. <span style="color:'+TEAL+'">teal=LIVE</span>, <span style="color:'+GOLD+'">gold=LIVE_IN_PROCESS</span>. '+chip('F-G4 reachability','CI-GREEN')+' Cross-Space broker NOT wired (honest).</div></div>'+honest();
5364
  try{
5365
  var s=await gj('/api/a11oy/v1/observability/summary'); var mesh=await gj('/api/a11oy/v1/mesh/state');
5366
- var caps=s.capabilities||[]; var wires=mesh.wires||{};
5367
- T('me-n',caps.length); T('me-live',Object.keys(wires).filter(function(k){return /LIVE/.test(wires[k].status);}).length); T('me-doc',mesh.doctrine||'\u2014');
 
5368
  if(!window.cytoscape){ H('me-note','Cytoscape unavailable'); return; }
5369
  var els=[]; var coreId='core';
5370
- caps.forEach(function(cap){ els.push({data:{id:cap.id,label:cap.name,st:cap.status}}); });
5371
- // edges from core to each capability (the in-image hub) + wire-derived edges
5372
- caps.forEach(function(cap){ if(cap.id!==coreId) els.push({data:{id:'e_'+cap.id,source:coreId,target:cap.id,st:'LIVE'}}); });
 
5373
  Object.keys(wires).forEach(function(wk){ var w=wires[wk]; els.push({data:{id:'wn_'+wk,label:wk,st:w.status,wire:true}}); els.push({data:{id:'we_'+wk,source:coreId,target:'wn_'+wk,st:w.status}}); });
5374
  var cy=cytoscape({container:E('me-cy'),elements:els,layout:{name:'cose',animate:true,idealEdgeLength:90,nodeRepulsion:8000},
5375
  style:[
@@ -6917,6 +6919,10 @@ window.warboard_init=warboard_init; window.warboard_all=warboard_all;
6917
  window.setHTML('vl-'+vk+'-verify','<span class="badge '+(ok?'b-live':'b-err')+'">'+(ok?'VERIFIED':'BROKEN')+'</span>');
6918
  window.setTxt('vl-'+vk+'-head', String(d.head||'\u2014').slice(0,14)+'\u2026');
6919
  var recs=d.receipts||[];
 
 
 
 
6920
  if(recs.length){
6921
  // 3D hash-chain DAG (reuse global dag3d): chain edges prev->cur
6922
  var nodes=recs.slice().reverse().map(function(r,i){return {id:'r'+(r.seq!=null?r.seq:i), name:'#'+(r.seq!=null?r.seq:i), val:4, color:(i===recs.length-1?FG:TL)};});
 
5363
  +'<div class="brain-note" id="me-note">Edge label = wire status. <span style="color:'+TEAL+'">teal=LIVE</span>, <span style="color:'+GOLD+'">gold=LIVE_IN_PROCESS</span>. '+chip('F-G4 reachability','CI-GREEN')+' Cross-Space broker NOT wired (honest).</div></div>'+honest();
5364
  try{
5365
  var s=await gj('/api/a11oy/v1/observability/summary'); var mesh=await gj('/api/a11oy/v1/mesh/state');
5366
+ var reach=(s.mesh_reach||[]); var wires=mesh.wires||{};
5367
+ var organsTotal=((s.melt||{}).metrics||{}).organs_total; var organsReach=((s.melt||{}).metrics||{}).organs_reachable;
5368
+ T('me-n',(organsReach!=null&&organsTotal!=null)?(organsReach+'/'+organsTotal):String(reach.length||'\u2014')); T('me-live',Object.keys(wires).filter(function(k){return /LIVE/.test(wires[k].status);}).length); T('me-doc',mesh.doctrine||'\u2014');
5369
  if(!window.cytoscape){ H('me-note','Cytoscape unavailable'); return; }
5370
  var els=[]; var coreId='core';
5371
+ // core hub node (always present)
5372
+ els.push({data:{id:coreId,label:'a11oy core',st:'live'}});
5373
+ // organ nodes built from the REAL live mesh-reach probe (status straight from the probe)
5374
+ reach.forEach(function(o){ var oid='org_'+(o.organ||''); if(!o.organ||o.organ===coreId) return; els.push({data:{id:oid,label:o.organ,st:o.status}}); els.push({data:{id:'e_'+oid,source:coreId,target:oid,st:(o.status==='ok'?'LIVE':o.status)}}); });
5375
  Object.keys(wires).forEach(function(wk){ var w=wires[wk]; els.push({data:{id:'wn_'+wk,label:wk,st:w.status,wire:true}}); els.push({data:{id:'we_'+wk,source:coreId,target:'wn_'+wk,st:w.status}}); });
5376
  var cy=cytoscape({container:E('me-cy'),elements:els,layout:{name:'cose',animate:true,idealEdgeLength:90,nodeRepulsion:8000},
5377
  style:[
 
6919
  window.setHTML('vl-'+vk+'-verify','<span class="badge '+(ok?'b-live':'b-err')+'">'+(ok?'VERIFIED':'BROKEN')+'</span>');
6920
  window.setTxt('vl-'+vk+'-head', String(d.head||'\u2014').slice(0,14)+'\u2026');
6921
  var recs=d.receipts||[];
6922
+ if(!recs.length){
6923
+ // honest empty-state: no receipts this runtime yet (not a render error)
6924
+ window.setHTML('vl-'+vk+'-dag','<div class="row mono dim" style="display:flex;align-items:center;justify-content:center;height:100%;text-align:center;padding:1rem">No receipts emitted yet this runtime \u2014 the hash-chain is empty (depth 0). Run a governed decision on the Decision tab to populate the signed chain; the 3D DAG appears here once the first receipt is sealed.</div>');
6925
+ }
6926
  if(recs.length){
6927
  // 3D hash-chain DAG (reuse global dag3d): chain edges prev->cur
6928
  var nodes=recs.slice().reverse().map(function(r,i){return {id:'r'+(r.seq!=null?r.seq:i), name:'#'+(r.seq!=null?r.seq:i), val:4, color:(i===recs.length-1?FG:TL)};});