Commit Graph
37 Commits
Author SHA1 Message Date
Ogulcan Celik 4001fd2ec8 feat: improve toast ergonomics
refs #486
2026-06-06 17:42:38 +03:00
Ogulcan Celik b751d102f1 feat: add preview update channel 2026-06-02 21:48:02 +03:00
Ogulcan Celik 8df1639048 fix: use login shells for macos panes
refs #350
2026-05-30 01:55:36 +03:00
kangal-bot 858c36974b feat: configure mobile width threshold (#317) 2026-05-27 15:09:31 +03:00
Ogulcan Celik 09d9ddde97 fix: preserve local keybindings in remote sessions 2026-05-23 02:30:25 +03:00
Ogulcan Celik 3de6ea7999 feat: configure new terminal cwd 2026-05-23 00:32:46 +03:00
Ogulcan Celik a9ff4012bd feat: add configurable mouse scroll lines
refs #236
2026-05-22 00:12:53 +03:00
Ogulcan Celik 06bcd06a17 feat: use local keybindings for remote attach 2026-05-21 15:17:37 +03:00
Ogulcan Celik 836fd7e585 feat: add keybinding v2
refs #154
refs #201
refs #202
refs #219
2026-05-20 18:55:41 +03:00
Ogulcan Celik 58842017a2 feat: add kind star requests 2026-05-19 03:59:35 +03:00
CHIH,GODLEEandOgulcan Celik 3189ede2b9 feat: configure sidebar min/max width via [ui] (#135)
* 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-18 15:27:43 +03:00
Ogulcan Celik 34df89ae65 fix: persist agent panel scope in config 2026-05-06 22:53:56 +03:00
Ogulcan Celik 3d1ef155bf feat: add live config reload 2026-04-26 02:07:33 +03:00
Ogulcan Celik 4b482f37a1 feat: add terminal-delivered client notifications 2026-04-22 17:01:25 +03:00
Can Celik 3397e1ce29 feat: add persistent server-client sessions
Make herdr persistent by default.

   Launching herdr now starts or reattaches to a background session
   server. Clients can detach and reattach while panes and agent
   processes keep running. Session mode now supports multi-client attach,
   auto-detect startup, and a thin-client/headless-server split.

   This also refactors the large app, ui, input, pane, config,
   workspace, and persistence modules into smaller focused submodules,
   while preserving behavior and colocating tests with the code they
   exercise.

   Upgrade notes:
   - persistence mode is now the default
   - in-app quit detaches the current client instead of stopping the server
   - use `herdr server stop` to stop the background session
   - use `--no-session` for the old single-process behavior
   - default socket paths now live under the config directory
2026-04-21 16:30:04 +03:00
Ogulcan Celik edaa3a1a09 fix unify app key normalization for enhanced keyboard reporting 2026-04-14 01:04:51 +03:00
Ogulcan Celik 1535a7117a feat add custom shell and pane keybind commands 2026-04-13 18:49:37 +03:00
Ogulcan Celik 90e51f704b feat: support transparent panel chrome 2026-04-11 23:53:21 +03:00
Ogulcan Celik b5b61c1484 merge: reload keybinds 2026-04-09 04:07:14 +03:00
Ogulcan Celik 74a6161bff feat: add manual reload keybinds action 2026-04-09 04:06:02 +03:00
Ogulcan Celik a51902ede9 fix: use byte-based pane scrollback limit 2026-04-07 00:04:32 +03:00
Ogulcan Celik 55c138263e feat: support custom mp3 notification sound overrides 2026-04-04 02:57:52 +03:00
Ogulcan Celik 5ed262a43a fix: isolate debug runtime paths and block duplicate herdr instances 2026-04-03 17:11:20 +03:00
Ogulcan Celik 290a57e333 feat: add direct pane navigation keybinds 2026-04-02 23:25:10 +03:00
Ogulcan Celik 61204f7d0c feat: refactor keybind discoverability surfaces 2026-04-02 23:24:55 +03:00
Ogulcan Celik b695adee60 feat: add tabs within workspaces 2026-04-02 23:24:46 +03:00
Ogulcan Celik 9badd642b7 fix popup rendering and settings theme flow 2026-03-29 22:48:02 +03:00
Ogulcan Celik 101de0ce45 refactor: two-section sidebar with agent detail panel, theme system with 9 built-in themes
sidebar layout:
- top section: workspace list with accent bar, git branch, state dots
- bottom section: agent detail panel sorted by urgency with braille spinners
- active workspace always highlighted (subtle bg in terminal mode, brighter in nav)
- palette-driven colors throughout (no hardcoded colors in ui.rs)

theme system:
- 9 built-in themes: catppuccin (default), tokyo-night, dracula, nord, gruvbox, one-dark, solarized, kanagawa, rose-pine
- config: theme.name selects base, theme.custom overrides individual tokens
- 15 color tokens: accent, surface0/1, overlay0/1, text, subtext0, mauve, green, yellow, red, blue, teal, peach
- legacy ui.accent still works for backward compatibility

infrastructure:
- Palette struct on AppState, ready for future theme system extensions
- git_branch() reads .git/HEAD for branch detection
- PaneDetail struct with urgency sorting for agent panel
- spinner_tick counter for braille animation (~8fps on 60fps render loop)
2026-03-29 20:44:34 +03:00
Ogulcan Celik 60baa765d9 feat: block nested herdr instances by default 2026-03-28 22:17:14 +03:00
Ogulcan Celik fa1adf1a26 feat: add onboarding and toast notification preferences 2026-03-28 21:13:41 +03:00
Ogulcan Celik d05ba2ea9f feat: restore workspace numbers in expanded sidebar 2026-03-28 16:38:04 +03:00
Ogulcan Celik ebd8007558 add config diagnostics and split configuration docs 2026-03-28 15:44:31 +03:00
Ogulcan Celik 7380e0ed16 refactor workspace identity and configurable navigate actions 2026-03-28 15:28:13 +03:00
Ogulcan Celik f18f26d1c0 fix prefix key defaults and binding parsing 2026-03-28 04:29:37 +03:00
Ogulcan Celik f8c4d6a5f1 feat: add per-agent sound overrides 2026-03-28 00:32:35 +03:00
Ogulcan Celik 0403775fd2 feat: sound notifications for agent state changes
play a chime when an agent finishes work and an alert when one needs
input. only triggers for background workspaces. configurable via
sound = true/false under [ui] in config.
2026-03-27 23:53:37 +03:00
Ogulcan Celik a57b97285c initial release
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
2026-03-27 21:37:05 +03:00