Commit Graph
1713 Commits
Author SHA1 Message Date
JJ Liebig bb2cbcdb71 Merge branch 'master' into feat/plugin-update-all 2026-09-20 14:18:00 +02:00
Vinay ShahandJJ Liebig a3a1c94ed5 fix: detect kiro status from live controls and osc signals (#4372)
* fix: detect kiro status from live controls and osc signals

refs #4203

* fix: handle variable-height kiro approval panels

refs #4203

---------

Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-09-20 15:55:41 +04:00
Jonathan Liebig dfe5ff7d12 fix: bound plugin retention and preserve cleanup retries
refs #3219
2026-09-20 03:37:58 +02:00
Jonathan Liebig 9e0c5d7f58 fix: protect linked plugin installations during cleanup
refs #3219
2026-09-20 03:37:58 +02:00
Jonathan Liebig cc773f1f13 fix: keep plugin installation errors readable
refs #3219
2026-09-20 03:37:58 +02:00
Jonathan Liebig 6984c556e2 fix: tolerate corrupt plugin registry during startup
refs #3219
2026-09-20 03:37:58 +02:00
Jonathan Liebig a26aacc2ee fix: clean up unused plugin installations
refs #3219
2026-09-20 03:37:58 +02:00
Jonathan Liebig 1d1ba678c1 fix: preserve running plugins during updates
refs #3219
2026-09-20 03:37:58 +02:00
Jonathan Liebig bbcd1049a7 feat: update managed plugins from GitHub
refs #3219
2026-09-20 03:37:58 +02:00
JJ Liebig d59d0603d5 fix: recover the cursor during animated redraws (#4404)
refs #4303
2026-09-20 03:33:51 +02:00
JJ Liebig 9d29441a84 test(windows): distinguish clipboard paste origin in input gauntlet (#4394)
* test(windows): distinguish clipboard paste origin in input gauntlet

refs #4314

* test(windows): correct gauntlet paste-origin evidence

refs #4314
2026-09-20 00:21:32 +02:00
856b64b9bf fix: stabilize windows cursor redraws and settle deadlines (#4389)
* fix: prevent cursor jumps during synchronized redraws

refs #4303

* fix: settle cursor positions across delayed windows redraws

refs #4303

* fix(windows): hold jump-shaped cursor moves through the max window

* fix: bound windows cursor settling and repaint at its deadline

refs #4303

---------

Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
Co-authored-by: JJLiebig <jj@liebig.gg>
Co-authored-by: Axel Karlsson <axelalbertkarlsson@outlook.com>
2026-09-19 20:21:46 +02:00
Can Celik e0507237ad feat: show every agent and terminal in the go to picker (#4384) 2026-09-19 15:43:47 +03:00
Can Celik cc7c696cd0 feat: add configurable pane screen and scrollback clearing (#4383) 2026-09-19 14:47:18 +03:00
3f2a6e743f test: isolate integration assets from inherited omp environment (#4351)
refs #4346

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-09-18 21:56:24 +03:00
Can Celik 028780cebc fix: reveal selected agent when cycling the sidebar (#4355)
* fix: reveal selected agent when cycling the sidebar

* fix: reveal agent after endpoint activation
2026-09-18 21:50:26 +03:00
akbashandakbash-bot 241063f7ff fix: preserve request ids in socket error responses (#4353)
* fix: preserve request ids in socket error responses

refs #4344

* docs: clarify socket error response limits

refs #4344

---------

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-09-18 17:41:56 +03:00
Can CelikandJJ Liebig a19a595c55 perf: enable ssh compression for remote connections (#4340)
Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-09-18 17:02:09 +03:00
JJ Liebig 68dd6edaa2 test(windows): qualify remote clipboard image paste (#4324)
* test(windows): qualify remote clipboard image paste

refs #4314

* test(windows): verify staged clipboard image contents

refs #4314

* test(windows): safely clean failed clipboard leases

refs #4314
2026-09-18 15:18:23 +02:00
Can Celik 7201907b65 test: focus agent detection coverage on engine contracts (#4338) 2026-09-18 14:09:12 +03:00
Can Celik 7df919d00e fix: correct grok activity detection with custom or disabled osc signals (#4337)
refs #4333
2026-09-18 12:52:37 +03:00
JJ Liebig da6bcd5969 fix(windows): preserve mouse capture during refresh (#4319)
* fix(windows): preserve mouse capture during refresh

refs #4284

* test(windows): fix default input gauntlet invocation

* fix(windows): preserve pixel mouse transitions

refs #4284
2026-09-18 02:42:37 +02:00
b88e8116e9 test: add local windows input gauntlet (#4298)
* test: add local windows input gauntlet

refs #4251

* test: add local windows input gauntlet

Harden elevation and channel identity checks, distinguish known host limitations, and surface incomplete cleanup.

refs #4251

* test(windows): harden input gauntlet execution

refs #4251

* test(windows): make input gauntlet self-contained

refs #4251

* test(windows): bound input gauntlet failure paths

refs #4251

* test(windows): extend input qualification gauntlet

refs #4251

* test(windows): complete input qualification matrix

refs #4251

---------

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
Co-authored-by: Jonathan Liebig <jonathan.liebig@gmail.com>
2026-09-18 01:13:13 +02:00
JJ Liebig 14351f121f test: skip windows symlink tests without symlink privilege (#4311)
Windows refuses file symlinks with ERROR_PRIVILEGE_NOT_HELD (1314) unless
the test process is elevated or Developer Mode is enabled, which broke
non-admin local runs. Share a helper that reports the missing privilege so
the two symlink tests skip only the symlink-dependent assertions.
2026-09-17 22:43:35 +02:00
JJ Liebig 101ccc20d3 fix(windows): prefer pwsh for the default pane shell (#4297)
* fix(windows): prefer pwsh for the default pane shell

Windows panes launched Windows PowerShell 5.1 (powershell.exe) whenever [terminal] default_shell was unset, ignoring PowerShell 7 even when pwsh.exe resolved on PATH. Resolve the unset default against PATH and prefer pwsh.exe, falling back to the inbox powershell.exe. An explicit default_shell still wins.

* fix(windows): validate pwsh before using it as the default shell

portable-pty resolves the configured shell with Path::exists and passes that path to CreateProcessW, which does not fall through to later PATH entries. Selecting an invalid pwsh.exe would therefore break new panes instead of falling back. Only prefer a pwsh.exe that starts with the PE MZ magic, and return its path so the validated binary is the one launched.

* fix(windows): validate the full PE header before preferring pwsh

Checking only the DOS MZ signature still accepted truncated images, DLLs, and foreign-architecture binaries. Because portable-pty passes the resolved path straight to CreateProcessW without trying later PATH entries, validate the PE signature, the COFF header (machine, executable-image bit, not a DLL, section count), and the optional header before preferring pwsh.exe.

* fix(windows): accept native ARM64 pwsh and validate the section table

Herdr ships an x64 Windows build that also runs on Windows ARM64 under x64 emulation, so cfg!(target_arch) cannot tell whether a native ARM64 pwsh.exe is launchable. Accept every executable machine type Windows supports instead of rejecting ARM64 on the x86_64 build. Also bound-check the section table (40 bytes per declared section) after the optional header so a truncated table falls back instead of being selected.

* fix(windows): detect the native host machine for pwsh compatibility

Machine compatibility was derived from cfg!(target_arch), which reports the emulated x64 process on Windows ARM64, and then briefly accepted ARM64 on every host. Read the native machine with IsWow64Process2 in the platform layer instead: ARM64 Windows accepts ARM64/x64/x86 images, x64 accepts x64/x86, and x86 accepts only x86.
2026-09-17 17:45:07 +02:00
JJ Liebig 5c61d8ec2e fix(windows): temporarily revert VT only mode on Windows (#4295)
refs #4251
2026-09-17 15:33:04 +02:00
JJ Liebig 529eeca41d test: make windows config backup legacy fixture explicit (#4290)
backup_preserves_legacy relied on a freshly created temp file already having a legacy DACL (D:(...)). Directories that grant inheritable ACEs produce D:AI(...) instead, so the fixture failed before exercising the backup path. Install the legacy DACL explicitly, preserving the existing ACEs while clearing the auto-inherit and protected control bits.
2026-09-17 14:24:48 +02:00
JJ Liebig e7e3dfa60e fix(windows): recover VT input without changing readers (#4269)
refs #4251
2026-09-17 03:14:57 +02:00
JJ Liebig 063e937ee9 fix(windows): restore terminal after setup errors (#4261)
refs #4251
2026-09-17 02:11:03 +02:00
JJ Liebig 20c15dd7c8 fix(windows): preserve VT input during mouse refresh (#4257)
refs #4251
2026-09-17 00:07:58 +02:00
Can Celik 5f3763dda8 fix: cache saved machine connection metadata (#4256)
refs #4252
2026-09-16 23:55:12 +03:00
266d6f6d87 fix: respect opencode tui.json registrations (#4250)
refs #4240

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-09-16 22:22:37 +02:00
github-actions[bot] 956f23ff6b release: synchronize metadata for v0.9.1 2026-09-16 18:40:20 +00:00
kangal-bot cee4fc2dc6 docs: publish preview documentation 2026-09-16 16:38:39 +00:00
Ogulcan Celik 2c29fb29e3 fix: avoid workstation sdk requirement in preview checks preview-2026-09-16-2c29fb29e302 2026-09-16 19:22:17 +03:00
Ogulcan Celik 3f78f172d9 fix: address release promotion review findings preview-2026-09-16-3f78f172d9f9 2026-09-16 18:43:23 +03:00
Can Celik 36db8ff3f4 ci: promote stable releases from protected previews (#4241) 2026-09-16 18:25:59 +03:00
Can Celik aff99878d3 fix: offer forced removal for worktrees with submodules (#4238)
refs #1797
2026-09-16 17:06:08 +03:00
Eric YueandJJ Liebig 0d14759cb6 test: wait for app readiness before late session injection (#4224)
Root cause:
The API socket is bound before App evaluates session restore. Waiting only
for that socket lets the late-session test inject its file during startup,
so the server may load it normally instead of exercising late-file recovery.
The missing backup then fails an otherwise correct persistence assertion.

Fix:
Wait for a read-only workspace-list request to pass through App and assert
that the workspace list is still empty before injecting the session file.
Keep the existing autosave deadline and byte-for-byte backup assertion.
Add no sleeps, retries, longer timeouts or production changes.

Validation:
The original assertion fails with unchanged master. With the barrier, five
independent runs pass. Full native just ci passes 3624 Rust tests with six
default skips, formatting, all-target Clippy, 112 maintenance tests, six
architecture tests and 39 integration-asset tests. All seven docs contract
tests pass. Local Windows cross-lint was not run because its SDK is absent.

Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-09-16 14:52:48 +02:00
Eric YueandJJ Liebig ab15da285e fix: require exact session names before deletion (#4233)
* fix: require exact session names before deletion

refs #3819

* test: isolate session deletion regression tests

refs #3819

---------

Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-09-16 14:41:41 +02:00
Can Celik 68ae6adea0 fix: let local agent clicks cancel remote handoffs (#4236)
refs #3903
2026-09-16 15:29:45 +03:00
Can Celik d1a53b2c0e fix: keep local usable when remote machines stall (#4234)
refs #3903
2026-09-16 15:16:45 +03:00
Can Celik 18061191fd fix: keep remote surface updates incremental (#4209)
refs #3769

refs #3745
2026-09-16 00:58:23 +03:00
Ogulcan Celik fc548768db chore: approve vinayshah1998 as contributor 2026-09-15 23:18:45 +03:00
Can Celik 266b8e3802 fix: preserve macos services across logout (#4202)
refs #4100
2026-09-15 21:37:49 +03:00
Can Celik 4428e1664d fix: preserve unloaded sessions before replacement (#4190)
refs #4125
2026-09-15 21:17:32 +03:00
JJ Liebig f70a1f835e fix(windows): reject dynamic msvc runtime in packaging (#4200)
The v0.8.2 Windows archive shipped an herdr.exe that imported
VCRUNTIME140.dll and the api-ms-win-crt-* Universal CRT, none of which the
archive provides. Static CRT linkage was restored for x86_64-pc-windows-msvc
in .cargo/config.toml, but nothing verified the packaged executable, so the
dependency could silently regress.

Parse the PE import and delay-import tables and reject herdr.exe when it
depends on the dynamic Microsoft C/C++ runtime, including release and debug
variants. Check the input while staging and re-check the staged executable
before archiving so a direct archive cannot bypass the guard.

refs #3129
2026-09-15 18:14:07 +02:00
JJ Liebig 9db1eed391 fix(windows): normalize pane launch cwd casing (#4199) 2026-09-15 17:17:47 +02:00
Can Celik ee064a0c79 fix(windows): preserve sgr mouse encoding after native capture (#4195)
refs #4155
2026-09-15 17:24:35 +03:00
akbashandakbash-bot 963f78f46c fix: preserve live selections during pane output (#4193)
refs #3841

Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-09-15 16:20:51 +02:00