Vitruvius · DocumentChanged → ExternalEvent → RunSilently · סשן 0027 · v1.0
cadType.Reload() שלנו ב-RunPipeline יורה את אותו evente.GetModifiedElementIds(filter) — מוריד עשרות IDs לפריט בודד%APPDATA%\Vitruvius\ · רק קישורים שתוקנו בעברFile.GetLastWriteTimeUtc(path) > entry.FixedAt — בלבד אם הקובץ נכתב אחרי התיקון האחרון שלנוExternalEvent.Raise() — מתור ל-idle ולא רץ מיד_pendingPaths ומנקה — events חדשים שיגיעו אח"כ ייצרו Raise חדשFixedAt = UtcNow > mtime · זה מה שמכבה את ה-loopcache.Record אחרי שה-DxfTextReverser/DwgReverseService כתבו את הקובץ.
FixedAt = UtcNow בנקודה הזאת הוא תמיד גדול מ-File.GetLastWriteTimeUtc(path) של אותו קובץ.
כש-cadType.Reload() שלנו יורה את DocumentChanged הבא, ה-handler יראה mtime ≤ FixedAt ויסנן החוצה.
רק כתיבה חיצונית (היועץ דורס) שמדחפת את ה-mtime מעבר ל-FixedAt הישן — מצליחה לעבור.
בלי ה-guard: Reload תכנותי → DocumentChanged → re-fix → Reload תכנותי → ... לולאה אינסופית.