Skip to content

Releases: Linktech-Engineering-LLC/VSCode-Updater

VSCode-Updater v3.1.0 — Servicing‑Blocked Detection & Early‑Abort Pipeline

Choose a tag to compare

@ldmcclatchey ldmcclatchey released this 13 Aug 22:10

This release introduces a major reliability enhancement to the VSCode-Updater execution pipeline: Windows servicing‑blocked detection with deterministic early‑abort behavior. The updater now protects installations from corruption when Windows itself is in an unhealthy servicing state (component store corruption or pending reboot).

This is a foundational upgrade to the watchdog architecture and significantly improves safety on long‑lived Windows systems.

🚀 What’s New in 3.1.0

Windows Servicing‑Blocked Detection

VSCode-Updater now performs a pre‑flight servicing health check using:

  • DISM /Online /Cleanup-Image /CheckHealth
  • Windows pending reboot indicators

If Windows servicing is unhealthy, the updater:

  • aborts monitoring immediately
  • terminates the installer worker
  • skips retries
  • skips fallback
  • logs full diagnostics
  • emits deterministic exit code 114 (ServicingBlocked)

This prevents partial installs and protects VS Code from corruption.

🛡️ New Watchdog Lane: ServicingBlocked

A fourth watchdog lane has been added alongside filesystem, idle, and active stall detection.

The ServicingBlocked lane:

  • exits before extraction, payload load, or finalization
  • produces a complete diagnostic summary
  • integrates with the timeline system
  • suppresses ZIP fallback
  • returns a deterministic exit code

This is a major architectural enhancement to the updater’s safety model.

📊 Improved Diagnostics & Logging

  • DISM corruption flags logged explicitly
  • Pending reboot flags logged
  • Timeline entries reflect early‑exit behavior
  • Summary includes stall type: ComponentStoreCorrupt or PendingReboot
  • Fallback suppression logged deterministically

Logs now provide full operator‑grade visibility into servicing failures.

🔧 Changes

  • Main update loop now skips retries and fallback when servicing is blocked
  • ZIP fallback suppressed during servicing‑blocked conditions
  • Module manifest (.psd1) updated with new version and exit code
  • Module file (.psm1) updated with new watchdog lane wiring
  • README updated with servicing‑blocked documentation and architecture notes

🐛 Fixes

  • Removed stray boolean diagnostic output caused by WriteLog returning values to the pipeline
  • Improved cleanup behavior for early‑abort scenarios
  • Corrected final result propagation to avoid misclassification as installer failure

📦 Exit Codes

New:

  • 114 — ServicingBlocked
    Windows servicing corruption or pending reboot prevents safe installation.

📅 Release Date

2026‑08‑13

VSCode‑Updater v2.1.0 — Release Notes

Choose a tag to compare

@ldmcclatchey ldmcclatchey released this 20 Jun 17:42

Enhancements

  • Added deterministic stall‑handling logic:
    • Any *Stalled watchdog result now triggers immediate ZIP fallback.
    • Eliminated unnecessary retries after a stall to prevent repeated failures.
  • Improved cleanup sequencing:
    • Ensures cleanup runs before fallback and before retries.
    • Cleanup routines are now consistently idempotent and safe to run multiple times.
  • Strengthened installer monitoring:
    • More reliable detection of InnoSetup worker processes.
    • Improved filesystem‑stall detection and logging clarity.
  • Improved fallback reliability:
    • Ensures environment is clean before ZIP extraction.
    • Guarantees symlink replacement and version activation succeed even after a failed installer run.

Stability Improvements

  • Reduced risk of partial installs or locked files.
  • Ensured consistent post‑update state validated by Get‑VSCodeDashboard.
  • Added more explicit stall‑state logging for diagnostics.

Internal

  • Updated retry loop structure for clarity and determinism.
  • Added guardrails around max retry count.
  • Prepared checklist items for next session (v2.1.x roadmap).

VSCode‑Updater 2.0.1

Choose a tag to compare

@ldmcclatchey ldmcclatchey released this 05 May 14:46

Release Notes (v2.0.1)

This release updates the module manifest and metadata to ensure full compatibility with the PowerShell Gallery publishing pipeline. All metadata fields have been normalized to the PrivateData.PSData block, resolving validation issues under PowerShellGet v1 and Windows PowerShell 5.1. The GitHub Actions workflow has also been updated to run under PowerShell 7 with the correct module‑publishing behavior.

Changes

  • Corrected and reorganized manifest metadata for PowerShell Gallery compliance.
  • Moved ProjectUri, LicenseUri, IconUri, Tags, and ReleaseNotes into PrivateData.PSData.
  • Ensured the manifest parses cleanly under both PowerShell 5.1 and PowerShell 7.
  • Updated the GitHub Actions workflow to use PowerShellGet v2 and PowerShell 7 for publishing.
  • Cleaned up version alignment between the manifest, tag, and release.

Notes

This release focuses solely on metadata and publishing infrastructure. No functional changes were made to the module’s behavior.

VSCode-Updater v2.0.0

Choose a tag to compare

@ldmcclatchey ldmcclatchey released this 09 Apr 14:53

🚀 VSCode-Updater v2.0.0

This release introduces a fully redesigned, deterministic update engine for Visual Studio Code.
The module now provides operator‑grade reliability, predictable exit states, and hardened silent‑install orchestration across Windows platforms.


✨ New Features

Deterministic Watchdog

  • Monitors installer execution in real time.
  • Detects stalls, hung processes, and non‑terminating installers.
  • Enforces strict timeout and controlled termination behavior.

Unified Logging Lifecycle

  • Consistent log format across PowerShell 5.1 and 7+.
  • Timestamped lifecycle banners for start, stop, and watchdog events.
  • Supports custom log path overrides.

Exit‑Code Normalization Layer

  • Maps installer return codes into predictable module exit states.
  • Ensures clean, single‑line output for automation systems (CI/CD, RMM, monitoring).

Silent Installer Orchestration

  • Bypasses VS Code’s internal updater.
  • Ensures deterministic, unattended updates with hardened error handling.

🔧 Improvements

  • Rebuilt download logic for reliability and predictable failure modes.
  • Consolidated helper functions under Private/ with strict scoping.
  • Updated module manifest with accurate metadata and exports.
  • README updated to reflect new architecture and usage patterns.

🗑️ Removed

  • Legacy non‑deterministic update logic.
  • Any reliance on VS Code’s built‑in update mechanism.

📦 Compatibility

  • Windows PowerShell 5.1 and PowerShell 7+
  • Windows 10/11, Server 2016–2025

📘 Notes

This release marks the beginning of the hardened, operator‑grade lifecycle for VSCode‑Updater.
Future releases will expand verbose diagnostics, telemetry, and extended logging options.