Skip to content

release: prepare winTerm 1.3.0-beta3 prerelease - #42

Merged
HelloThisWorld merged 3 commits into
mainfrom
release/v1.3.0-beta3
Aug 5, 2026
Merged

release: prepare winTerm 1.3.0-beta3 prerelease#42
HelloThisWorld merged 3 commits into
mainfrom
release/v1.3.0-beta3

Conversation

@HelloThisWorld

@HelloThisWorld HelloThisWorld commented Aug 5, 2026

Copy link
Copy Markdown
Owner

Summary

Prepares the winTerm 1.3.0-beta3 prerelease: third beta of the Command Timeline release, carrying the beta2 field-report fix that long-running commands (k9s, vim, top, FastAPI/uvicorn, Spring Boot, Node dev servers, tail -f, kubectl port-forward) animate the Visual Progress rainbow bar forever. Tag v1.3.0-beta3 points at this branch's head (feb2687e5) and its release workflow run is already in flight.

Related issues

Related: #41 — this branch carries that fix commit (baf6f8a87) verbatim beneath the release-prep commit. Merging this PR with a merge commit lands baf6f8a87 on main and GitHub marks #41 merged automatically; if this PR is squash-merged instead (repo convention for release preps), close #41 manually afterwards — its content will already be on main.

Detailed changes

  • fix: bound the shell-integration launch fallback to one traversal per command (baf6f8a87, reviewed in fix: bound the shell-integration launch fallback to one traversal per command #41): the OSC 133 launch fallback becomes a bounded one-shot launch indication scoped by a shell command generation — one comet traversal driven by a one-shot compositor batch (no timer, no polling loop), silent Hidden/Running expiry, generation-guarded against stale callbacks, no resurrection after provider/OSC 9;4 ownership clears, and no command-name or process-name heuristics. Providers, explicit progress, short commands, and result presentations unchanged.
  • release: prepare winTerm 1.3.0-beta3 prerelease (feb2687e5): version bump across all 19 release surfaces — application 1.3.0-beta3, package/file 1.3.0.6, module 1.3.0 + prerelease suffix beta3, tag v1.3.0-beta3; new docs/releases/1.3.0-beta3.md; CHANGELOG.md beta3 section; docs/current-progress.md beta3 state plus a "Beta2 findings" section; pinned literals updated in verify-version.ps1, verify-branding.ps1, test-visual-progress.ps1, test.ps1, package-shell-assets.ps1, the three .rc files, appxmanifest, ReleaseMetadata.h, WorkspaceDescriptor.h, WorkspaceSerializer.cpp, and both version.json files.

Validation performed

  • MSBuild SettingsModel.UnitTests.vcxproj (Release x64) then TE.exe SettingsModel.Unit.Tests.dll /name:*WinTermVisualProgressTests*48/48 passed, including the 4 new one-shot/generation tests.
  • MSBuild TerminalApp.UnitTests.vcxproj (Release x64, compile-verifies Pane.cpp + RainbowArcRenderer.h) then full TE.exe Terminal.App.Unit.Tests.dll51/51 passed.
  • .\scripts\winterm\verify-version.ps1 — passed (after the bump; validates every version surface).
  • .\scripts\winterm\verify-branding.ps1 -ExpectedPublisher 'CN=helloThisWorld' — passed.
  • .\scripts\winterm\test-visual-progress.ps1 -SourceOnly — passed, including the new one-shot policy/clock/wiring assertions.
  • .\scripts\winterm\test.ps1 -Suite Smoke -Configuration Release -Platform x64 — passed (the tag workflow's validate gate).
  • .\scripts\winterm\invoke-visual-progress-smoke.ps1 -DelayMilliseconds 0 — runs end to end with the new long-running and alternate-screen fixtures.
  • git grep for 1.3.0-beta2 / 1.3.0.5 / beta2 outside changelog history — zero residue.
  • Not available: UnitTests_Control was not rebuilt (no TerminalControl source changed); live compositor timing (the actual 1.8 s batch completion) is not exercisable headlessly and is covered by the release-build field test — release run 31008690232 builds, installer-tests, attests, and publishes the prerelease.

Checklist

  • The change is focused and does not include unrelated formatting.
  • Tests were added or updated where appropriate.
  • All tests claimed above actually ran and passed.
  • User-facing behavior and limitations are documented in this repository.
  • This source/docs commit updates the root CHANGELOG.md.
  • The Wiki Development-Changes.md ledger has been pushed with the final source SHA, link, summary, and checkpoint/release.
  • Documentation screenshots reuse a suitable existing sanitized winterm-site asset, or no screenshot was added.
  • Version or schema changes include compatibility and migration notes.
  • Package identity, winterm.exe, and Microsoft Terminal coexistence remain isolated.
  • No command text, terminal output, clipboard content, credentials, or private paths are logged.
  • New source and script files contain the appropriate MIT license header.
  • I did not include generated build output, secrets, certificates, or local absolute paths.

… command

OSC 133 CommandExecuted published a ShellIntegration/Indeterminate/Running
fallback that stayed active until CommandFinished, so any long-running
command (k9s, vim, top, FastAPI/uvicorn, Spring Boot, Node dev servers,
tail -f, kubectl port-forward) looped the rainbow comet animation for its
whole lifetime.

The fallback is now a bounded one-shot launch indication scoped by a shell
command generation, never by command or process names. CommandExecuted
opens a new launch generation and publishes the launch snapshot carrying
it; a repeated observation of the same still-running command (alternate
screen churn, pane rehydration, reconnect re-broadcast) is idempotent. The
renderer bounds the launch with a launch clock: one one-shot compositor
animation on a private property set using the existing 1,800 ms
IndeterminateCycleDuration (no timer, no polling loop, no CPU frame loop)
whose generation-guarded completion asks the state machine to expire the
fallback. Expiration clears the stored shell snapshot even while a
provider or explicit OSC 9;4 source owns the bar, so a later ownership
release cannot resurrect it, and publishes Hidden with Running status so
accessibility announces neither a fake success nor a fake cancellation.
The launch comet itself plays a single traversal and parks off-track;
explicit and provider indeterminate presentations keep the continuous
traversal. CommandFinished supersedes the launch immediately and strands
in-flight completions, preserving every terminal presentation.

Four new TAEF tests cover the one-shot, stale-generation, ownership
resurrection, and reset/disable/close invalidation semantics; the source
suite locks in the policy, the clock sharing the traversal constant, and
the Pane wiring; the smoke fixture gains a long-running one-shot launch
and an alternate-screen sequence plus manual guidance for FastAPI, Spring
Boot, and k9s. Phase 2 documentation now describes the fallback as a
bounded launch indication, and the changelog records the fix under
Unreleased.
Third beta of the Command Timeline release, carrying the beta2 field-report
fix: the Visual Progress Shell Integration fallback is now a bounded
one-shot launch indication, so long-running commands (k9s, vim, top,
FastAPI/uvicorn, Spring Boot, Node dev servers, tail -f, kubectl
port-forward) no longer animate the rainbow bar forever.

Application version 1.3.0-beta3, package/file version 1.3.0.6, PowerShell
module 1.3.0 with prerelease suffix beta3, channel beta, tag v1.3.0-beta3.
Published as a GitHub prerelease: Latest and WinGet keep pointing at
v1.2.0, and the beta is listed on the winTerm website next to the stable
download.
@HelloThisWorld
HelloThisWorld marked this pull request as ready for review August 5, 2026 13:10
@HelloThisWorld HelloThisWorld changed the title Release/v1.3.0 beta3 release: prepare winTerm 1.3.0-beta3 prerelease Aug 5, 2026
@HelloThisWorld
HelloThisWorld merged commit 9dc2c54 into main Aug 5, 2026
5 checks passed
@HelloThisWorld
HelloThisWorld deleted the release/v1.3.0-beta3 branch August 5, 2026 13:24
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