Add minimal sensitive-info hygiene plan and projection cause sample diagnostics
This commit is contained in:
@@ -179,15 +179,19 @@ def shadow_compare_session(session: ChatSession, detail_limit: int = 50) -> dict
|
||||
"ambiguous_reaction_target": 0,
|
||||
"payload_normalization_gap": 0,
|
||||
}
|
||||
cause_samples = {key: [] for key in cause_counts.keys()}
|
||||
cause_sample_limit = min(5, max(0, int(detail_limit)))
|
||||
|
||||
def _record_detail(message_id: str, issue: str, cause: str, extra: dict | None = None):
|
||||
if cause in cause_counts:
|
||||
cause_counts[cause] += 1
|
||||
row = {"message_id": message_id, "issue": issue, "cause": cause}
|
||||
if extra:
|
||||
row.update(dict(extra))
|
||||
if len(details) < max(0, int(detail_limit)):
|
||||
row = {"message_id": message_id, "issue": issue, "cause": cause}
|
||||
if extra:
|
||||
row.update(dict(extra))
|
||||
details.append(row)
|
||||
if cause in cause_samples and len(cause_samples[cause]) < cause_sample_limit:
|
||||
cause_samples[cause].append(row)
|
||||
|
||||
for message_id, db_row in db_by_id.items():
|
||||
projected = projected_by_id.get(message_id)
|
||||
@@ -289,5 +293,6 @@ def shadow_compare_session(session: ChatSession, detail_limit: int = 50) -> dict
|
||||
"mismatch_total": mismatch_total,
|
||||
"counters": counters,
|
||||
"cause_counts": cause_counts,
|
||||
"cause_samples": cause_samples,
|
||||
"details": details,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user