Files
Workstation-Setup/IMPROVEMENT-REPORT.md
2026-09-28 17:39:45 -07:00

82 lines
4.9 KiB
Markdown

# Workstation Setup Improvement Report
## Architecture Review
### Critical Issues Resolved
- `X-Ways.WinHex` was removed from the WinGet catalog after its manifest hash repeatedly diverged from the vendor archive. WinHex is now installed from the official portable ZIP using rollback validation and a recorded SHA256 hash.
- Profile path construction no longer resolves unavailable `S:` or `P:` drives during startup. `-HealthCheck` can now report absent shared volumes instead of failing before diagnostics run.
### Major Issues Resolved
- Application, folder, shortcut, workstation profile, and Xhorse resource definitions moved from executable code to the seven version-controlled JSON files in [Config](Config).
- The VS Code extension inventory now always returns an array under strict mode.
- Portable downloads use a shared retry, timeout, resume (curl), size validation, and SHA256 manifest-recording path.
- Setup outcomes are captured in structured events and exported in CSV, JSON, and HTML.
### Minor Issues Resolved
- Removed legacy Win1/Win2/Win3 workspace assumptions in favor of the three named workstation profiles.
- Unified the generic portable executable and archive transfer behavior.
- Added optional PowerShell transcripts.
- Disabled USB selective suspend on AC and DC for the active power scheme, then reactivated that scheme. This prevents Windows power management from suspending a connected diagnostic interface during an authorized session.
- Multi-PROG documentation downloads now use `automotive-resources.json`, and the duplicate portable CLI `PATH` update was removed.
## Revalidation Results (2026-09-06)
- PowerShell parser validation completed without errors.
- All seven JSON configuration files completed `ConvertFrom-Json` validation.
- The installer catalog correctly separates portable utilities from licensed/OEM applications and launches vendor installers interactively.
- USB selective-suspend guidance is now backed by an executed configuration step; hibernation remains disabled.
- No live vendor downloads, hardware drivers, or vehicle communication tests were executed during this source revalidation. Those require the intended Windows installation, approved interface, and authorized bench or vehicle.
## Configuration Model
| File | Purpose |
| --- | --- |
| `apps-core.json` | Required WinGet applications |
| `apps-optional.json` | Optional WinGet apps and VS Code extensions |
| `portable-apps.json` | Direct and GitHub portable applications |
| `folder-structure.json` | Local, shared-data, and shared-portable folder layout |
| `shortcuts.json` | Folder, Sysinternals, and automotive-tool shortcut metadata |
| `workstation-profiles.json` | Named isolated workstation roles |
| `automotive-resources.json` | Xhorse, MVCI PRO, Autel, manuals, installers, and automotive references |
## Operational Modes
```powershell
.\Automotive-Workstation-Setup.ps1 -WorkstationProfile 'DailyTech & Tuning'
.\Automotive-Workstation-Setup.ps1 -WorkstationProfile 'ODIS & XENTRY'
.\Automotive-Workstation-Setup.ps1 -WorkstationProfile 'PIWIS & ISTA'
.\Automotive-Workstation-Setup.ps1 -HealthCheck
.\Automotive-Workstation-Setup.ps1 -BackupConfiguration
.\Automotive-Workstation-Setup.ps1 -RestoreConfiguration
```
All original parameters remain available. With no new mode switch, normal setup behavior continues.
## Reporting and Audit Artifacts
- `P:\Manifests\Hashes`: SHA256 records for managed portable downloads; falls back to `C:\Automotive\Config\Manifests\Hashes` when `P:` is unavailable.
- `P:\Manifests\Inventory`: health, setup, installed software, portable app, VS Code extension, driver, USB device, disk, environment, and service CSV outputs.
- Health and setup reports are also written as HTML and JSON.
- `P:\Automotive\Backups\Workstation`: ZIP configuration backups; falls back to local `C:\Automotive\Backups\Workstation`.
## Automotive Workstation Layout
Each isolated Windows installation uses only local `C:\Automotive`, shared data `S:` (`AUTO_DATA`), and shared portable content `P:` (`PORTABLE_APPS`). Profile-specific locations are:
- `S:\Automotive\Workstations\<profile>`
- `P:\PortableApps\Config\<profile>`
- `P:\Install\<profile>`
Commercial tool folders and backups are created for MultiPROG, WinOLS, StageX, Flex, PCMFlash, HxD, Ghidra, ImHex, SavvyCAN, and BusMaster. Licensed applications are never downloaded automatically.
## Optimization Summary
- GitHub lookup and app installation are skipped after expected executable validation.
- Download retries avoid immediate full-run failure for transient network faults.
- curl-backed downloads resume partial archives.
- Shared helper functions concentrate audit, error-handling, recovery, and transfer logic for targeted future testing.
Parallel download execution is deliberately not enabled: the current script updates shared logs, result lists, and common target volumes. Parallelizing it without process-safe state management would reduce reliability.