From 8e4cbd84c2d30404f15e9b5eb4bba2b57a704e4b Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Thu, 19 Mar 2026 09:19:09 +0100 Subject: [PATCH] Invalidate grid_editor_result when exclude regions change When exclude regions are saved or deleted, the cached grid result is cleared so the grid rebuilds with updated exclusions on the next step. Co-Authored-By: Claude Opus 4.6 --- klausur-service/backend/ocr_pipeline_geometry.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/klausur-service/backend/ocr_pipeline_geometry.py b/klausur-service/backend/ocr_pipeline_geometry.py index 1c48adc..510c6c8 100644 --- a/klausur-service/backend/ocr_pipeline_geometry.py +++ b/klausur-service/backend/ocr_pipeline_geometry.py @@ -801,11 +801,13 @@ async def set_exclude_regions(session_id: str, body: _ExcludeRegionsBatchIn): sr = session.get("structure_result") or {} sr["exclude_regions"] = [r.model_dump() for r in body.regions] - await update_session_db(session_id, structure_result=sr) + # Invalidate grid so it rebuilds with new exclude regions + await update_session_db(session_id, structure_result=sr, grid_editor_result=None) # Update cache if session_id in _cache: _cache[session_id]["structure_result"] = sr + _cache[session_id].pop("grid_editor_result", None) return { "session_id": session_id, @@ -830,10 +832,12 @@ async def delete_exclude_region(session_id: str, region_index: int): removed = regions.pop(region_index) sr["exclude_regions"] = regions - await update_session_db(session_id, structure_result=sr) + # Invalidate grid so it rebuilds with new exclude regions + await update_session_db(session_id, structure_result=sr, grid_editor_result=None) if session_id in _cache: _cache[session_id]["structure_result"] = sr + _cache[session_id].pop("grid_editor_result", None) return { "session_id": session_id,