| Age | Commit message (Collapse) | Author |
|
* fix: synchronize plugin pane pwd
refs #2984
* refactor: isolate plugin pwd platform policy
refs #2984
* docs: fix changelog conflict resolution
---------
Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
Co-authored-by: Can Celik <ogulcancelik@gmail.com>
|
|
* fix: reap ctrl-click url openers
refs #2903
* fix: scope linux opener test import
refs #2903
* test: isolate url opener regression
refs #2903
---------
Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
|
|
refs #2440
|
|
* feat: show a zoom indicator in the desktop tab bar
Reserve the right edge of the tab row for a ZOOM pill while the
focused pane is zoomed, matching the accent style of the mode bars.
The per-tab Z suffix stays; the pill makes the zoomed state visible
at a glance like tmux's status-right flag.
* feat: optionally show the hostname in the desktop tab bar
Add ui.tab_bar_hostname to display the machine's hostname at the right
edge of the tab row, like tmux's #h in status-right. The value resolves
where the server renders, so remote sessions show the remote host. Off
by default.
* fix: strip control characters from the tab bar hostname
* fix: hide the hostname when it would squeeze out the tab strip
* feat: add configurable tab bar status
* fix: harden tab bar status updates
* fix: terminate tab bar status process trees
* fix: disable status commands on unsupported platforms
* fix: skip unchanged status command renders
* fix: keep tab bar status opt-in by default
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
|
|
* feat(windows): support remote attach to unix hosts
* fix(remote): preserve unix bridge behavior
|
|
replaces contributions from sf-jin-ku
|
|
refs #1525
|
|
refs https://github.com/ogulcancelik/herdr/discussions/679
|
|
refs #930
|
|
refs #1041
|
|
* fix: switch prefix ASCII input source on the foreground client
The macOS prefix ASCII-switch ran in the headless server, whose
TISCopyCurrentKeyboardInputSource read is a stale per-process cache
(refreshed only via a main-run-loop notification the server never pumps),
so prefix could leave the terminal on the wrong input source.
Forward it to the foreground client, like clipboard: sync_prefix_input_source
emits AppEvent::PrefixInputSource as an intent; the server forwards it to the
foreground client and the monolithic app applies it in-process via
RealPrefixInputSource, which pumps its main run loop before the stale TIS read.
Key it on Mode::wants_ascii_input so multi-level prefix commands keep ASCII
until returning to the terminal, and restore the IME for rename text entry.
Adds ServerMessage::PrefixInputSource to the already-unreleased protocol 15.
refs #774
* fix: keep prefix input-source switch out of the headless server process
An App-internal drain (the exhaustive drain at the top of
handle_api_request, reachable from prefix-key runtime mutations) can
consume a queued PrefixInputSource intent before the server's
forwarding drain sees it, applying the TIS switch in the headless
server process and stranding the restore state. Gate the in-process
switch on App.local_input_source_switch, disabled by the headless
server alongside the other local side effects, so a swallowed intent
degrades to a skipped switch. Widen the forwarding-bypass maintenance
test to the handle_internal_event_with_prefix_sync wrapper.
refs #774
* docs: clarify prefix input-source comments and flag docs
refs #774
* fix: bump protocol for prefix input source
refs #774
---------
Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
|
|
refs #914
|
|
refs #302
|
|
On macOS, opt-in under [experimental], temporarily switch the host input
source to the current ASCII-capable layout while prefix mode is active so
prefix commands register even when a CJK IME is composing, then restore the
previous input source when prefix mode exits or is cancelled. No-op when the
current source is already ASCII-capable, on non-macOS platforms, or when any
input source call fails. Pane text input is unaffected.
Also pin next_resize_poll in next_loop_deadline_includes_selection_autoscroll_deadline
so the selection autoscroll deadline stays the earliest; the default resize
poll could otherwise beat it and flake the assertion.
refs #400
Co-authored-by: Can Celik <ogulcancelik@gmail.com>
|
|
refs #345
|
|
refs #327
|
|
refs #307
|
|
refs #300
|
|
* feat: add github copilot cli state detection
Add robust state detection heuristics for the GitHub Copilot CLI by matching specific interactive prompt combinations, freeform inputs, and thinking status frames.
refs #232
* docs: keep copilot docs staged for next release
---------
Co-authored-by: Can Celik <ogulcancelik@gmail.com>
|
|
refs #238
|
|
|
|
|
|
refs #205
|
|
|
|
|
|
|
|
|
|
fixes #100
|
|
fixes #66
|
|
|
|
|
|
|
|
|
|
|
|
proc_name() fails on macOS Sequoia due to undersized buffer
(MAXCOMLEN+1 = 17 bytes). Even with a larger buffer, it returns
the kernel comm name ('node') rather than the effective process
title ('pi') set via Node.js process.title.
Replace with sysctl(KERN_PROCARGS2) which reads argv[0] and
reflects runtime title changes, matching what ps(1) displays.
Falls back to pbi_comm from proc_pidinfo if sysctl fails.
|
|
terminal workspace manager for AI coding agents.
single rust binary, runs inside your existing terminal.
workspaces, tiled panes, intelligent agent state detection.
https://herdr.dev
|