feat(claims): אכלוס claims.party_name במקור + backfill — סגירת השדה-המת (#224)
עד כה claims.party_name נשאר ריק והצבירה/הכתיבה גזרו את הפרדת-המשיבים מ-source_document בזמן-ריצה (שדה-מת). עכשיו הוא מאוכלס במקור ונקרא ע"י הצרכנים. - claims_extractor.extract_and_store_claims: מחתים party_name=source_document ל-SPLIT_PARTIES (respondent/permit_applicant); single-voice נשאר ''. אותו כלל SPLIT_PARTIES של הצבירה (G2, import לא-מעגלי). - SCHEMA_V52: backfill idempotent ל-claims קיימים (רק split + party_name ריק). - argument_aggregator + block_writer._build_claims_context: קוראים claims.party_name, עם fallback ל-source_document ל-claims מדור-קודם. התנהגות זהה (party_name==source_document) — אפס-רגרסיה, אך השדה כעת מקור-האמת (G1). py_compile + טעינת-שרשרת-ייבוא נקיים. סוגר את הפתוח האחרון של #224. Invariants: G1 (אכלוס במקור, לא גזירה-בקריאה), G2 (כלל-פיצול יחיד). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -221,7 +221,7 @@ async def aggregate_claims_to_arguments(
|
||||
|
||||
# Pull all claims for this case, grouped by party.
|
||||
rows = await conn.fetch(
|
||||
"""SELECT id, party_role, claim_text, claim_index, source_document
|
||||
"""SELECT id, party_role, claim_text, claim_index, source_document, party_name
|
||||
FROM claims
|
||||
WHERE case_id = $1
|
||||
ORDER BY party_role, claim_index""",
|
||||
@@ -249,10 +249,13 @@ async def aggregate_claims_to_arguments(
|
||||
# Map deprecated 'appraiser' or unknown labels to 'unknown'.
|
||||
if party not in ALLOWED_PARTIES:
|
||||
party = "unknown"
|
||||
party_name = (
|
||||
(r["source_document"] or "").strip()
|
||||
if party in SPLIT_PARTIES else ""
|
||||
)
|
||||
# Prefer the stored party_name (stamped by the extractor, #224); fall
|
||||
# back to source_document for legacy claims predating the stamping.
|
||||
# Single-voice sides (appellant/committee) stay ''.
|
||||
if party in SPLIT_PARTIES:
|
||||
party_name = (r["party_name"] or "").strip() or (r["source_document"] or "").strip()
|
||||
else:
|
||||
party_name = ""
|
||||
by_group.setdefault((party, party_name), []).append(dict(r))
|
||||
|
||||
# Valid claim_ids for this case == the ids of the claims we just fetched.
|
||||
|
||||
Reference in New Issue
Block a user