Honesty fixes — no hard-coded counts, dynamic sample CSV
- generateSampleRosterCSV(): 120-180 randomized rows per call, timestamp-prefixed IDs (no dedup on re-upload, no static 25 row lie) - /system/summary: truth via SQL COUNT(*), surfaces manifest_drift (caught candidates: manifest 100K, actual 1K) - search.html: loadSystemSummary() hydrates live counts; removed hard-coded 500K strings - MCP tool description: "candidates (100K)" → "candidates (1K)", added "workers_500k (500K)"
This commit is contained in:
+31
-4
@@ -127,7 +127,7 @@ body{font-family:'Inter',-apple-system,system-ui,'Segoe UI',sans-serif;backgroun
|
||||
<div class="section" id="live-contracts-section">
|
||||
<div class="section-header">
|
||||
<span class="section-title">Live Contracts — Chicago Permits → Proposed Fills</span>
|
||||
<span class="section-meta">Real public permit data + our 500K worker bench + past playbook patterns</span>
|
||||
<span class="section-meta" id="live-contracts-meta">Real public permit data + worker bench + past playbook patterns</span>
|
||||
</div>
|
||||
<div id="live-contracts"><div class="ld">Loading live contracts...</div></div>
|
||||
</div>
|
||||
@@ -151,7 +151,7 @@ body{font-family:'Inter',-apple-system,system-ui,'Segoe UI',sans-serif;backgroun
|
||||
<div class="section">
|
||||
<div class="section-header">
|
||||
<span class="section-title">Worker Search</span>
|
||||
<span class="section-meta">Natural language · 500K profiles</span>
|
||||
<span class="section-meta" id="worker-search-meta">Natural language search</span>
|
||||
</div>
|
||||
<details class="sa" open><summary>Search all workers</summary><div class="inner">
|
||||
<input type="text" id="sq" placeholder="Try: reliable forklift operator available in Nashville" onkeydown="if(event.key==='Enter')doSearch()">
|
||||
@@ -160,14 +160,41 @@ body{font-family:'Inter',-apple-system,system-ui,'Segoe UI',sans-serif;backgroun
|
||||
<button class="sbtn" onclick="doSearch()">Find Workers</button><div id="sresults"></div></div></details>
|
||||
</div>
|
||||
|
||||
<div class="ft">Staffing Co-Pilot · Hybrid SQL + Vector Search · 500K embedded profiles · <a href="console">Console</a> · <a href="proof">Architecture</a></div>
|
||||
<div class="ft" id="footer">Staffing Co-Pilot · Hybrid SQL + Vector Search · loading scale… · <a href="console">Console</a> · <a href="proof">Architecture</a></div>
|
||||
</div>
|
||||
<script>
|
||||
var P=location.pathname.indexOf('/lakehouse')>=0?'/lakehouse':'';
|
||||
var A=location.origin+P;
|
||||
var AC=['#1a2744','#1a3a2a','#2a1a3a','#3a2a1a','#1a3a3a','#2a2a1a'];
|
||||
var lastQuery='';
|
||||
window.addEventListener('load',function(){loadDay();loadStaffingForecast();loadLiveContracts();loadMarket();loadLearning()});
|
||||
window.addEventListener('load',function(){loadSystemSummary();loadDay();loadStaffingForecast();loadLiveContracts();loadMarket();loadLearning()});
|
||||
|
||||
function loadSystemSummary(){
|
||||
api('/system/summary',{}).then(function(s){
|
||||
if(!s) return;
|
||||
var totalRows=(s.total_rows||0).toLocaleString();
|
||||
var workers=(s.workers_500k_rows||0).toLocaleString();
|
||||
var chunks=(s.total_chunks||0).toLocaleString();
|
||||
var ds=s.datasets||0;
|
||||
var meta1=document.getElementById('live-contracts-meta');
|
||||
if(meta1) meta1.textContent='Real public permit data + '+workers+' worker bench + past playbook patterns';
|
||||
var meta2=document.getElementById('worker-search-meta');
|
||||
if(meta2) meta2.textContent='Natural language · '+workers+' profiles across '+ds+' datasets';
|
||||
var foot=document.getElementById('footer');
|
||||
if(foot){
|
||||
foot.textContent='';
|
||||
foot.appendChild(document.createTextNode('Staffing Co-Pilot · Hybrid SQL + Vector Search · '+totalRows+' rows across '+ds+' datasets · '+chunks+' vector chunks · '));
|
||||
var a1=document.createElement('a');a1.href='console';a1.textContent='Console';foot.appendChild(a1);
|
||||
foot.appendChild(document.createTextNode(' · '));
|
||||
var a2=document.createElement('a');a2.href='proof';a2.textContent='Architecture';foot.appendChild(a2);
|
||||
}
|
||||
// Also update the collapsible search box label if not yet populated
|
||||
var sum=document.querySelector('.sa summary');
|
||||
if(sum&&/Search all\s*\d*\s*workers/.test(sum.textContent)){
|
||||
sum.textContent='Search all '+workers+' workers';
|
||||
}
|
||||
}).catch(function(){/* non-fatal */});
|
||||
}
|
||||
|
||||
function loadStaffingForecast(){
|
||||
api('/intelligence/staffing_forecast',{}).then(function(r){
|
||||
|
||||
Reference in New Issue
Block a user