פתיחה של Revit → בקשה אחת ברקע → אם יש עדכון, קופץ דיאלוג
Core/Updates/UpdateInfo.cs — DTO ו-UpdateCheckResult. לעולם לא זורק, כל שגיאה נכנסת לשדה Error.Core/Updates/SemVer.cs — השוואת גרסה (3 חלקים + pre-release tail; 0.2.0-beta < 0.2.0).Core/Updates/UpdateChecker.cs — HTTP GET, HTTPS בלבד, TLS 1.2 מפורש, timeout 10 שניות, cap של 16KB על body, פרסר JSON inline (בלי Newtonsoft / STJ).Revit2024/Updater/UpdateNotifier.cs — מריץ את הבדיקה ב-Task.Run, מציג דיאלוג ב-Idling הראשון אחרי שהבדיקה הסתיימה, anti-nag.VitruviusConfig — 3 שדות חדשים: UpdateCheckEnabled (default true), UpdateManifestUrlOverride, SkippedUpdateVersion.VitruviusApp.cs — wiring ל-OnStartup / OnShutdown, עטוף ב-try/catch כך שכשל לא יוריד את הריבון.SettingsWindow.cs — סקציית "עדכונים" חדשה: toggle, גרסה נוכחית, כפתור "בדוק עכשיו" אסינכרוני, "בטל דילוג".VitruviusInfo.cs — קונסטנט DefaultUpdateManifestUrl.הקונסטנט מצביע ל-https://vitruvius.app/updates/manifest.json שלא קיים. עד שתהיה תשתית release, הבדיקה נכשלת בשקט — זה ה-design, לא באג.
לבדיקה end-to-end: להעלות JSON עם שדה latestVersion ל-GitHub Raw (או כל HTTPS פומבי), ולהכניס את ה-URL לשדה updateManifestUrlOverride בקובץ %APPDATA%\Vitruvius\config.json.
כפתור "פתח את דף ההורדה" פותח את ה-URL בדפדפן הדיפולטי. לא מוריד את ה-installer בתוך Revit ולא מתקין — כי installer עדיין לא קיים (זה M9).
LicenseManager stub (IsActivated() → true) + integration נקודתית בכל פקודה. אומדן יום עבודה.PLAN.md עודכן — שורת M7 מסומנת ✓ עם תיאור מלא של מה שנבנה בפועל.
ענה: כן / לא, עצור / קודם בדוק M7 ידנית עם manifest אמיתי.