diff --git a/mcp-server/src/legal_mcp/tools/cases.py b/mcp-server/src/legal_mcp/tools/cases.py index 3b94b93..f23131d 100644 --- a/mcp-server/src/legal_mcp/tools/cases.py +++ b/mcp-server/src/legal_mcp/tools/cases.py @@ -277,13 +277,27 @@ async def case_update( """ from datetime import date as date_type + # Ordered workflow statuses — regression protection + STATUS_ORDER = [ + "new", "uploading", "processing", "documents_ready", + "analyst_verified", "research_complete", "outcome_set", + "brainstorming", "direction_approved", "analysis_enriched", "ready_for_writing", + "drafting", "qa_review", "drafted", + "exported", "reviewed", "final", + ] + case = await db.get_case_by_number(case_number) if not case: return f"תיק {case_number} לא נמצא." fields = {} if status: - fields["status"] = status + current = case.get("status", "") + cur_idx = STATUS_ORDER.index(current) if current in STATUS_ORDER else -1 + new_idx = STATUS_ORDER.index(status) if status in STATUS_ORDER else -1 + # Only update if advancing or status is unknown to the order + if new_idx >= cur_idx or new_idx == -1: + fields["status"] = status if title: fields["title"] = title if subject: