fix(research): עמדת ועדת הערר בטענות-סף נשמרה אך לא נקראה בחזרה
הקורא והכותב של analysis-and-research.md לא הסכימו על מהו שדה: FIELD_LABEL_RE דרש `**כותרת:**` בתחילת שורה, בעוד הכותב התאים את התווית בכל מקום בשורה. האנליסט כותב טענות-סף כרשימה (`- **עמדת ועדת הערר:**`) ואת הסוגיות בתחילת שורה — ולכן שמירה בטענת-סף הצליחה (200 + "✓ נשמר"), אבל הקורא לא ראה את השדה כלל והעמדה נעלמה ברענון. גם יתר שדות הטענה (טענה/תשובה/שאלה משפטית) היו בלתי-נראים באותן טענות. - הקורא מקבל תווית עם סמן-רשימה אופציונלי, כמו הכותב. - הכותב עובר להשתמש באותה הגדרת-גבולות של הקורא (_chair_field_span) במקום regex משלו — `[^*]*?` הישן גם קטע עמדה שהכילה `**הדגשה**`. התווית והסמן נשמרים כפי שהם, וכך גם `---` הסוגר. - תווית מעוטרת (`עמדת ועדת הערר (הכוונת יו"ר 24.6)`) מזוהה בהתאמת-רישא; קודם הכותב הוסיף בלוק כפול במקום לעדכן. - שדה כפול באותו H3 (`### סוגיות 4–6`): הקורא לקח את האחרון והכותב את הראשון. שניהם לוקחים עכשיו את הראשון. - read-after-write: שמירה שהפרסר לא קורא בחזרה מדווחת כשגיאה במקום "נשמר" ירוק, וה-UI שומר בקאש את מה שהשרת קרא — לא את מה ששלח. - תבנית האנליסט (§5) קיבלה שלד מפורש לטענות-סף, זהה לזה של הסוגיות, כדי שקבצים חדשים לא ייווצרו במבנה החורג (נרמול-במקור, G1). הרצת round-trip על כל הקורפוס: 24 מתוך 141 תת-סעיפים נכשלו לפני התיקון (1017, 1019, 1027, 1033, 1043, 1069, 8124) — 0 אחריו. העמדות שכבר נשמרו בקבצים הקיימים חוזרות להיקרא בלי מיגרציה. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -45,8 +45,10 @@ export function ChairEditor({
|
||||
if (trimmed === lastSaved.current.trim()) return;
|
||||
setState({ kind: "saving" });
|
||||
try {
|
||||
await mutate.mutateAsync({ sectionId, position: trimmed });
|
||||
lastSaved.current = trimmed;
|
||||
const res = await mutate.mutateAsync({ sectionId, position: trimmed });
|
||||
/* Track what the backend read back, not what we sent — "✓ נשמר" must
|
||||
mean "persisted and re-readable", or a later blur skips the save. */
|
||||
lastSaved.current = res?.position ?? trimmed;
|
||||
setState({ kind: "saved", at: new Date() });
|
||||
} catch (e) {
|
||||
setState({
|
||||
|
||||
Reference in New Issue
Block a user