Skip to content

Wizard#1

Merged
26zl merged 6 commits into
mainfrom
Wizard
Jun 18, 2026
Merged

Wizard#1
26zl merged 6 commits into
mainfrom
Wizard

Conversation

@26zl

@26zl 26zl commented Jun 18, 2026

Copy link
Copy Markdown
Owner

No description provided.

26zl added 6 commits April 19, 2026 15:13
Wizard
- 10 interactive steps covering all user-facing config: OMP theme, WT color
  scheme, Nerd Font, tab bar + window chrome, terminal appearance (opacity,
  useAcrylic, fontSize, cursorShape, padding, scrollbarState, historySize),
  PSReadLine colors (default / scheme-derived / skip), background image,
  editor preference, telemetry opt-out, feature toggles.
- Quick-start preset skips all 10 steps with sensible defaults.
- State schema versioning (WIZARD_STATE_SCHEMA) rejects stale state on -Resume.

Security and hardening
- SHA-256 hash input documented honestly: file integrity and reproducible
  installs, not MITM protection. Docs + in-code messages updated.
- setup.ps1 hard-failure paths now exit 1 (was silent return) so CI and
  callers see non-zero on missing admin / internet / winget.
- AllSigned execution policy downgrade now requires explicit consent.
- Telemetry opt-out tracked via ownership marker so uninstall does not
  remove env vars the user set for other tools.
- Install-NerdFonts returns false on timeout; wizard retries with default.

WT multi-variant
- New Get-WindowsTerminalSettingsPaths returns all installed WT variants so
  writers (profile Update-Profile phase 6, Set-TerminalBackground, setup
  step 10/10) iterate and update Stable + Preview + Canary + unpackaged.

Update-Profile
- Compares hash against both PS5 and PS7 installed profiles so a stale
  edition is caught even when the current $PROFILE is up to date.
- Creates the current edition's profile directory on fresh install.
- Triggers terminal restart on any runtime change (profile / theme / terminal
  / user-settings), not only when profile.ps1 itself changes.
- -WhatIf trips the ShouldProcess gate before any network download.
- Refreshes applied-commit baseline for the opt-in update-check.

Invoke-ProfileWizard
- SupportsShouldProcess, -ExpectedSha256, -SkipHashCheck, exit-code capture.
- -WhatIf returns before Invoke-DownloadWithRetry.

New commands
- cdb [N] / cdh  - directory history stack, bounded, stack-pop semantics
  (SuppressPwdHistoryPush flag avoids oscillation on repeat cdb).
- duration        - elapsed time of the last command.
- Test-ProfileHealth / psp-doctor - diagnose tools, caches, fonts, PATH,
  modules. Cross-platform safe (WARN when System.Drawing unavailable).

Automation
- Native completer cache for kubectl / gh / docker (first load caches to
  disk, subsequent loads dot-source).
- Tab-title indicators via PrePrompt hook: venv, conda, aws, aws-vault,
  k8s (read from ~/.kube/config, YAML quotes stripped), jobs count > 0.
- Opt-in features.updateCheck (default false); weekly check against
  GitHub commits API, stamp only written on success.

Wrappers and fallbacks
- admin / su fall back to pwsh/powershell -Verb runAs when wt is missing.
- setprofile.ps1 backs up existing profile to oldprofile.ps1 before overwrite.
- setup.ps1 auto-detects a local clone, skips GitHub downloads.

commandOverrides
- Underscore-prefixed keys (e.g. _note, _comment) are skipped so
  documentation markers in example JSON never compile as scriptblocks.

Trusted directories
- Add-TrustedDirectory rejects unresolvable paths instead of silently
  persisting bad strings.
- Remove-TrustedDirectory matches case-insensitively so users can clean
  stale entries after path casing changes.

ConvertTo-Json -Depth
- All WT settings writers and test roundtrips use -Depth 100 (was -Depth 10)
  so deeply nested action/command objects are not truncated to type names.

Tests
- Moved test harnesses to tests/ directory; root ci-functional.ps1 removed.
- New probes for Update-Profile, Update-PowerShell, Update-Tools,
  Invoke-ProfileWizard, Reconfigure-Profile, cdb, cdh, duration,
  Test-ProfileHealth, psp-doctor.
- Signature-contract checks catch parameter renames.
- -WhatIf leak detection verifies ShouldProcess gates prevent temp-file
  creation.
- tests/lint.ps1 pins PSScriptAnalyzer to 1.24.0 to match CI.
- tests/locallab.ps1 path references updated post-reorg.

Docs
- README, CONTRIBUTING, SECURITY synced with new surface area.
Enforce CRLF for .ps1 / .psm1 / .psd1 so Windows tooling sees the line
endings it expects, LF for .json / .md / .yml / config, and binary mode
for common asset types. Excludes tests/ from Linguist stats.
@26zl 26zl merged commit e61183c into main Jun 18, 2026
4 of 5 checks passed
@26zl 26zl deleted the Wizard branch June 18, 2026 17:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant