winTerm 1.2.0
winTerm 1.2.0 promotes Visual Progress to a stable feature. The per-pane
Rainbow Arc Weld overlay presents real progress and shell lifecycle state while
remaining decorative, bounded, fail-open, and independent of terminal output.
Highlights
- Presents determinate, indeterminate, running, waiting, success, error, and
cancelled state without consuming a terminal row or changing the viewport. - Uses standard OSC 9;4 progress when available, then a high-confidence
built-in CLI provider, then generic OSC 133 shell lifecycle state. Lower
priority sources cannot overwrite a valid higher-priority owner. - Adds local, bounded CLI recognition for Docker Pull, Docker BuildKit, pip,
Git, curl, wget, npm, pnpm, yarn, nvm, Maven, Gradle, and a conservative
generic fallback. Unsupported or uncertain records remain ordinary output. - Preserves real values, including phase regressions. Indeterminate providers
never receive a fabricated percentage, speed, ETA, or overall build value.
Settings and defaults
Visual Progress has a searchable section under
Settings → Appearance → Visual progress. The stable defaults are:
{
"visualProgress.enabled": true,
"visualProgress.recognizeCliProgress": true,
"visualProgress.performanceMode": "automatic",
"visualProgress.replaceRecognizedOutput": false
}- Show visual progress and Recognize command-line progress default on.
- Performance mode defaults to Automatic. Full permits all eligible
effects, Balanced disables sparks at minimum, and Minimal uses a static
gradient or cheaper safe presentation. - Replace recognized progress output defaults off. If explicitly enabled,
only a high-confidence, self-contained transient frame from pip, Git, curl,
or wget may be replaced. Newline logs, warnings, errors, prompts, summaries,
alternate-screen output, malformed data, and every uncertain record are
preserved. Docker, BuildKit, package managers, build tools, and generic
recognition remain overlay-only. - Turning off the master setting disables its dependent controls without
changing their stored values. Turning off CLI recognition disables
replacement without erasing its saved preference. Changes apply to open
panes without restarting winTerm.
Set WINTERM_DISABLE_VISUAL_PROGRESS=1 before launching winTerm for the
authoritative emergency off switch. It prevents recognition, rendering,
animation, and output replacement regardless of saved settings, and all
terminal output passes through unchanged.
Performance and lifecycle
Visual Progress uses compositor-managed motion, cached brushes, fixed spark
pools, a one-element UI mailbox, and no CPU frame loop. Normalized UI work is
coalesced, output never waits for the decorative overlay, and the renderer
releases work on hide, minimize, close, disable, cancellation, dispatcher
shutdown, or device loss.
One window-scoped coordinator samples low-priority UI-dispatch latency about
once per second only while visible active progress is running or waiting.
Automatic mode caps effects by active progress count and uses consecutive
latency samples plus cooldown hysteresis to degrade and recover gradually.
Remote sessions, software rendering, constrained energy state, window focus,
visibility, and runtime effect support impose additional safe caps.
Reduced Motion removes continuous decorative motion, interpolation, breathing,
sweeps, and sparks. High Contrast uses a solid system-compatible track and fill
instead of relying on rainbow hue or glow. Composition or GPU failure degrades
or disables only the overlay; PTY, input, output, selection, copy/paste, and
pane management continue normally.
Accessibility
The overlay exposes accessible ProgressBar semantics with the localized name
Command progress. A determinate provider exposes only its real 0–100 value;
indeterminate progress remains nonnumeric. Localized status text distinguishes
running, waiting, success, error, cancelled, and hidden states.
Announcements are limited to the active visible pane and cover one start,
approximate 25/50/75/100-percent milestones, one waiting transition, and one
terminal result, with nonterminal throttling and duplicate/background
suppression. Automation names and announcements never contain command text,
provider names, package or image names, paths, URLs, usernames, or hostnames.
Privacy and safety
Recognition runs locally, incrementally, and in memory over bounded newly
arriving output. It does not scan scrollback, upload or persist terminal
content, add Visual Progress telemetry, or retain command/provider/path data.
Diagnostics remain opt-in under the existing privacy policy and may include
only bounded structural categories rather than terminal content.
Compatibility
Workspace schema 2, docking model 1, shell protocol 1, theme schema 1, and
update-manifest schema 1 remain unchanged. Existing settings and workspaces
continue to load. Package identity, the winterm.exe alias, application-data
isolation, privacy boundaries, Microsoft Terminal coexistence, pinned upstream
revision, and dependencies are unchanged.
Distribution
Primary Windows 11 x64 application assets:
winTerm-1.2.0-setup-x64.exewinTerm-1.2.0-portable-x64.zipSHA256SUMS.txtTHIRD_PARTY_NOTICES.mdSBOM.spdx.jsonSBOM.cyclonedx.jsonrelease-metadata.jsonwinTerm-1.2.0-release-notes.md
The Setup EXE supports current-user and all-users installation; the Portable
ZIP can be extracted to a writable directory and run without installation.
Publisher: helloThisWorld. Tag: v1.2.0.
Validation
Publication remains gated on source and compiled Visual Progress coverage, x64
Debug and Release builds, relevant upstream tests, bounded manual and soak
checks, unpackaged/Setup/Portable creation, installation lifecycle checks, the
exact eight-file release allowlist, and public re-download verification by the
formal tag-triggered Release workflow. Results are recorded from those actual
runs; preparing these notes does not bypass any gate.
Signing
The winTerm 1.2.0 Setup EXE is not Authenticode-signed. Windows may display
Unknown Publisher or a SmartScreen warning. Download only from the official
GitHub Release and verify the file against SHA256SUMS.txt before running it.