Skip to content

fix(linker): reject missing targets and validate full ranges before import - #108

Merged
Y-PLONI merged 1 commit into
otzariafrom
codex/strict-linker-targets
Oct 31, 2026
Merged

Y-PLONI merged 1 commit into
otzariafrom
codex/strict-linker-targets

Conversation

@Y-PLONI

@Y-PLONI Y-PLONI commented Oct 30, 2026 •

Copy link
Copy Markdown
Member

ב־v35, יעד LINKER שאינו קיים היה עלול להיפתר לסעיף הראשון בפרק האב: למשל Shulchan Arukh, Yoreh De'ah 216:119 הפך ל־216:1, ו־Proverbs 27:31-32 ל־27:1. כך כתובת פגומה קיבלה קישור תקין למראה.

מסלול LINKER משתמש כעת ברזולוציה מדויקת: מקטע קיים, או תחיליות סעיף/פרק/דף שהוכחו ברשומות ה־sidecar. אין הסרת רכיב כתובת כדי לבחור יעד חלופי. טווח מתקבל רק כששני הקצוות קיימים, שייכים לאותו ספר ומסודרים נכון. זהות שני הקצוות נבדקת מול ה־DB לפני כתיבת קישור, עוגן או טווח, כדי שכשל לא ישאיר קישור חלקי. רזולוציית Sefaria CSV נשארת ללא שינוי.

ה־recovery overlay מעתיק גם את LinkerTargetResolution.kt, כך שההגנה נשמרת בבנייה ממקור מוצמד.

אימות:

  • 781 בדיקות JVM עברו ללא כשל או דילוג. הן כוללות fixture של כל 42 אי־ההתאמות שנמצאו ב־v35, קצה חסר, טווח הפוך, ספרים שונים, יעד לא חד־משמעי, קצה שאינו תואם ל־DB וייבוא בפועל למסד ניסוי.
  • 252 בדיקות חוזי pipeline הסתיימו בהצלחה, עם 28 דילוגים תלויי פלטפורמה; 82 בדיקות workflow עברו ללא דילוגים, כולל ה־overlay.
  • במנוע המשלים נבדקו 72 ספרים מלאים ושני ספרים בשורות ייעודיות: 25,849 שורות ו־9,850 רשומות. כל 42 מקרי היעד עברו: שבע הפניות ש״ך/ט״ז שוחזרו בדיוק, ו־35 האחרות נשארו ללא יעד חלופי. כל 59 הוספות PR14 נשמרו ללא שינוי. כל 206 ההבדלים מהתוצר שפורסם נבדקו בהקשר; hashes ועוגני UTF־16 אומתו.

תיקון המנוע המשלים: LinkerToOtzaria PR15. יש לשלב את שני התיקונים ולבצע relink מלא ובנייה מחדש של שכבת LINKER. שינוי הייבוא לבדו אינו משחזר את שבע הפניות הפירוש ואת טווחי הפרקים שהמנוע אימת.

אין שינוי schema או שינוי ב־DB המשתמש. לא הופעל relink ולא פורסמה ספרייה. חלק מההפניות חסרות הוכחת ספר או בעלות כתובת מקור פגומה נשארות מושמטות במכוון; המדגם אינו מבטיח אפס שגיאות בכל הקורפוס.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant