Releases: TitusKirch/glimpse
Releases · TitusKirch/glimpse
Release list
v0.16.0
0.16.0 (2026-09-13)
Features
- build: cross-build the sidecar instead of renaming a host binary (568135e), closes #103
- build: ship the native command line into every WSL distro (03c7902), closes #103
- cli: accept a global option before the subcommand (1c4f59f), closes #103
- cli: add the branch, tag, remote, stash and commit-moving commands (bb5c2a8), closes #103
- cli: add the one-shot layout writes (f80c93a), closes #103
- cli: add the remaining GUI read views as subcommands (a23623a), closes #103
- cli: add the working-tree and commit write commands (d399747), closes #103
- cli: give fetch, pull and push a headless command each (411935c), closes #103
- cli: read a repository headlessly with status, log, branches and info (113910c), closes #103
- cli: run a glimpse subcommand from a WSL shell (4fe403e), closes #103
- cli: run rebase, bisect and conflict resolution headlessly (a02c8e7), closes #103
- cli: ship the command line beside the app in every installer (3091552), closes #103
- core: ask git which paths it is ignoring (62c922b), closes #207
- git: answer where a branch tracks and what a remote ref holds (e4e4497), closes #103
- git: leave a write receipt for a running window (5e5fb9c), closes #103
- git: read a ref operation's outcome back from git (2eca911), closes #103
- shell: log time to first paint so startup can be measured (3dbd23c), closes #104
- shell: refresh at once when a headless write lands (46ad5b3), closes #103
- wsl: refuse forwarding with no WSLInterop handler registered (4b07485), closes #207
Bug Fixes
- build: keep the CLI sidecar out of the config cargo reads (9077bd2), closes #103
- build: point the perf baseline at the packaging invocation (a0c0180), closes #103
- build: prove the WSL payload before it replaces the command line (fa1609a)
- build: refuse a
--fromwith no value instead of building (982bfb8), closes #103 - cli: count the ignored work a reset --hard comes for (cb0dccb), closes #207
- cli: count what a pull brought down, not what HEAD gained (72a3b41), closes #103
- cli: create a branch in an empty repository without failing (a84dc7c), closes #103
- cli: decide an untracked file's fate from the target tree (9f4080f), closes #103
- cli: keep a --json failure json when the globals are the failure (d3ffdab), closes #103
- cli: keep a merge-base probe from answering for the merge (9479751), closes #103
- cli: keep an option's value out of the global scan (5630693), closes #103
- cli: keep an option's value out of the WSL forwarder's -C scan (0bbe12d), closes #103
- cli: make discard destroy exactly what it reports (92d1c49), closes #103
- cli: make tag push report what actually moved (b8c947b), closes #103
- cli: name the merge conflict that blocks a commit (1946a39), closes #103
- cli: parse Git 2.55 bisect results (03aaab1)
- cli: refuse a reset that clears untracked work by shape (8c1ccdf), closes #103
- cli: refuse discard --all --force mid cherry-pick or revert (658a8c9), closes #103
- cli: refuse discard --all --force while a merge is open (9f257af), closes #103
- cli: refuse to settle a paused rebase on ours (75cf282), closes #103
- cli: report a conflicted stash restore as what it was (e475a24), closes #103
- cli: report an already-merged branch as up to date (87240f0), closes #103
- cli: resolve every command's paths against the repository root (542813f), closes #103
- cli: retain completed bisect output (51dacb8)
- cli: say how to undo the rename discard refuses (cbc215d), closes #207
- cli: say what a mid-operation refusal actually leaves behind (599538c), closes [#103](https:...
Experiment: exp-wsl-payload (v0.16.0-exp.1)
feat(build): ship the native command line into every WSL distro `scripts/glimpse-wsl.sh` has always routed a subcommand to a NATIVE Linux `glimpse-cli` when the distro has one, and forwarded it to `glimpse.exe` over the `\\wsl.localhost` share when it does not. Nothing ever shipped that binary, so on a distro with no glimpse package of its own the native leg was unreachable: every `glimpse status` took the long way round. This is that half of #103's criterion (c). STATIC MUSL, NOT GLIBC. The payload runs inside whatever distro the user happens to have. A glibc build carries the glibc of the machine that produced it and dies with `GLIBC_2.xx not found` on anything older — which would make the native route WORSE than the forwarding one it replaces. `glimpse-cli` links no C library of its own, so static costs nothing. A RESOURCE, NOT A SECOND SIDECAR. `bundle.externalBin` matches the build's own target triple, so a Linux binary can never be a sidecar of a Windows build. `tauri.wsl-payload.conf.json` declares it as a resource and re-declares the sidecar, making it a superset — the Windows leg passes one `--config` and nothing has to merge two fragments in YAML. A test pins the superset against what it supersets. ARCH-KEYED, NOT TRIPLE-KEYED. `uname -m` is what a distro can answer in one cheap call, and the payload's libc is not its business. An ARM64 Windows host finds no payload and keeps the forwarding route, which is the correct outcome rather than a failure. WHERE THE BYTES COME FROM. A Windows runner has no Linux linker, so `_tauri-build.yml` gains a `wsl-payload` job that builds it once on Linux and hands it to the Windows leg as an artifact. It gates all three legs — a single `cargo build` of a four-dependency crate against a 45-minute budget — rather than serialising the Windows leg behind a whole Linux Tauri build. `install_wsl_cli_into` streams it into each distro at `/usr/local/lib/glimpse/glimpse-cli`, the FIRST path the launcher searches; a unit test reads the launcher and pins the two together in both directions, because installing to a path it does not search is a silent no-op. It writes a `.new` sibling and `mv`s it into place: replacing a running ELF fails with ETXTBSY, and a half-written command line is worse than the one it replaced. Every leg is best-effort, matching the launcher install beside it. No payload, an unreadable `uname -m`, a distro that refuses the write — the launcher is still installed and still forwards. The install report now names which of the two routes each distro ended up with, because they are not the same thing. Refs #103
v0.15.1
0.15.1 (2026-09-09)
Bug Fixes
- history: put hasMore and loadError on the tab that produced them (f736dff), closes #198
- i18n: drop a fallbackLocale block that decided nothing (e3f1eb8), closes #197
- types: clear the typecheck backlog before the gate enforces it (c7370d8), closes #197
Performance Improvements
v0.15.0
0.15.0 (2026-09-09)
Features
- changes: assign changelist membership by hunk, not only by file (52c3f76), closes #112
- repo: scroll the tab strip instead of squeezing every tab (f33039e), closes #185
Bug Fixes
- changelists: release a closed repo's session state (9d1e603), closes #186
- changelists: stop a write in flight from restoring a released repo (c6c1806), closes #186
- changes: keep moveFile authoritative and survive a pre-hunk cache (7b8b8ab), closes #112
- diff: carry contentsOmitted into every payload literal (f45f124), closes #194
- git: drop the lock reference before the map guard, not after (055d4a1), closes #189
- git: release a repo's lock entry once no call holds it (51d14ef), closes #189
- history: make the log limit per tab instead of app-wide (96547fb), closes #190
- hooks: apply oxfmt's own ignore list before calling it (b0cafa1)
- repo: keep vuedraggable's slots to a single node (67cc1a2), closes #185
- repo: release a platform probe's claim with the tab, not with the probe (04b3832), closes #187
Performance Improvements
- diff: build only the row model that will actually render (8061a52), closes #192
- git: cap an image diff and stop holding each side twice (d3655dc), closes #194
- git: cap the file contents a diff loads into memory (28a1d73), closes #193
- graph: window the graph's SVG nodes and edges to the rows in view (0d823b6), closes #191
- repo: release an idle tab's git data and stop deep-proxying it (5c26e99), closes #195
v0.14.0
0.14.0 (2026-09-08)
Features
- diagnostics: describe a healthy app, not only a crashed one (c501dd4), closes #177
- diagnostics: line up the command log and let it be searched (e9cc39c)
- error: share the diagnostics assembly with the Diagnostics page (cb90f90), closes #177
- error: surface the failures that only reached the console (be25cf0), closes #176
- git: expose the command log and the fault switches to the frontend (ddbf48a), closes #178
- git: log every git invocation and allow injecting failures (bb27b0f), closes #178
- git: report the version of the git that actually runs (d8e6b8b), closes #177
- graph: cap the graph column at a share of the pane (783dc5f), closes #180
- graph: give the reclaimed graph width back to commit subjects (50a51e5), closes #180
- graph: move a straggling branch onto a lane that has fallen free (94366df), closes #182
- graph: move the column's width continuously, not in snaps (875656d), closes #180
- graph: narrow the column and stop animating its width (45a05c8), closes #180
- graph: size the commit graph column from the rows in view (bcc0fe0), closes #180
- settings: add session-only simulation state (c25268b), closes #175
- settings: add the Diagnostics and Simulation developer pages (b56b293), closes #175
- settings: crash the app on purpose from the Triggers page (946ed1e), closes #176
- settings: fail or slow git calls from the Simulation page (5a2db62), closes #178
- settings: show alerts and buttons in the showcase (ce45efb), closes #174
- settings: show the diagnostics report and open the inspector (8d1b465), closes #177
- settings: show the git command log on the Diagnostics page (9e4c99e), closes #178
- settings: show the restored button variants in the showcase (e19684a), closes #174
- settings: simulate updater states from the Simulation page (2e154af), closes #179
- sidebar: flag an active simulation next to the app name (e5520a1), closes #175
- theme: pair every semantic colour with a measured foreground (9c85da1), closes #174
- ui: give alert, badge and button one semantic-colour rule (b7c6952), closes #174
- updater: report download progress and expose a restart command (6a87606), closes #179
- updater: show install progress in one toast and offer a restart (95d1525), closes #179
- updater: simulate the check, download and restart states (82b60ed), closes #179
Bug Fixes
- ci: build the stable installers again after a release is cut (7ac1ccc)
- ci: stop the build legs racing on the shared updater manifest (61ba479)
- ci: stop the installer build wiping the release notes (6653673)
- ci: stop the installer build wiping the release notes (#183) (88f3e2d)
- deps: raise the tauri version requirements to the resolved versions (cce82cd)
- deps: update the transitive dependencies to their patched versions (d0aebd9)
- error: collapse repeated git failures into one counted toast (e61cfd9)
- error: dress the fatal page's controls like the rest of the app (02fa8f6), closes #177
- error: stop the watcher's failed reloads from toasting one by one (ff941d2)
- git: redact credentials in every url of a multi-line git error (8ae2ec1), closes #178
- graph: curve merge edges by the distance they jump (b8232e8), closes #180
- graph: decide a wheel gesture's owner in a testable seam (a9a02c5), closes #180
- graph: hold the column's width still while the list scrolls (211122e), closes #180
- i18n: put the copied toast under the key that reads it (b5ac6ba)
- icon: bundle the icons instead of fetching them at runtime (e2af610)
- pin the untriaged marker so the work loop sees it (88160c0)
- repo: start the desktop shell with no repository (9d30396), closes #176
- theme: let native controls follow the colour mode (6c8f047), closes #177
- ui: give button back its info, success and warning fills ([5b66ec6](https://github....
v0.13.0
0.13.0 (2026-09-07)
⚠ BREAKING CHANGES
- move to pnpm 12
- this repository now requires pnpm 12.
Features
- build: ship source maps for the app's own code (705b4cb), closes #158
- ci: call the central workflow bodies instead of copying them (d1da865)
- error: offer a manual update check on the fatal error page (750d2e7), closes #167
- error: show version, OS and build info on the fatal error page (ea0a0c1), closes #157
Bug Fixes
- ci: let the queue PR body wrap itself (c54e863)
- ci: pin the workflow bodies to v0.2.0 and drop paths-ignore (173c9ab)
- ci: pin the workflow bodies to v0.5.0 (1e431b7)
- ci: pin the workflow bodies to v0.7.0 (34d985d)
- ci: read the pre-major flags from the whole release-please config (#170) (1bf4162)
- ci: read the Queue App PEM from this owner's own -ci mirror (3a1eb1d)
- deps: update the cargo lockfile to the latest compatible versions (c3f07f4)
- deps: update the npm dependencies to their latest minor versions (4a4889d)
- history: stop the commit graph shadowing Vue's ref auto-import (48c1b3d), closes #156
Reverts
- go back to pnpm 11.25.0 (e53209c)
Miscellaneous Chores
v0.13.0-beta.1
Beta build v0.13.0-beta.1.
Beta (updater manifest)
Holds latest.json for the beta auto-updater. Installers live in the versioned v0.13.0-beta.1 prerelease.
v0.12.2
0.12.2 (2026-07-30)
Features
- route questions, ideas and possible bugs to the Discord forum (aa4316f)
Bug Fixes
- align issue-template labels with the label catalog (8c2c6ad)
- repo: truncate long tab names instead of wrapping (10bf454), closes #133
Miscellaneous Chores
- release 0.12.2 instead of 0.13.0 (92f195c)