aboutsummaryrefslogtreecommitdiff
path: root/src/config
AgeCommit message (Collapse)Author
2026-08-10feat: add move tab keybind actions (#2561)David Heinemeier Hansson
* feat: add move tab keybind actions Add optional keys.move_tab_previous/move_tab_next actions that reorder the active tab one position, wrapping at either end. Reuses the existing tab.move runtime path that mouse drag reordering already drives. * fix: exit navigate mode on single-tab move attempts
2026-08-10feat: add configurable tab bar status (#2586)Can Celik
* 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>
2026-08-09feat: add direct pane resize keybindings (#2558)David Heinemeier Hansson
2026-08-09feat: make outer pane borders configurable (#2535)David Heinemeier Hansson
2026-08-07fix(config): report unknown theme names (#2488)Can Celik
refs #2452
2026-08-05feat(theme): add optional sidebar backgroundOgulcan Celik
2026-08-05fix(config): accept retired agent panel scope (#2295)akbash
refs #2292 Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com> Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-08-04feat(ui): add distinct status indicators (#2282)Can Celik
refs #2260
2026-08-01feat(ui): make pane scrollbars optional (#2166)Can Celik
refs #2167
2026-08-01fix(input): preserve native key lifecycle across routing (#2142)Can Celik
refs #2077 Co-authored-by: Jonathan Liebig <jonathan.liebig@gmail.com>
2026-07-31feat: support bottom tab bar placement (#2118)Can Celik
* feat: support bottom tab bar placement * fix: preserve mouse cleanup under bottom mode bar refs #2117
2026-07-26fix: support non-us shifted keybindings (#1876)Can Celik
* fix: support non-us shifted keybindings refs #1870 * docs: require current pull request base
2026-07-25feat: switch IME to ASCII in prefix mode on Windows (Korean IME) (#1823)joonhwan
* feat: switch IME to ASCII in prefix mode on Windows Extend switch_ascii_input_source_in_prefix to Windows: detect IME state via WM_IME_CONTROL and toggle to ASCII with SendInput for the Korean IME. Other IME languages are detected and left unchanged. refs #1802 * docs: clarify Windows (Korean IME) support for prefix ASCII switching Follow-up to the Windows prefix ASCII switch, which extended switch_ascii_input_source_in_prefix to Windows but left the surrounding text describing macOS only. - Settings row label: "(macOS)" -> "(macOS/Windows)", plus its test. - Generalize the Windows behavior wording to "switches the IME to English (ASCII) input" in the config-reference.json entry and the model.rs doc comment, and state that Windows support is currently limited to the Korean IME. - Add a :::caution aside noting the Korean-IME-only limitation to the en/ja/zh preview docs, keeping the three translations in sync. refs #1802 * fix: warn when prefix IME toggle injection is incomplete SendInput can queue fewer events than requested (for example when blocked by UIPI), which would otherwise leave the IME silently stuck in ASCII or native mode. Log a warning with the sent and expected counts so the failure is diagnosable. refs #1802 * fix: guard prefix IME restore and correct open-status naming Address maintainer review on the Windows prefix ASCII switch: - Restore only when safe: store the foreground window at switch time and, before toggling back, require that the same window is still focused and the IME is still in English. This stops restore from toggling another application or overriding a manual return to Hangul during prefix mode. - Report injection success from send_vk_tap and only arm restoration when the initial toggle landed; on a partial injection retry the dropped key-up so a key is not left logically held down. The injection policy is split into send_vk_tap_with(inject) so the success, partial, and failure branches are unit-tested without the real SendInput. - Correct the WM_IME_CONTROL sub-command naming: 0x0005 is IMC_GETOPENSTATUS (IME open state), not IMC_GETCONVERSIONMODE. Behavior is unchanged; the constant, comments, and tests now describe the open-status read. refs #1802 * fix: bound IME open-status read with a timeout The prefix IME switch reads IMC_GETOPENSTATUS via WM_IME_CONTROL, which crosses into the terminal-emulator process. A plain SendMessageW would block herdr's client thread until that process responds, indefinitely if it hangs. Read through SendMessageTimeoutW with SMTO_ABORTIFHUNG and a short timeout instead; on timeout the switch is skipped and restore does nothing, so a hung host process can no longer freeze prefix-mode entry or exit. refs #1802 * fix: preserve windows ime restoration after partial injection refs #1802 --------- Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-07-18fix: report unknown config keys (#1575)akbash
* fix: report unknown config keys refs #1573 * fix: preserve mixed config warning context refs #1573 --------- Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-07-18feat: add optional workspace name promptOgulcan Celik
2026-07-16feat: configure collapsed sidebar startup stateOgulcan Celik
refs #1463
2026-07-16feat: add configurable sidebar token stylesOgulcan Celik
2026-07-15feat: add floating popup panesOgulcan Celik
refs #1125
2026-07-14feat: configure sidebar entry gapsOgulcan Celik
2026-07-13feat: add configurable sidebar metadata tokensOgulcan Celik
2026-07-12fix: clarify config fallback diagnosticsOgulcan Celik
2026-07-11feat: add copy-on-select settingOgulcan Celik
2026-07-11feat: add maki agent support (#1302)Tony Solomonik
* feat: add maki detection support Maki always draws a one-line status bar at the bottom of the screen, so the manifest reads just that row: a braille spinner before the `[BUILD]`/`[PLAN]`/`[BASH]` mode label means working, the bare label means idle. Blocked states come from the panels that replace the input box, the `Permission Required` dialog with its `y Allow`/`n Deny` hint rows and the `Plan complete` form. Maki emits no OSC title or progress, so these screen rules are the only evidence. Also wires `maki` through process-name identification, per-agent sound overrides, and the website manifest catalog. * docs: stage maki detection docs
2026-07-10fix: improve config diagnostic deliveryOgulcan Celik
2026-07-10fix: stop windows installer from rewriting configOgulcan Celik
refs #1162
2026-07-08fix: match shifted indexed number keybindsOgulcan Celik
refs #1184
2026-07-04feat: add mastracode integration (#788)Ward Peeters
* feat: add mastracode integration refs #337 Co-authored-by: Mastra Code (openai/gpt-5.5) <noreply@mastra.ai> Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-07-02fix: draw host cursor on windowsOgulcan Celik
refs #930
2026-06-30fix: reuse remote ssh connectionOgulcan Celik
refs #888
2026-06-30feat: hide single-tab tab rowOgulcan Celik
refs #448
2026-06-30feat: add hidden collapsed sidebar modeOgulcan Celik
refs #842
2026-06-29feat: generate socket protocol schemaOgulcan Celik
2026-06-22fix: let user keybinds displace defaultsOgulcan Celik
refs #747
2026-06-21fix: add configurable pane gapsOgulcan Celik
refs #271
2026-06-19fix: reanchor lifecycle hook generationsOgulcan Celik
refs #684
2026-06-18feat: add background update check togglesOgulcan Celik
refs #677
2026-06-18feat: sync theme with host appearanceOgulcan Celik
refs #675
2026-06-18fix: scope image paste shortcut to remoteOgulcan Celik
refs #647
2026-06-17feat: sort agent panel by priorityOgulcan Celik
refs #318
2026-06-15fix: support key-combo syntax for API send keys (#613)Dillon Mulroy
Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-06-15feat: add devin cli detection and restore support (#622)Eric Yue
* feat: add devin cli detection and restore support refs #606 * fix: keep devin integration session-only --------- Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-06-14fix: warn on unknown config sectionsOgulcan Celik
2026-06-14feat: add plugin v1 systemOgulcan Celik
Add manifest-driven plugin actions, event hooks, pane entrypoints, link handlers, and host APIs. Support plugin link, GitHub install, build commands, installed plugin registry, pane movement, runtime context, and plugin docs.
2026-06-08fix: improve windows pane behaviorOgulcan Celik
2026-06-07fix(update): keep windows installs on previewOgulcan Celik
2026-06-07feat: add native windows beta supportOgulcan Celik
2026-06-06feat: improve toast ergonomicsOgulcan Celik
refs #486
2026-06-05feat: add pane navigation controlsOgulcan Celik
refs #421 refs #330 related discussions: https://github.com/ogulcancelik/herdr/discussions/422 https://github.com/ogulcancelik/herdr/discussions/438 https://github.com/ogulcancelik/herdr/discussions/442
2026-06-03feat: switch input source during prefix mode (#434)sf-jin-ku
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>
2026-06-03fix: support legacy shifted letter keybindingsOgulcan Celik
refs #312