ui: staffing co-pilot UX fixes — new-tab reference nav + discoverable collapsibles
Reconciles month-old working-tree UX work (served per-request, live on the demo since 2026-05-30) into git. Implements UX_FIX_PLAN.md's 5 user complaints: reference pages (Profiler/Architecture/Spec/Onboard/Alerts/Workspaces) open in new tabs; contract-card collapsible shows a persistent chevron + expand/collapse label in both states; proof.html gains a substrate-signals chapter. Not authored this session — captured as-is (working state verified: pages serve 200). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -478,6 +478,15 @@ bun test auditor/schemas/distillation/ tests/distillation/
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="chapter">
|
||||
<div class="num">Chapter 11</div>
|
||||
<h2>Substrate signals — live architecture health</h2>
|
||||
<div class="lede">Four live probes of the architecture itself, not the staffing workload: instant-search latency, index shape, playbook-memory depth, and pathway-matrix compounding. These answer "is the substrate healthy right now?" — moved here from the operator dashboard (2026-05-30) where they competed with the day's work.</div>
|
||||
<div class="grid" id="arch-signals" style="grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px">
|
||||
<div class="loading" style="grid-column:1/-1">Probing substrate…</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="footer">Lakehouse · Architecture page regenerates tests on every load · <a href="console">walkthrough</a> · <a href=".">dashboard</a></div>
|
||||
@@ -501,8 +510,40 @@ window.addEventListener('load',function(){
|
||||
loadLiveSections();
|
||||
loadPathwayLive();
|
||||
loadSignalLive();
|
||||
loadArchSignals();
|
||||
});
|
||||
|
||||
// ⑤ Substrate Signals — moved from the operator dashboard (search.html)
|
||||
// 2026-05-30 so the dashboard stays focused on staffing work and the
|
||||
// architecture-health probes live with the rest of the architecture page.
|
||||
// Uses apiPost (the /intelligence/arch_signals endpoint accepts GET or POST).
|
||||
function loadArchSignals(){
|
||||
var el=document.getElementById('arch-signals');
|
||||
if(!el) return;
|
||||
apiPost('/intelligence/arch_signals',{}).then(function(s){
|
||||
el.textContent='';
|
||||
function tile(label, big, sub, accent){
|
||||
var t=document.createElement('div');
|
||||
t.style.cssText='background:#0d1117;border:1px solid #171d27;border-radius:10px;padding:14px 16px;border-left:3px solid '+(accent||'#58a6ff');
|
||||
var l=document.createElement('div');l.style.cssText='font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#545d68;margin-bottom:6px';l.textContent=label;
|
||||
var b=document.createElement('div');b.style.cssText='font-size:20px;font-weight:600;color:#e6edf3;line-height:1.1';b.textContent=big;
|
||||
var u=document.createElement('div');u.style.cssText='font-size:10px;color:#8b949e;margin-top:6px;line-height:1.4';u.textContent=sub;
|
||||
t.appendChild(l);t.appendChild(b);t.appendChild(u);
|
||||
return t;
|
||||
}
|
||||
var idx=s.index||{};
|
||||
var pbm=s.playbook_memory||{};
|
||||
var pwm=s.pathway_memory||{};
|
||||
var latencyColor=s.instant_search_probe_ms<100?'#2ea043':s.instant_search_probe_ms<500?'#d29922':'#f85149';
|
||||
el.appendChild(tile('Instant Search',(s.instant_search_probe_ms||'?')+'ms','Live /vectors/hybrid probe · 500K-row index · '+(idx.chunk_count||0).toLocaleString()+' chunks',latencyColor));
|
||||
el.appendChild(tile('Index',(idx.dimensions||768)+'d · '+(idx.model||'?'),(idx.source||'?')+' → '+(idx.name||'?')+' · '+(idx.backend||'parquet'),'#58a6ff'));
|
||||
el.appendChild(tile('Playbook Memory',(pbm.entries||0).toLocaleString()+' entries',pbm.entries>0?'Meta-index active · boosts candidates from past fills':'Empty · POST /vectors/playbook_memory/rebuild to populate',pbm.entries>0?'#2ea043':'#d29922'));
|
||||
el.appendChild(tile('Pathway Matrix',(pwm.total_pathways||0)+' traces',pwm.retired+' retired · '+pwm.total_replays+' replays · ADR-021 compounding','#58a6ff'));
|
||||
}).catch(function(e){
|
||||
el.textContent='substrate signals unavailable: '+e.message;
|
||||
});
|
||||
}
|
||||
|
||||
// Pathway memory live counters in Chapter 4 — small inline spans.
|
||||
function loadPathwayLive(){
|
||||
fetch(A+'/api/vectors/pathway/stats').then(function(r){return r.json()}).then(function(p){
|
||||
|
||||
Reference in New Issue
Block a user