All checks were successful
Build & Deploy / build-and-deploy (push) Successful in 1m29s
Fixes critical bug in 1033-25: user-uploaded עריכה-*.docx files were
orphaned on disk while exports kept rebuilding from stale DB blocks.
New architecture:
- User-uploaded DOCX becomes the source of truth (cases.active_draft_path)
- System edits via XML surgery with real Word <w:ins>/<w:del> revisions
- User can Accept/Reject each change from within Word
Components:
- docx_reviser.py: XML surgery for Track Changes (15 tests)
- docx_retrofit.py: retroactive bookmark injection with Hebrew marker
detection + heading heuristic (9 tests)
- docx_exporter.py: emits bookmarks around each of the 12 blocks
- 3 new MCP tools: apply_user_edit, list_bookmarks, revise_draft
- 4 new/updated endpoints: upload (auto-registers active draft),
/exports/revise, /exports/bookmarks, /exports/{filename}/retrofit,
/active-draft
- DB migration: cases.active_draft_path column
- UI: correct banner using real v-numbers, "מקור האמת" badge,
detailed upload toast with bookmarks_added/missing_blocks
- agents: legal-exporter (3 export modes), legal-ceo (stage G for
revision handling), legal-writer (revision mode)
Multi-tenancy:
- Works for both CMP (1xxx cases) and CMPA (8xxx/9xxx cases)
- New revise-draft skill added to both companies
- deploy-track-changes.sh syncs skills CMP ↔ CMPA
- retrofit_case.py: one-off retrofit of existing files
Tests: 34 passing (15 reviser + 9 retrofit + 4 exporter bookmarks + 6 e2e)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4.2 KiB
4.2 KiB
scripts/ — מדריך סקריפטים
כלל: כל עדכון, יצירה, או מחיקה של סקריפט בתיקייה זו מחייב עדכון של קובץ זה.
סקריפטים פעילים
| Script | Type | Purpose | Scheduled |
|---|---|---|---|
auto-sync-cases.sh |
bash | סנכרון תיקי ערר ל-Gitea — רץ כל דקה | * * * * * (cron) |
backup-db.sh |
bash | גיבוי PostgreSQL יומי ל-data/backups/ (gzip) |
לתזמן: 0 2 * * * |
restore-db.sh |
bash | שחזור DB מגיבוי (companion ל-backup-db.sh) | ידני |
notify.py |
python | שליחת מייל התראה מסוכנים via SMTP (Gmail) | נקרא ע"י סוכנים |
bidi_table.py |
python | יצירת טבלאות box-drawing עם תמיכה ב-BiDi (עברית+אנגלית) | ספריית עזר |
convert_decision_template.py |
python | המרת data/training/טיוטת החלטה.dotx → skills/docx/decision_template.docx לטעינה ב-python-docx |
להריץ כשמתעדכנת התבנית |
deploy-track-changes.sh |
bash | סנכרון skills CMP↔CMPA + בדיקות + הנחיות deploy לארכיטקטורת Track Changes | ידני |
retrofit_case.py |
python | retrofit רטרואקטיבי — מזריק bookmarks לקובץ קיים של תיק ספציפי ומגדיר אותו כ-active_draft | ידני (חד-פעמי לתיק) |
תיקיית .archive/ — סקריפטים שהושלמו
סקריפטים חד-פעמיים שהפונקציונליות שלהם הוטמעה ב-MCP server או ב-API. נשמרים ב-git לצורך היסטוריה — אין להריץ אותם.
| Script | Original Purpose | Superseded By |
|---|---|---|
backfill_pattern_frequency.py |
עדכון תדירות דפוסי סגנון ב-DB | web/app.py::_extract_pattern_variants() |
batch_upload_training.py |
העלאת קורפוס אימון (16 קבצים) | Web UI: /api/training/upload |
benchmark_embeddings.py |
השוואת מודלי embeddings (voyage-3 vs voyage-4) | הושלם — voyage-3-large נבחר |
benchmark_new_vs_old.py |
השוואת Google Vision vs markdown קיים | הושלם — בדיקה חד-פעמית לתיק 1130-25 |
decompose-decisions.py |
פירוק החלטות סופיות ל-12 בלוקים | MCP: write_block(), write_all_blocks() |
export-decision-docx.py |
ייצוא החלטה ל-DOCX | MCP: export_docx() |
extract-citations.py |
חילוץ ציטוטי פסיקה מבלוק י | MCP service: references_extractor.py |
extract-claims.py |
חילוץ טענות מבלוק ז | MCP: extract_claims() + claims_extractor.py |
extract_all_google_vision.py |
OCR בכמות עם Google Vision | MCP: document_upload() pipeline |
extract_originals.py |
חילוץ טקסט מ-PDF עם Claude Opus | MCP service: extractor.py |
extract_originals_ocr.py |
חילוץ OCR מלא מ-PDF | MCP service: extractor.py |
generate-embeddings.py |
יצירת embeddings לבלוקים ופסיקה | אוטומטי — נוצרים עם יצירת בלוקים |
link-claims-to-discussion.py |
קישור טענות לפסקאות דיון | MCP service: qa_validator.py |
proofread_training_corpus.py |
ניקוי Nevo מ-DOCX/PDF ל-Markdown | MCP service: proofreader.py + Web UI |
seed-appeals.py |
seeding תיקי ערר ראשוניים ל-DB | MCP: case_create() |
seed-knowledge.py |
seeding לקחים, ביטויי מעבר, פסיקה | MCP: record_chair_feedback(), precedent_attach() |
validate-decision.py |
ולידציה מול block-schema | MCP: validate_decision() + qa_validator.py |
סקריפטים שנמחקו (git history בלבד)
| Script | Reason |
|---|---|
import-final-decisions.py |
מיגרציה הושלמה — כל ההחלטות ב-data/training/ |
compare_extractions.py |
בדיקה חד-פעמית לתיק 1130-25 |
decompose-decisions-v2.py |
כפילות של v1 |
extract_google_vision.py |
hardcoded לתיק בודד |
extract_google_vision_single.py |
wrapper חד-פעמי |
test-search.py |
סקריפט דיבאג |