agent_panel: alerts use the macro persona's verdict; all 4 takes still logged
agent_panel.verdict_source defaults to "macro": the macro take's stance is the verdict, the synthesizer call is skipped (4 LLM calls per panel instead of 5); "chair" restores the four-voice consensus + OPPOSE guard. Verdict source is cached per mode and logged (panel_verdict_source). 406 tests. Claude-Session: https://claude.ai/code/session_01FC4s6VCURFte4dub4xKxYL
This commit is contained in:
+6
-2
@@ -169,6 +169,7 @@ _ADDITIVE_SIGNAL_COLS = (
|
||||
("bar_range_median", "REAL"),
|
||||
("scan_kind", "TEXT"),
|
||||
("config_fingerprint", "TEXT"),
|
||||
("panel_verdict_source", "TEXT"),
|
||||
)
|
||||
|
||||
# Read-side compatibility view `signals_with_news`: legacy rows keep
|
||||
@@ -779,6 +780,7 @@ class SignalLogger:
|
||||
created_at: Optional[str] = None,
|
||||
cache_status: Optional[str] = None,
|
||||
payload_hash: Optional[str] = None,
|
||||
verdict_source: Optional[str] = None,
|
||||
) -> None:
|
||||
"""Fill panel provenance; seeds an outcome only for rows that
|
||||
log() did not already seed (rows written by an older process)."""
|
||||
@@ -804,11 +806,12 @@ class SignalLogger:
|
||||
" panel_created_at=COALESCE(?, panel_created_at),"
|
||||
" panel_cache_status=COALESCE(?, panel_cache_status),"
|
||||
" panel_payload_hash=COALESCE(?, panel_payload_hash),"
|
||||
" panel_verdict_source=COALESCE(?, panel_verdict_source),"
|
||||
" advisory_outcome_status=COALESCE(advisory_outcome_status, ?),"
|
||||
" advisory_outcome_json=COALESCE(advisory_outcome_json, ?)"
|
||||
" WHERE id=?",
|
||||
(verdict, confidence, rationale, takes_json,
|
||||
created_at, cache_status, payload_hash,
|
||||
created_at, cache_status, payload_hash, verdict_source,
|
||||
advisory_status, advisory_json, rowid))
|
||||
self._conn.commit()
|
||||
|
||||
@@ -1205,7 +1208,8 @@ def log_panel_update(report: Any) -> None:
|
||||
_dumps(getattr(report, "panel_takes", None) or []),
|
||||
created_at=getattr(report, "panel_created_at", "") or None,
|
||||
cache_status=getattr(report, "panel_cache_status", "") or None,
|
||||
payload_hash=getattr(report, "panel_payload_hash", "") or None)
|
||||
payload_hash=getattr(report, "panel_payload_hash", "") or None,
|
||||
verdict_source=getattr(report, "panel_verdict_source", "") or None)
|
||||
except Exception:
|
||||
logger.warning("signal_log: failed to persist panel verdict",
|
||||
exc_info=True)
|
||||
|
||||
Reference in New Issue
Block a user