fix(corpus): refresh searchable flag on metadata patch (INV-DM1, G1) #308
@@ -4534,7 +4534,16 @@ async def update_case_law(case_law_id: UUID, **fields) -> dict | None:
|
||||
params.append(v)
|
||||
sql = f"UPDATE case_law SET {', '.join(set_parts)} WHERE id = $1 RETURNING *"
|
||||
row = await pool.fetchrow(sql, *params)
|
||||
return _row_to_case_law(row) if row else None
|
||||
if row is None:
|
||||
return None
|
||||
# `searchable` is a DERIVED completeness flag (INV-DM1). It is computed at
|
||||
# ingest end and after the Gemini metadata extractor — but internal-committee
|
||||
# decisions skip Gemini, so when their summary/tags/metadata are filled later
|
||||
# (manual edit, deterministic enrichment) the flag would otherwise go stale
|
||||
# and the row stays invisible to RAG. Recompute at this write so the derived
|
||||
# value never drifts from the content (G1: normalize at the source).
|
||||
await recompute_searchable(case_law_id)
|
||||
return await get_case_law(case_law_id)
|
||||
|
||||
|
||||
async def set_case_law_extraction_status(case_law_id: UUID, status: str) -> None:
|
||||
|
||||
Reference in New Issue
Block a user