Every page refresh feeds the learning loop — contracts logged as playbook entries

Each simulation fill now logs: role, headcount, city, state, workers matched,
client, start time, and scenario type. One page refresh = ~20 playbook entries.
4 refreshes = 28 entries with patterns already forming.

Fixed activity counters: shows Contract Fills, Searches, and Patterns.
Activity feed now shows the actual fill data with worker names and scenarios.

This is the PRD's learning loop in action — the system records every
successful match so future queries can learn from past decisions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
root
2026-04-17 20:05:51 -05:00
co-authored by Claude Opus 4.6
parent bba5b826a3
commit b16e485be1
2 changed files with 33 additions and 15 deletions
+4 -4
View File
@@ -614,7 +614,7 @@ function loadLearning(){
api('/intelligence/activity',{}).then(function(d){
var el=document.getElementById('learning');
el.textContent='';
var total=(d.search_count||0)+(d.sim_count||0);
var total=d.total_operations||0;
if(total===0&&(!d.playbooks||!d.playbooks.length))return; // nothing to show yet
var card=document.createElement('div');card.className='insight info';
@@ -626,9 +626,9 @@ function loadLearning(){
// Stats row
var stats=document.createElement('div');stats.style.cssText='display:flex;gap:16px;margin-bottom:12px';
addLearnStat(stats,d.search_count||0,'Searches Logged','#58a6ff');
addLearnStat(stats,d.sim_count||0,'Simulations Run','#3fb950');
addLearnStat(stats,(d.learned_patterns||[]).length,'Patterns Detected','#bc8cff');
addLearnStat(stats,d.fill_count||0,'Contract Fills','#3fb950');
addLearnStat(stats,d.search_count||0,'Searches','#58a6ff');
addLearnStat(stats,(d.learned_patterns||[]).length,'Patterns','#bc8cff');
card.appendChild(stats);
// Learned patterns