Commit Graph
1632 Commits
Author SHA1 Message Date
Ogulcan Celik 4965f8708c release: v0.4.9 v0.4.9 2026-04-13 03:42:37 +03:00
Ogulcan Celik 759b9b9ebd fix: update changelog for unreleased fixes 2026-04-13 03:41:27 +03:00
Ogulcan Celik dab18d4b17 fix: tighten tab bar scrolling behavior 2026-04-13 03:38:04 +03:00
Ogulcan Celik 27f4b7482b fix: reserve q for navigate quit only 2026-04-13 02:54:22 +03:00
Ogulcan Celik 0713e77a7e chore: add github sponsors button 2026-04-12 01:22:01 +03:00
Ogulcan Celik 3f21ba077b fix: preserve scrollback for droid primary-screen redraws 2026-04-12 01:01:22 +03:00
Ogulcan Celik 43d8fdd8a5 docs: update website manifest for v0.4.8 2026-04-12 00:29:24 +03:00
Ogulcan Celik 0df702796f release: v0.4.8 v0.4.8 2026-04-12 00:23:35 +03:00
Ogulcan Celik 18f7843b57 docs(changelog): add unreleased notes for transparent chrome and clipboard 2026-04-12 00:22:41 +03:00
Ogulcan Celik 90e51f704b feat: support transparent panel chrome 2026-04-11 23:53:21 +03:00
Ogulcan Celik 6598c88d35 fix: prefer native clipboard tools over osc52 fallback 2026-04-11 03:16:28 +03:00
Ogulcan Celik aa6da3c833 docs: update website manifest for v0.4.7 2026-04-10 15:27:02 +03:00
Ogulcan Celik 2d6b87de96 release: v0.4.7 v0.4.7 2026-04-10 15:20:03 +03:00
Ogulcan Celik e013f106dc docs(changelog): include amp blocked detection fix 2026-04-10 15:17:17 +03:00
Ogulcan Celik 31cf4c4201 fix: harden amp blocked detection 2026-04-10 15:14:45 +03:00
Ogulcan Celik d96962adf6 chore: add pre-commit fmt hook 2026-04-10 15:09:32 +03:00
Ogulcan Celik f5282d9ad2 docs(changelog): include pane close workspace fix 2026-04-10 15:02:39 +03:00
Ogulcan Celik 08eccb89d2 fix: preserve workspace when closing the last pane in a tab 2026-04-10 15:00:34 +03:00
Ogulcan Celik a763406db2 ci: run on master pushes and cancel superseded runs 2026-04-10 14:54:04 +03:00
Ogulcan Celik 5f17a5f839 docs(changelog): draft unreleased entry 2026-04-10 14:52:45 +03:00
Ogulcan Celik 4a3b8f2fcf fix: forward pane osc 52 clipboard writes 2026-04-10 14:32:07 +03:00
Othavio Quiliao 6c62dba44e fix: forward OSC 52 clipboard writes from pane children
herdr embeds `libghostty-vt` as a headless terminal emulator per pane,
and its readonly stream handler silently drops `.clipboard_contents`
actions. As a result, any child process that writes OSC 52 to copy to
the system clipboard (for example Amp, which enables mouse reporting
and handles selection internally) has its sequence swallowed before it
can reach the host terminal — the user sees the child's "copied" toast
but the system clipboard is never updated.

This change adds an `Osc52Forwarder` that observes raw PTY bytes in
`process_pty_bytes`, reconstructs completed `ESC ] 52 ; (c|) ; <base64>
(BEL|ST)` sequences (write/clear only — queries are dropped since herdr
has no path to reply to the child), and returns them through the
existing `ProcessBytesResult`. The reader task forwards the bytes to
the main loop via a new `AppEvent::ClipboardWrite`, which is written
to stdout from `handle_internal_event`. Routing through the main loop
keeps stdout writes serialized with `terminal.draw` and the other
existing host-terminal emitters, so the new forwarder does not race
with rendering.

Existing herdr-native selection (mouse drag in panes without mouse
reporting) is unchanged and still writes through `selection::write_osc52`.
2026-04-10 14:32:07 +03:00
Ogulcan Celik 13fe950fe4 test: stabilize shell-based api and cli wrapper tests 2026-04-10 14:26:31 +03:00
Ogulcan Celik 831bb66c0c feat(tabs): add overflow scrolling and drag reorder 2026-04-10 14:16:25 +03:00
Ogulcan Celik e20be7bdae ci: install and pin setup-zig 2026-04-10 13:58:44 +03:00
github-actions[bot] 8cfa84921c chore: approve contributor othavioquiliao 2026-04-09 19:41:40 +00:00
Can Celik b024c273e3 Merge pull request #25 from othavioquiliao/fix/pane-click-focus-mouse-reporting
fix: click focus on panes running TUIs with mouse reporting
2026-04-09 22:41:15 +03:00
Othavio Quiliao 42fa2648ee fix: always open pane context menu on right-click
The Down(Right) handler forwarded the click to the inner pane runtime
when mouse reporting was active, then early-returned before creating the
context menu state. For panes running a TUI that enables mouse reporting
(e.g. Claude Code), right-clicking focused the pane but never opened the
herdr context menu, even though right-click on plain shells or Codex
still worked.

Stop forwarding Down(Right) to the pane runtime altogether. Right-click
on a pane now always focuses it and opens the herdr context menu,
matching how terminal emulators like Ghostty, Alacritty, Kitty and iTerm2
treat right-click. This means the previous context menu actions
(close pane, split, fullscreen, etc.) now also reach the intended pane
via focus_pane before the menu is displayed.

Remove Up(Right) and Drag(Right) from the middle/right forward branch so
the inner TUI never sees an Up or Drag without a matching Down. Middle
button forwarding is preserved because it is still used for paste in
many terminal protocols.

Tighten the existing right-click regression test with assertions that
Mode::ContextMenu is entered and context_menu is populated. Without
these extra checks the earlier version of the test only verified focus
and failed to catch this exact bug.
2026-04-09 16:06:27 -03:00
Othavio Quiliao 5e711fb7d3 fix: focus pane on left-click even when mouse reporting is active
The Down(Left) handler called forward_pane_mouse_button before focus_pane
and early-returned when the forward succeeded, which happens for any pane
running a TUI that has enabled mouse reporting (e.g. Claude Code). As a
result, clicking such a pane forwarded the click to the inner TUI but
never updated herdr's focus state, leaving the previous pane highlighted.

Reorder the handler to focus first and forward after, matching the
pattern already used by handle_terminal_wheel. Shells and TUIs without
mouse reporting (e.g. Codex) were unaffected because their forward
returned false and the focus update happened in the fallthrough branch.

Add a regression test that installs a pane runtime with mouse reporting
enabled via the '\x1b[?1002h' DECSET sequence and asserts that a
Down(Left) event retargets focus.
2026-04-09 16:04:06 -03:00
Ogulcan Celik 2c50690877 fix(status): keep background startup idle panes out of done 2026-04-09 21:59:18 +03:00
Ogulcan Celik c45a3b2dc1 feat(api): return root panes from workspace and tab creation 2026-04-09 21:59:18 +03:00
Ogulcan Celik a6cbc97651 docs: update website manifest for v0.4.6 2026-04-09 19:27:13 +03:00
Ogulcan Celik cfbde68bb0 release: v0.4.6 v0.4.6 2026-04-09 19:09:40 +03:00
Ogulcan Celik 992b0c954a docs: update unreleased changelog 2026-04-09 19:09:02 +03:00
Ogulcan Celik 065926d9b7 fix: restore terminal colors on macos after droid exit 2026-04-09 19:05:42 +03:00
Ogulcan Celik a134563729 fix: restore host terminal colors after fullscreen tui exit 2026-04-09 18:44:53 +03:00
Ogulcan Celik 953ff58e9f fix: autoscroll and clear mouse text selections 2026-04-09 17:52:09 +03:00
Ogulcan Celik be271f8dbe docs: clarify agent workflow and testing commands 2026-04-09 17:50:54 +03:00
Ogulcan Celik dacbfed01e docs: clarify automatic detection and socket integrations 2026-04-09 17:39:13 +03:00
Ogulcan Celik 227f02c58b fix: avoid blocking on claude slash menus 2026-04-09 17:28:02 +03:00
Ogulcan Celik 9495979573 fix: harden codex detection for narrow panes 2026-04-09 17:28:02 +03:00
Ogulcan Celik 1cbd312936 fix: detect agent state from terminal tail instead of viewport 2026-04-09 17:28:02 +03:00
Ogulcan Celik 8ae7ccc5b2 docs: refresh website copy 2026-04-09 14:58:18 +03:00
Ogulcan Celik 0203cc80e9 docs: update website manifest for v0.4.5 2026-04-09 14:41:29 +03:00
Ogulcan Celik 14808e9e29 release: v0.4.5 v0.4.5 2026-04-09 14:36:02 +03:00
Ogulcan Celik 2448f16a2b docs: draft unreleased changelog 2026-04-09 14:35:14 +03:00
Ogulcan Celik aeeba8f637 test: stabilize cli wrapper integration shell startup 2026-04-09 14:31:34 +03:00
Ogulcan Celik 98dcbcf576 docs: refactor readme 2026-04-09 05:25:14 +03:00
Ogulcan Celik bb2c579df2 feat(cli): support labels when creating tabs and workspaces 2026-04-09 04:42:35 +03:00
Ogulcan Celik 5460a9601e fix(tabs): keep default numeric labels auto-generated 2026-04-09 04:32:45 +03:00