fix: preserve multi-cause reconcile warnings and align slot blocking
Co-authored-by: genichin <4282227+genichin@users.noreply.github.com>
This commit is contained in:
co-authored by
genichin
parent
e47bebacaf
commit
45a5e4157d
@@ -912,7 +912,15 @@ def _cmd_verify(args, cfg) -> int:
|
||||
c_slots: list[str] = []
|
||||
for sid in warn_store.list_warned():
|
||||
info = warn_store.get_warning_info(sid)
|
||||
if info and info.get("case_code") == "C":
|
||||
if not info:
|
||||
continue
|
||||
raw_codes = info.get("case_codes")
|
||||
if isinstance(raw_codes, list):
|
||||
case_codes = {str(code) for code in raw_codes if code}
|
||||
else:
|
||||
case_code = str(info.get("case_code", ""))
|
||||
case_codes = {case_code} if case_code else set()
|
||||
if "C" in case_codes:
|
||||
c_slots.append(info.get("portfolio_id", ""))
|
||||
target_pids = [p for p in c_slots if p]
|
||||
|
||||
|
||||
@@ -198,7 +198,7 @@ class Daemon:
|
||||
# BAT-010/011: per-slot watchdog (snapshot RPC writer, safety-sell reader).
|
||||
self.watchdog = WatchdogStore()
|
||||
self.pause_store = PostgreSQLPauseStore(config.dsn)
|
||||
# BAT-050 / REQ-102: durable reconcile-warning store (slot_id PK).
|
||||
# BAT-050 / REQ-102: durable reconcile-warning store ((slot_id, case_code) PK).
|
||||
self.warn_store = PostgreSQLReconcileWarningStore(config.dsn)
|
||||
# req-0007 / ac-0024: durable reconcile notification deduplication store.
|
||||
self.notification_store = PostgreSQLReconcileNotificationStore(config.dsn)
|
||||
|
||||
Reference in New Issue
Block a user