aboutsummaryrefslogtreecommitdiff
path: root/src/app/state.rs
AgeCommit message (Collapse)Author
2026-06-21fix: add configurable pane gapsOgulcan Celik
refs #271
2026-06-18feat: sync theme with host appearanceOgulcan Celik
refs #675
2026-06-17feat: sort agent panel by priorityOgulcan Celik
refs #318
2026-06-14test: harden pane identity regression coverageOgulcan Celik
2026-06-14test: add state invariants for refactor safetyOgulcan 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-13feat: add pane move api and cliOgulcan Celik
refs #299
2026-06-10feat: distribute agent detection manifestsOgulcan Celik
2026-06-08fix: improve windows pane behaviorOgulcan 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-02fix: return to bottom after copy mode exit (#410)Robin Gagnon
refs #398 Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-06-01fix: preserve linewise copy selection (#389)Robin Gagnon
refs #360 Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-06-01feat: add configurable right-click passthroughOgulcan Celik
refs #148
2026-05-31fix: confirm implicit worktree group closeOgulcan Celik
refs #369
2026-05-30fix: use login shells for macos panesOgulcan Celik
refs #350
2026-05-28feat: add pane copy modeOgulcan Celik
refs #231
2026-05-28fix: preserve live handoff terminal stateOgulcan Celik
2026-05-27feat: configure mobile width threshold (#317)kangal-bot
2026-05-26feat: show clipboard copy feedbackOgulcan Celik
2026-05-26feat: add global last-pane navigationOgulcan Celik
refs #287
2026-05-25feat: make focus-gain redraw configurableOgulcan Celik
refs #282
2026-05-24feat: persist pane history across restarts (#248)zhugehyuk
refs #217 Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-05-24feat: add session navigatorOgulcan Celik
refs #157
2026-05-23feat: configure new terminal cwdOgulcan Celik
2026-05-22feat: add git worktree workspace managementOgulcan Celik
refs #137
2026-05-22feat: add configurable mouse scroll linesOgulcan Celik
refs #236
2026-05-21refactor: separate server client boundariesOgulcan Celik
2026-05-21fix: keep cjk ime agent allow-list safeOgulcan Celik
refs #149
2026-05-21feat(experimental): add reveal_hidden_cursor_for_cjk_ime opt-in for CJK IME ↵ChihGodlee
tracking When the focused pane requests ?25l (cursor hidden) but paints its own cursor — common in TUIs like Claude Code, pi, and codex — macOS native input methods stop tracking the candidate-window position. CJK users (Chinese / Japanese / Korean) cannot see candidate windows follow as they type. Setting [experimental] reveal_hidden_cursor_for_cjk_ime = true exposes the focused pane's cursor anchor to the outer terminal regardless of the pane's hidden-cursor request, restoring IME tracking for CJK input. [experimental] cjk_ime_agents is an optional allow-list. When empty, the reveal applies to any focused pane. When non-empty (e.g. ["claude", "codex"]), the reveal only applies if the focused pane's detected agent matches one of the listed names. This lets users enable the workaround only for AI-agent TUIs that paint their own cursor, leaving plain shells and other programs untouched. Accepted names: pi, claude, codex, gemini, cursor, cline, opencode, copilot, kimi, kiro, droid, amp, grok, hermes. Unknown names are ignored. When the pane reports no cursor position (cursor_state returns None for some TUIs), the anchor falls back to the pane's top-left so a stable IME hint is always available. [experimental] cjk_ime_cursor_shape (default "steady_block") controls the DECSCUSR shape rendered for the revealed cursor; six variants are accepted: block, steady_block, underline, steady_underline, bar, steady_bar. Trade-off when enabled: a hardware cursor will be visible in the outer terminal for apps that hide the cursor without painting a replacement. Default false preserves the behavior set in 2c95071. Pair the reveal with cjk_ime_agents to scope it to specific TUIs. Manually verified on macOS 26.5 aarch64 with system Pinyin IME against Claude Code: candidate window tracks cursor with flag enabled, returns to anchored-at-start behavior with flag disabled. refs #149
2026-05-20fix: clarify keybinding conflict warningsOgulcan Celik
refs #154
2026-05-20feat: badge outdated integration updatesOgulcan Celik
2026-05-20feat: add keybinding v2Ogulcan Celik
refs #154 refs #201 refs #202 refs #219
2026-05-20feat: add configurable default shellOgulcan Celik
refs #196
2026-05-20feat: surface agent integrations in onboardingOgulcan Celik
2026-05-19feat: add hosted product announcementsOgulcan Celik
2026-05-18feat: configure sidebar min/max width via [ui] (#135)CHIH,GODLEE
* feat: configure sidebar min/max width via [ui] Expose the previously hardcoded MIN_SIDEBAR_WIDTH / MAX_SIDEBAR_WIDTH clamps as [ui] sidebar_min_width / sidebar_max_width. Defaults remain 18 / 36 so existing configs are unchanged. Hot-reload is wired through the existing [ui] block; reload re-clamps the live width to the new bounds so tightening takes effect immediately. Reject inverted bounds (min > max) at every entry point so a bad config can never reach u16::clamp(min, max), which panics: App::new falls back to defaults, and apply_live_config treats the whole [ui] section as invalid and returns a partial reload report. refs #132 * test: keep sidebar reload width within bounds refs #132 --------- Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-05-18feat: Support 16-bit terminal themes (#146)Zack Drach
Add a terminal theme that inherits the terminal default background and uses the host terminal's 16-color ANSI palette for UI colors. refs #140
2026-05-17feat: add selection autoscroll and fix stale selection on transitions (#129)leeeanh
When dragging to select text near pane edges, a 30ms recurring tick now continues scrolling and extending the selection while the mouse is idle. The autoscroll stops on MouseUp, key input, navigate action, cursor leaving the hot zone, scrollback boundary, missing metrics, or pane rect change. Also fixes pre-existing bugs where workspace/tab/pane transitions failed to clear selection state, which could cause stale selections to persist across views. Selection clearing on pane death is scoped to only the dying pane. Also fixes anchor_screen_pos returning pane-relative coordinates instead of screen coordinates, which caused false drag detection and spurious edge autoscroll on same-cell events when the pane has a non-zero origin. refs #128 Co-authored-by: leeanh <mac@macs-MacBook-Pro.local>
2026-05-17chore: rename fullscreen keybinding to zoomOgulcan Celik
2026-05-17feat: add direct terminal attach streamOgulcan Celik
2026-05-17refactor: extract terminal state and runtime from panesOgulcan Celik
2026-05-17feat: add homebrew update handlingOgulcan Celik
refs #127
2026-05-16feat: add immediate new tab optionOgulcan Celik
refs #123
2026-05-16feat: add scrollback editor keybindOgulcan Celik
refs #122
2026-05-15feat: add indexed keybind familiesOgulcan Celik
2026-05-15feat: add light theme variantsOgulcan Celik
2026-05-14feat: add tmux-style mouse capture configOgulcan Celik