diff --git a/src/fgai/dashboard.py b/src/fgai/dashboard.py
index 470b17c..30cb94a 100644
--- a/src/fgai/dashboard.py
+++ b/src/fgai/dashboard.py
@@ -261,6 +261,7 @@ async function refresh() {
document.getElementById('liveStatus').innerHTML = [
data.stale ? `Showing cached dashboard data because live MCP fetch failed.` : '',
cache.stored_at ? `Cached snapshot: ${esc(new Date(cache.stored_at * 1000).toLocaleString())}` : '',
+ `Status schema: ${esc(data.status_schema || 'old')}`,
`Log file: ${esc(data.log_path || '')}`,
`Policy file: ${esc(data.policy_path || 'none')}`,
`Critical anomalies: ${esc((a.critical || 0))}`,
diff --git a/src/fgai/monitor.py b/src/fgai/monitor.py
index cf263e3..8c5efcf 100644
--- a/src/fgai/monitor.py
+++ b/src/fgai/monitor.py
@@ -306,6 +306,7 @@ def build_status(
summary["raw_sample_total"] = len(events)
summary["aggregate_backed"] = True
status = {
+ "status_schema": 2,
"generated_at": int(time.time()),
"log_path": log_path,
"policy_path": policy_path,
diff --git a/start.sh b/start.sh
index 699f0d7..48ee72c 100755
--- a/start.sh
+++ b/start.sh
@@ -14,6 +14,7 @@ STATE_FILE="${FGAI_STATE_FILE:-$ROOT_DIR/state/fgai-status.json}"
CONFIG_FILE="${FGAI_CONFIG_FILE:-$ROOT_DIR/state/fgai-config.json}"
BASELINE_DB="${FGAI_BASELINE_DB:-$ROOT_DIR/state/fgai-baseline.sqlite3}"
HISTORY_DB="${FGAI_HISTORY_DB:-$ROOT_DIR/state/signalscope-history.sqlite3}"
+STATUS_CACHE_DB="${FGAI_STATUS_CACHE_DB:-$ROOT_DIR/state/signalscope-status-cache.sqlite3}"
MONITOR_INTERVAL="${FGAI_MONITOR_INTERVAL:-10}"
LLM_ENABLED="${FGAI_LLM:-0}"
LLM_INTERVAL="${FGAI_LLM_INTERVAL:-300}"
@@ -121,7 +122,7 @@ start_monitor() {
return 0
fi
- monitor_args=(monitor --logs "$LOG_FILE" --output "$STATE_FILE" --interval "$MONITOR_INTERVAL" --baseline-db "$BASELINE_DB" --history-db "$HISTORY_DB" --config-file "$CONFIG_FILE")
+ monitor_args=(monitor --logs "$LOG_FILE" --output "$STATE_FILE" --interval "$MONITOR_INTERVAL" --baseline-db "$BASELINE_DB" --history-db "$HISTORY_DB" --status-cache-db "$STATUS_CACHE_DB" --config-file "$CONFIG_FILE")
if [ -f "$POLICY_FILE" ]; then
monitor_args+=(--policies "$POLICY_FILE")
fi
diff --git a/tests/test_monitor.py b/tests/test_monitor.py
index 6b19885..9819d6c 100644
--- a/tests/test_monitor.py
+++ b/tests/test_monitor.py
@@ -26,6 +26,7 @@ class MonitorTests(unittest.TestCase):
status = build_status(str(log_path), incident_path=str(Path(tmp) / "incidents.json"))
self.assertEqual(status["summary"]["total"], 3)
+ self.assertEqual(status["status_schema"], 2)
self.assertGreaterEqual(len(status["anomalies"]), 1)
def test_write_status_creates_parent_directory(self):