-
Notifications
You must be signed in to change notification settings - Fork 0
Development Changes
HelloThisWorld edited this page Aug 13, 2026
·
25 revisions
This ledger maps winTerm source changes to their durable GitHub records and the Wiki pages synchronized with them. Source commits remain authoritative; the Wiki explains their user-visible and engineering effect.
-
Source:
63c52f538(pull request #48) -
Version intent: published GitHub prerelease
1.4.0-betaon the beta channel — package version1.4.0.1, module1.4.0with suffixbeta, tagv1.4.0-beta. Manual validation of v1.4.0-alpha passed (live search under sustained Kafka/Spring Boot log output, navigation, counter, scrollbar overview), so the alpha content is promoted unchanged with beta metadata. The same guarded pipeline published it; the new stable v1.3.0 holds Latest, and this beta replaces v1.4.0-alpha as the newest prerelease. The stable pointers onmain(READMEs, CHANGELOG assertion, verify-version) moved from 1.2.0 to 1.3.0 in the same pull request. -
Summary: Pane Search for wider testing —
Ctrl+Factive-pane live search across the entire scrollback with all-match highlighting, wrap-around navigation, case/regex modes, the winTerm compact search box with thecurrent / totalcounter, the scrollbar match overview, and the Phase 3 hardening for sustained output, huge match counts, resize/reflow, alternate screens, and Unicode. Beta feedback decides the stable 1.4.0 promotion. - Wiki pages synchronized: Changelog.
-
Source:
79f4c8033on therelease/v1.3.0maintenance branch (from thev1.3.0-beta3tree atfeb2687e5; merged intomainhistory through pull request #49) -
Version intent: stable release
1.3.0— package version1.3.0.7, no prerelease suffix, channelstable,ReleaseChannel Stable. Content is identical to the field-tested v1.3.0-beta3; only the version metadata changed. The full guarded release pipeline built, round-trip-tested, attested, and published the assets, and GitHub Latest moved from v1.2.0 to v1.3.0. - Summary: the Command Timeline generation reaches stable — per-pane OSC 133 command history with load-without-executing, filtering, copy command/output, jump to output, and trustworthy status; automatic PowerShell shell integration; and the Visual Progress hardening from six prerelease field rounds, including the bounded one-shot launch fallback.
- Wiki pages synchronized: Changelog.
-
Source:
45cf23975(pull request #47) -
Branch:
release/v1.4.0-alpha, based onmainate436fdf00(Pane Search Phase 3 checkpoint, pull request #46) -
Version intent: published GitHub prerelease
1.4.0-alphaon the alpha channel — package version1.4.0.0, module1.4.0with prerelease suffixalpha, executable metadata1.4, tagv1.4.0-alpha. Unlike the engineering checkpoints, the tag runs the full guarded release pipeline (x64 Release build with compiled tests, artifact generation, draft asset re-download and installer/portable round-trip testing, attestation, then publication with--prerelease --latest=false). GitHub Latest keeps pointing at v1.2.0; WinGet is untouched; v1.4.0-alpha replaces v1.3.0-beta3 as the newest published prerelease. -
Summary: the integration candidate bundling the three Pane Search
engineering checkpoints — Phase 1 active-pane
Ctrl+Fsearch (v1.3.1), Phase 2 winTerm search box and scrollbar overview (v1.3.2), and Phase 3 performance/edge-case hardening (v1.3.3) — on top of everything in v1.3.0-beta3, published for hands-on manual validation. APASSverdict promotes the build to1.4.0-beta; aFAILproduces a fixed1.4.1-alpha. Only the user authorizes the promotion. -
Wiki pages synchronized: Changelog mirrors the canonical
CHANGELOG.mdentry for 1.4.0-alpha.
-
Source:
cc8f82774(pull request #46) -
Branch:
feature/v1.3.3-pane-search-phase3, based onmainat97ecb7e85(Pane Search Phase 2 checkpoint, pull request #45) -
Version intent: engineering checkpoint
1.3.3, same mechanism as v1.3.1/v1.3.2: stable channel, no prerelease suffix, package version1.3.3.0, andv1.3.3appended to the release workflow's checkpoint-tag lists so a pushed checkpoint tag runs quick validation only. Not a published release; Latest and WinGet keep pointing at v1.2.0, and v1.3.0-beta3 remains the newest published prerelease. -
Summary: no new search feature and no visual change — Phase 3 makes
the Phase 1/2 pane search reliable under real workloads. Live typing is
coalesced per pane (50 ms, leading immediate + trailing latest; the
callback re-reads the search box at fire time, so the latest query
always wins, navigation never acts on a stale query, and a fire after
Esc finds the box closed). An open search now converges during
sustained output: the debounced 100 ms OutputIdle refresh — which
continuous output starves indefinitely — is complemented by a
non-debounced 500 ms cap armed only while a search is active, so
tail -f-style streams keep the counter, highlights, and scrollbar overview current, while a closed search costs the output path one relaxed atomic load and schedules nothing. The scrollbar mark bitmap repaints only when its content inputs change (geometry, categories, search-state generation, pip color, buffer mutation id while generic marks render), so plain scrolling with huge result sets stops re-enumerating occurrences and mark rows for identical pixels. - Edge-case fixes: pane resize with an active search no longer converts pre-reflow spans into a stray selection (the GH#19358 select-on-close behavior now belongs to the close path only); main/alternate screen-buffer switches drop the other buffer's highlight spans immediately while search keeps following the active buffer; and clearing search releases the terminal-side highlight copy instead of retaining its capacity. Regex stays on the existing ICU engine, whose compiled-in time/stack limits bound pathological patterns; invalid patterns keep reporting the existing invalid status with no stale results.
- Architecture: still no second search engine, no index, no buffer mirror, no polling, no timers outside the two bounded throttles, and pane-local scheduling only — one pane's typing can never cancel another pane's search.
-
Tests: deterministic coverage for mutation invalidation and
post-output count refresh, focused-match anchoring while output appends
matches, scrollback-eviction safety, reflow invalidation with the
no-stray-selection guarantee, alternate-screen transitions, search
generation/arming semantics, scrollbar repaint-signature contracts, and
wide-character span widths (Traditional/Simplified Chinese, Japanese,
Korean, accented Latin, emoji); plus a log-only scan-cost benchmark
scaled locally through
WINTERM_SEARCH_BENCH_LINES. No wall-clock assertions in CI. -
Wiki pages synchronized: Changelog mirrors the
canonical
CHANGELOG.mdentry for 1.3.3.
-
Source:
740ff18f7(pull request #45) -
Branch:
feature/v1.3.2-pane-search-phase2, based onmainat8015963ad(Pane Search Phase 1 checkpoint, pull request #44) -
Version intent: engineering checkpoint
1.3.2, same mechanism as v1.3.1: stable channel, no prerelease suffix, package version1.3.2.0, andv1.3.2appended to the release workflow's checkpoint-tag lists so a pushed checkpoint tag runs quick validation only. Not a published release; Latest and WinGet keep pointing at v1.2.0, and v1.3.0-beta3 remains the newest published prerelease. -
Summary: the Phase 1 functional search becomes the winTerm search
experience.
SearchBoxControlis restyled in place to the winTerm compact overlay language — search glyph, input,current / totalcounter, case/regex toggles, previous/next, close, at 27px chrome density with theme-awareSystemControl*brushes and the 8px overlay radius — and adapts to narrow panes through width-driven Normal/Compact/Minimal layout states that always keep the input and the close button usable. The scrollbar shows a search overview while search is open: one right-aligned pip per matching buffer row across the full scrollback (same-row occurrences deduplicated; the counter stays occurrence-based), with the current match's row drawn at double width into the bitmap's empty center stripe. -
ShowMarks decoupling: the mark surface now renders when generic
marks are enabled or a search is open; generic shell/prompt marks keep
obeying
ShowMarks(default off) while search pips render whenever the search box is open. Closing search removes only the search pips and collapses a search-only canvas; a deliberately hidden scrollbar is respected through a zero-dimension guard — search stays fully functional without the overview. Refreshes ride the existing throttled scrollbar update path, now also on plain navigation so the emphasized pip tracks the search core; no timers, no polling, and a closed search performs no marker work. -
Architecture: no second search engine, canvas, renderer, or marker
database.
ControlCore::SearchCurrentMatchRow()projects the searcher's focused index onto its buffer row; the new pureSearchUxHelpers.hcarries the layout thresholds, the mark-surface eligibility rule, and the distinct-row enumeration shared by the drawing code and the tests. In-terminal focused-match rendering was already native (AtlasEnginehighlightFocuscolors) and is retained untouched. -
Tests: four new
ControlCoreTests— invalid-regex error state with no stale results, current-match row tracking through navigation and wrap-around, same-row occurrence deduplication (3 occurrences → 1 overview row), and the helper contracts including the ShowMarks × search eligibility matrix. FullControl.Unit.Tests.dllpasses 81/81 and the Phase 1KeyBindingsTestsregression passes 20/20 locally (x64 Release).verify-version,verify-branding,test-release-workflow, and the Smoke suite all pass. - Deferred: Phase 3 performance work (debounce, large-scrollback optimization, caching, worker threads); clickable or hoverable markers and result previews remain out of scope.
-
Documentation:
CHANGELOG.md,docs/user/keyboard-shortcuts.md, anddocs/current-progress.md.
-
Source:
0852526f6(pull request #44) -
Branch:
feature/v1.3.1-pane-search-phase1, based onmainat4753fba68(Japanese README, pull request #43) -
Version intent: engineering checkpoint
1.3.1, following the v1.2.1–v1.2.4 convention: stable channel, no prerelease suffix, package version1.3.1.0, and thev1.3.1tag added to the release workflow's checkpoint-tag list so a pushed checkpoint tag runs quick validation only and can never publish artifacts. Not a published release; Latest and WinGet keep pointing at v1.2.0, and v1.3.0-beta3 remains the newest published prerelease. -
Summary:
Ctrl+Fnow opens Find in the active pane.defaults.jsongains{ "keys": "ctrl+f", "id": "Terminal.FindText" }, andCtrl+Shift+Fstays bound as a compatibility alias; both chords remain ordinary remappable keybindings, soctrl+fcan be unbound to restore a raw^Ffor terminal applications. The root cause of "Ctrl+F does nothing" was simply that no default binding existed — the chord fell through the ActionMap and reached the shell as^F. -
Architecture: the mature upstream search pipeline is reused end to
end — the pane-local
SearchBoxControloverlay,ControlCore::Search,Search/TextBuffer::SearchText, and renderer search highlights — giving live search over the pane's scrollback with every match highlighted at once, Enter/Shift+Enter navigation with wrap-around, Esc cleanup throughClearSearch(), search-box input isolation from the shell, and per-TermControlstate so split panes never share search state. Active-pane routing flows through the existing pane model:_HandleFind→ focusedTab→GetActiveTerminalControl()→CreateSearchBoxControl(). No second search engine, index, or buffer copy was introduced, and a closed search performs no recurring background work. -
Tests:
KeyBindingsTests::FindDefaultShortcutsAndUserOverrideverifies both default chords resolve toShortcutAction::Findand that a user unbind ofctrl+fkeeps the alias bound. Three newControlCoreTestscover all-match highlight spans with case-insensitive/case-sensitive/no-match/empty-needle behavior, navigation wrap-around plusClearSearch()cleanup, and search-state isolation across two independent cores. -
Validation:
verify-version.ps1,verify-branding.ps1, andtest.ps1 -Suite Smoke -Configuration Release -Platform x64all pass locally; the pull request carries nobuildlabel, so CI runs quick validation only. Compiled TAEF results are recorded in the pull request conversation. - Deferred: scrollbar overview markers and the winTerm-specific search UI redesign (Phase 2), performance hardening and large-scrollback optimization (Phase 3), per the roadmap.
-
Follow-up:
9f4a9183cfixed the two new tests after the first local TAEF run: the layered ActionMap scenario now mirrors the modern defaults.json shape (in-box legacycommand+keysentries do not resolve throughGetActionByKeyChord), and the all-match span assertion expects the exclusive end column reported byTextBuffer::SearchText.525497ebathen realignedDeserializationTests::FragmentActionNoKeys, which had proved "a fragment cannot bind keys" by asserting Ctrl+F resolved to nothing — valid only while the chord was unbound in the defaults; it now asserts the chord still resolves to the in-box Find action rather than the fragment's. Final local results (x64 Release): KeyBindingsTests 20/20, ControlCoreTests 20/20, full Control DLL 77/77, full SettingsModel DLL 244/244. -
Documentation:
CHANGELOG.md,docs/user/keyboard-shortcuts.md, anddocs/current-progress.md.
-
Source:
0ccac1d0c(pull request #43) -
Branch:
docs/japanese-readme, based onmainat9dc2c54c2(1.3.0-beta3 release metadata, pull request #42) -
Version intent: none. Documentation only; no application code,
resource, or version file changed, and no release was produced. The
repository changelog records this under
Unreleasedrather than fabricating a version. -
Summary: Added
README.ja.mdas a maintained Japanese counterpart to the English README, plus a language selector at the top of both files (README.mdlinks toREADME.ja.md, and back). The translation mirrors the English original section for section — download channels, distribution formats, core features, portable mode, build and test commands, privacy and security, code signing policy, license and upstream, and support — and links to the Japanese website at https://winterm.dev/ja/. -
Fidelity: Commands, filenames, executable names, JSON setting names,
version strings, keyboard shortcuts, paths, release URLs, and relative
documentation links are preserved verbatim; the single PowerShell code
block is byte-identical to the English one. Facts derive from the current
README: source version
1.3.0-beta3, latest stable1.2.0, thev1.3.0-beta3prerelease,SHA256SUMS.txt, and the pinned upstream baselinerelease-1.25@1cea42d433253d95c4487a3037db48197b5e72f4. -
Disclosures: Nothing was softened for promotion. The unsigned
installer and SmartScreen warning, the checksum verification step, the
"not Authenticode-signed" status, the exact SignPath attribution sentence,
the signing roles and manual-approval requirement, the Microsoft
non-affiliation disclaimer, and the full privacy no-collection list are all
carried over. Links to English-only documentation are labelled (英語), and
the README states that winTerm-specific new features still display some
English text, matching the actual
ja-JPresource coverage (1303 of 1421 keys, with all 25 Command Timeline keys untranslated). -
Validation:
scripts/winterm/verify-version.ps1gained eleven checks covering the two language links, the website link, both version references, the checksum filename, the signing disclosures, the SignPath attribution, the non-affiliation disclaimer, and the upstream baseline; the script passes.scripts/winterm/test-ci-classification.ps1passes. All 21 relative links inREADME.ja.mdresolve, and the file is UTF-8 with LF endings and no BOM. -
Build cost:
README.ja.mdwas added to the documentation allowlist inscripts/winterm/ci/ChangeClassification.psm1. The pull request carries nobuildlabel and classifies asvalidation-only(RunReleaseDelivery: False), so the native build workflow does not run. -
Related website change: the Japanese pages this README links to are
added in
winterm-sitepull request #10. -
Documentation:
README.ja.md,README.md, and repository changelog. -
Follow-up:
776edb633restoredscripts/winterm/verify-version.ps1to ASCII-only literals. The Japanese phrases embedded there made it the only non-ASCII PowerShell file in the repository, andTest-PowerShellSyntaxparses scripts withParser::ParseFile, which decodes a BOM-less file using the host's active code page. That corrupted the literals on the CI runner and failed quick validation, while the file parsed cleanly on a UTF-8 host. The checks now assert the same facts through the ASCII tokens the Japanese prose contains, plus three guards that keep an English or mis-encoded copy from passing: no UTF-8 BOM, strict UTF-8 decoding, and more than 500 kana and kanji characters (currently 2713). -
CI:
Classify exact change set,Quick source and smoke validation, andci-gateall pass; both native build jobs reportskipping. -
Pending: this entry records the branch head
776edb633. It must be updated to the final merge or squash SHA once pull request #43 lands.
-
Source:
feb2687e5(pull request #42) -
Branch:
release/v1.3.0-beta3, carrying the one-shot launch fallback fixbaf6f8a87(pull request #41), based onmainat39193206c(1.3.0-beta2 release metadata, pull request #40) -
Version intent:
1.3.0-beta3/ tagv1.3.0-beta3, channelbeta, package/file version1.3.0.6. -
Summary: Third beta of the Command Timeline release, fixing the beta2
field report 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. The OSC 133 launch fallback is now a bounded one-shot launch indication scoped by a shell command generation; everything else is identical to beta2. -
Publication boundary:
--prerelease --latest=false, so/releases/latestkeeps resolving to v1.2.0 and WinGet skips the release. The beta is listed onwinterm-sitenext to the stable v1.2.0 download. The Setup EXE is unsigned and says so. Published 2026-08-05 14:01 UTC after all draft gates passed (release). - Documentation: release notes, repository changelog, and current progress.
-
Source:
baf6f8a87(pull request #41) -
Branch:
fix/visual-progress-shell-fallback-one-shot, based onmainat39193206c(1.3.0-beta2 release metadata, pull request #40) - Version intent: fix ahead of the next prerelease; version metadata unchanged.
-
Summary: Long-running commands no longer loop the Visual Progress
rainbow animation forever. The OSC 133
CommandExecutedfallback used to stay Indeterminate/Running untilCommandFinished, so k9s, vim, top, FastAPI/uvicorn, Spring Boot, Node dev servers,tail -f, andkubectl port-forwardanimated for their whole lifetime. The fallback is now a bounded one-shot launch indication scoped by a shell command generation (no command-name or process-name heuristics): the comet makes one 1,800 ms traversal, driven by a one-shot compositor batch rather than a timer or polling loop, and the overlay then hides with a silent Hidden/Running snapshot. Stale completions cannot affect a newer command, alternate-screen churn and pane rehydration cannot replay a consumed launch, and an expired fallback cannot resurrect after a CLI provider or explicit OSC 9;4 owner clears. Explicit progress, recognized providers, short-lived commands, and the success/error/cancelled presentations keep their existing behavior. Four new TAEF tests cover the generation and expiration semantics (48/48 passing), and the smoke fixture gains long-running and alternate-screen cases. - Documentation: repository changelog and the Phase 2 development document ("Bounded shell launch fallback").
-
Source:
39193206c(pull request #40) onmain, carrying the prompt exit code fixa6ec9a415(pull request #39) -
Version:
1.3.0-beta2/ tagv1.3.0-beta2, channelbeta, package/file version1.3.0.5. -
Summary: Second beta of the Command Timeline release. Producing the
website screenshots against the published beta1 build surfaced that every
Timeline entry reported
✓ Succeeded: the prompt wrapper executedGet-Modulebefore reading$?, soGet-WinTermExitCodealways received a success. The wrapper now captures$?as its first statement and passes it intoInvoke-WinTermPrompt -LastSuccess; the shell integration suite gained an installed-wrapper regression test covering the first-prompt, success, cmdlet-failure, native-failure, and recovery sequences (verified red on the unfixed module). -
Publication boundary:
--prerelease --latest=false, so/releases/latestkeeps resolving to v1.2.0 and WinGet skips the release. The beta is listed onwinterm-sitenext to the stable v1.2.0 download. The Setup EXE is unsigned and says so. - Documentation: release notes, repository changelog, and current progress.
-
Source:
2a721715d8c375445221012c3acc384dc2212052 -
Branch:
release/v1.3.0-beta1, based onmainatc089caeb(1.3.0-alpha4 release metadata, pull request #37) -
Version intent:
1.3.0-beta1/ tagv1.3.0-beta1, channelbeta, package/file version1.3.0.4. - Summary: First beta of the Command Timeline. Feature content is identical to 1.3.0-alpha4, which passed local field testing across four alpha rounds. The channel advances alpha → beta (About metadata channel Beta), the README gains the Command Timeline and auto shell integration in its feature list plus a stable/beta download split, and verify-version now checks the README source version against release metadata while separately pinning the stable wording to 1.2.0.
-
Publication boundary:
--prerelease --latest=false, so/releases/latestkeeps resolving to v1.2.0 and WinGet skips the release. Unlike the alphas, the beta will be listed onwinterm-sitenext to the stable v1.2.0 download. The Setup EXE is unsigned and says so. - Documentation: release notes, repository changelog, and current progress.
-
Source:
a98c3e9e2a3aef0bddce6ba4cdc600291b6f82f5 -
Branch:
release/v1.3.0-alpha4, based onmainat49ee5eb3(alpha3 field-report fixes, pull request #36) -
Version intent:
1.3.0-alpha4/ tagv1.3.0-alpha4, channelalpha, package/file version1.3.0.3. -
Summary: Promotes the three alpha3 field-report fixes to a fourth
installable alpha. Metadata only: application version
1.3.0-alpha4, module prerelease suffixalpha4, package version1.3.0.3, and the version literals pinned by the verification scripts. -
Publication boundary: The release workflow marks any non-stable channel
--prerelease --latest=false, so/releases/latestkeeps resolving to v1.2.0. The alpha is deliberately not listed onwinterm-siteand is not submitted to WinGet. The Setup EXE is unsigned and says so in its release notes. - Documentation: release notes, repository changelog, and current progress.
-
Source:
2ecd3bc7d19a7e818dfccb4ee70ecb687de07c87 -
Branch:
fix/alpha3-feedback, based onmainatca371f78(1.3.0-alpha3 release metadata, pull request #35) - Version intent: fixes ahead of the next prerelease; version metadata unchanged.
-
Summary: Fixes the three issues reported from local v1.3.0-alpha3
testing. The antivirus alert on every new PowerShell tab traced to
Compatibility.ps1: bisection showed the rawFile::Openwrite intouchcombined with the native-dispatch blocks read as a write-then-execute shape; file creation now goes throughNew-Itemand the full module imports clean on the engine that previously flagged it. Every completed command displayed? Unknownbecause the Enter keypress heuristic that supplies the command-executed transition never notified the lifecycle, so the capability chain never read Full; the Enter path now reports CommandExecuted for shell-established marks with non-empty input, restoring ✓/✕ results and the Running state, covered by a new end-to-end keypress test. Timeline rows now carry a full-command tooltip, and the Unknown status explains itself on hover. -
Validation: module bisect and clean import verified in both shells,
touchbehavior verified (create, timestamp update, no truncation), and the command-timeline, visual-progress, privacy, version, release-workflow, CI-classification, and Smoke gates all pass. Compiled Control tests, including the newEnterKeypressSuppliesExecutedTransition, run in the pull request validation cycle. - Documentation: repository changelog.
-
Source:
9f8198cf247190903e6a3fdce08d058c8b4b025f -
Branch:
release/v1.3.0-alpha3, based onmainate0fd786c(alpha2 field-report fixes, pull request #34) -
Version intent:
1.3.0-alpha3/ tagv1.3.0-alpha3, channelalpha, package/file version1.3.0.2. -
Summary: Promotes the five alpha2 field-report fixes to a third
installable alpha. Metadata only: application version
1.3.0-alpha3, module prerelease suffixalpha3, package version1.3.0.2, and the version literals pinned by the verification scripts. -
Publication boundary: The release workflow marks any non-stable channel
--prerelease --latest=false, so/releases/latestkeeps resolving to v1.2.0. The alpha is deliberately not listed onwinterm-siteand is not submitted to WinGet. The Setup EXE is unsigned and says so in its release notes. - Documentation: release notes, repository changelog, and current progress.
-
Source:
09bd1b5f19f05a9e5ae8bf41453e25feba62dd98 -
Branch:
fix/alpha2-feedback, based onmainate225933e(1.3.0-alpha2 release metadata, pull request #33) -
Version intent: fixes ahead of
1.3.0-alpha3; version metadata unchanged. -
Summary: Fixes the five issues reported from local v1.3.0-alpha2 testing.
The shell integration module wrote its string terminator as a PowerShell
single-quoted
'\'— two literal characters — leaving one stray backslash on screen per emitted sequence, and wrote its marks as console side effects, which the host prints before a prompt function's returned text, so the command-start mark landed before the visible prompt: the Timeline recorded the whole prompt line and Load inserted the prompt path. The wrapper now returns one string with the marks embedded in FinalTerm order and a single-character terminator. The progress state machine no longer shows a bar for133;B(composing input), so an idle integrated prompt stays quiet; the lifecycle model no longer creates a Timeline entry at133;B, removing the phantomCommand text unavailable / Runningrow; and selection-only Timeline updates reuse the existing rows, removing the arrow-key/hover jitter. A module component blocked by antivirus at parse time is now skipped silently and recorded in diagnostics. -
Validation: SettingsModel winTerm TAEF classes 44/44, Control
CommandTimelineTests43/43 on fresh builds, both test projects x64 Release exit 0, live-session prompt bytes verified in FinalTerm order, and all eight repository gates pass. - Documentation: PowerShell integration and repository changelog.
-
Source:
1202129f6d89627b5ac1bd8baa801dcfe3e81232 -
Branch:
release/v1.3.0-alpha2, based onmainat18310e9f(alpha1 field-report fixes, pull request #32) -
Version intent:
1.3.0-alpha2/ tagv1.3.0-alpha2, channelalpha, package/file version1.3.0.1. -
Summary: Promotes the four alpha1 field-report fixes to a second
installable alpha. This commit only moves release metadata: application
version
1.3.0-alpha2, module prerelease suffixalpha2, package version advanced to1.3.0.1so alpha binaries stay distinguishable, and the version literals pinned by the verification scripts. -
Publication boundary: The release workflow marks any non-stable channel
--prerelease --latest=false, so/releases/latestkeeps resolving to v1.2.0. The alpha is deliberately not listed onwinterm-siteand is not submitted to WinGet. The Setup EXE is unsigned and says so in its release notes. - Documentation: release notes, repository changelog, and current progress.
-
Source:
f3697b8c30776b7eb031b35bd29adac20d43c2a4 -
Branch:
fix/alpha1-feedback, based onmainated70755(pull request #31) -
Version intent: fixes ahead of
1.3.0-beta1; version metadata unchanged. -
Summary: Fixes the four issues reported from local v1.3.0-alpha1 testing.
The Command Timeline handle is now a thin auto-hiding strip flush against the
terminal's left edge that widens on hover, focus, or while the overlay is
open, instead of a floating button that covered terminal content. A pointer
press on the terminal area now light-dismisses an open overlay. The Visual
Progress recognition engine no longer claims ownership from a bare
product-name mention (a
dirlisting containing.gradlepreviously started a bar that never stopped), no longer rematches arbitrary records under an established claim, structurally clears a still-running provider bar after two consecutive ordinary records, and no longer reads slashed dates as completed/total meters. Bare PowerShell profile commandlines are now rewritten at connection creation to import the packagedwinTerm.Shellmodule, so OSC 133 marks and the Command Timeline work out of the box; the rewrite is gated by the new per-profile setting"shellIntegration.autoInject"(defaulttrue) and refuses every customized invocation. -
Validation:
SettingsModelwinTerm TAEF classes 44/44, ControlCommandTimelineTests43/43,TerminalAppLibandControl.UnitTestsx64 Release builds clean, and the command-timeline, visual-progress, privacy, version, release-workflow, CI-classification, and Smoke gates all pass. - Documentation: PowerShell integration, repository changelog, and current progress.
-
Source:
cdfa02be0ac0f9f3c7ba8bd34200854323dbf130 -
Branch:
release/v1.3.0-alpha1, based onmain -
Version intent:
1.3.0-alpha1/ tagv1.3.0-alpha1, channelalpha. -
Summary: Promotes the Command Timeline to a testable alpha. The feature
content was already on
mainas checkpoints v1.2.1–v1.2.4; this moves the release metadata and makes the version gates channel-aware.verify-version.ps1now acceptsstable,alpha, andbetaand enforces that the channel, the module prerelease suffix, and the application-version suffix agree. The WinGet workflow now skips prerelease Releases. -
Publication boundary: The release workflow marks any non-stable channel
--prerelease --latest=false, so/releases/latestkeeps resolving to v1.2.0. The alpha is deliberately not listed onwinterm-siteand is not submitted to WinGet. The Setup EXE is unsigned and says so in its release notes. - Documentation: Wiki changelog, release notes, repository changelog, and current progress.
-
Source:
c1426996372c5af0ba442eebf5603bad15a9135e -
Branch:
feature/command-timeline-v1.3.0-phase4, based onmain(Phase 3 was squash-merged tomainas5fd2172through pull request #29) - Pull request: #30 — feat: complete Command Timeline Phase 4 checkpoint
-
Version intent:
1.2.4/ tagv1.2.4. -
Summary: Completes the in-memory Command Timeline surface. Adds pane-local
literal case-insensitive search over each pane's bounded command-text index
with a 256 UTF-16 surrogate-safe query cap, a filtered projection that keeps
stable
CommandIdidentity,/and Tab focus routing that never reaches the PTY, Escape clear-then-close, thecommandTimeline.enabledandcommandTimeline.historyLimitsettings with a Settings UI section, four distinct shell-degradation states, and bounded per-pane history with oldest-first eviction. - Documentation: Wiki changelog, repository changelog, Phase 4 development notes, Command Timeline user guide, keyboard shortcuts, privacy, and current progress.
- Boundary: No persistent history, output cache, output search, regex or fuzzy matching, telemetry, automatic execution, ConPTY/VT/TextBuffer/renderer change, workspace or shell protocol schema change, installer, Portable packaging, Release asset, Latest update, website change, or screenshot.
-
Source:
08afcea737e21ca2d8b7f83704efe94601215c3f - Pull request: #29 — feat: complete Command Timeline Phase 3 checkpoint
-
Merged source:
5fd217238452b2f9fd4352629f86ffb7befd9b54(squash merge tomain) -
Branch:
feature/command-timeline-v1.3.0 -
Version intent:
1.2.3/ tagv1.2.3. -
Summary: Adds Command Timeline entry actions: load the selected command
onto the focused pane input with Enter or a single click, Space to jump to a
command's output, Ctrl+C to copy the selected command, and a per-entry
context menu with copy command, copy output, and jump to output. Adds a pure
CommandTimelineActionModel, execution-generation tracking that makes a late completion detectable, multi-line and large-load protection, and on-demand output resolution. - Documentation: Wiki changelog, repository changelog, Phase 3 development notes, Command Timeline user guide, and current progress.
- Boundary: A load never executes, never reads the Windows clipboard, and is never forwarded by input broadcast. No output cache, persistence, search, filtering, telemetry, Release asset, installer, website, or screenshot change.
-
Source:
e3033cced4f68ae6e50962b48c91eb432d3d0e17 - Pull request: #28 — feat: add Command Timeline phase 2 checkpoint
-
Merged source:
395f9becd3237bf0d439ba58de50a667a911445d -
Version intent:
1.2.2/ tagv1.2.2. - Summary: Adds the pane-owned, read-only Command Timeline overlay; pure deterministic navigation; incremental Phase 1 index consumption; keyboard, pointer, wheel, accessibility, privacy, warm-access, and cleanup behavior; shortcut remapping; version synchronization; CI badge repair; and permanent changelog/Wiki policy.
- Documentation: Wiki changelog, repository changelog, and current progress.
- Boundary: No command insertion, copy, paste, execution, output jump, search, persistence, Release asset, installer, website, or screenshot change.
-
Merged source:
510c326e474eccfbc40f8f6763b4b9227a2aa6b0 - Pull request: #26 — feat: add Command Timeline Phase 1 checkpoint
-
Version intent:
1.2.1/ tagv1.2.1. -
Summary: Introduced pane-local OSC 133 indexing, stable native mark
identity, bounded command-text caching, no output cache or persistence, warm
markRevisionreads, and lifecycle/reflow/eviction/close coverage. - Documentation: Wiki changelog and repository changelog.
-
Merged source:
abb581a2a661f1d3a1f34b2ac384ce4c7e3c69c9 - Pull request: #27 — fix: prevent hanging tests and optimize CI builds
-
Summary: Added bounded TAEF process-tree cleanup and made native build,
delivery, and
ci:fullvalidation explicit maintainer-selected gates while ordinary pull requests retain quick validation.
Every source commit that changes user-visible behavior, versioning, release
status, or project history must update the root CHANGELOG.md and the matching
Wiki record in the same delivery cycle. A later source correction receives a
new ledger entry; published tags and Releases are never rewritten.