diff --git a/dashboard/index.html b/dashboard/index.html
index fc63c62..70b38a4 100644
--- a/dashboard/index.html
+++ b/dashboard/index.html
@@ -3102,6 +3102,8 @@
+
+
diff --git a/dashboard/js/proactive.js b/dashboard/js/proactive.js
index 480df48..652f087 100644
--- a/dashboard/js/proactive.js
+++ b/dashboard/js/proactive.js
@@ -835,8 +835,8 @@
const readyCount = diurnalData.filter(d => d.is_ready).length;
diurnalReady = readyCount > (diurnalData.length / 2); // Majority ready
- // Average learning progress
- const progressValues = diurnalData.map(d => d.learning_progress || 0).filter(p => p >= 0);
+ // Average learning progress (backend returns 'progress' field, 0-100 range)
+ const progressValues = diurnalData.map(d => (d.progress || 0) / 100).filter(p => p >= 0);
if (progressValues.length > 0) {
learningProgress = progressValues.reduce((a, b) => a + b, 0) / progressValues.length;
}
diff --git a/dashboard/js/settings-panel.js b/dashboard/js/settings-panel.js
index 2203141..009e460 100644
--- a/dashboard/js/settings-panel.js
+++ b/dashboard/js/settings-panel.js
@@ -447,6 +447,17 @@
if (window.SpaxelState) {
Object.assign(window.SpaxelState.settings, updates);
}
+
+ // Track setting changes for proactive assistance
+ if (window.Proactive) {
+ // Track each qualifying setting that changed
+ const qualifyingSettings = ['delta_rms_threshold', 'fresnel_decay', 'n_subcarriers', 'tau_s', 'breathing_sensitivity'];
+ for (const key in updates) {
+ if (qualifyingSettings.includes(key)) {
+ window.Proactive.trackSettingChange(key, updates[key]);
+ }
+ }
+ }
});
}