Commit Graph

24 Commits

Author SHA1 Message Date
Ogulcan Celik 8375922c06 ci: run checks on macos 2026-05-12 15:05:36 +03:00
Ogulcan Celik 793f127e54 feat(remote): add network-efficient thin client transport
Add SSH stdio remote attach, negotiate terminal-ANSI render encoding, move blit encoding server-side for remote clients, and split control/render writer delivery for safer backpressure.

Fixes #76
2026-05-08 22:20:04 +03:00
Ogulcan Celik b0aa7b2cdd fix: preserve osc8 hyperlinks in client rendering
fixes #73
2026-05-07 21:48:50 +03:00
Ogulcan Celik 5a61ae2f9d feat: add status command 2026-04-27 22:54:02 +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 0b831c8627 feat: allow hook-reported custom agent labels 2026-04-16 22:17:09 +03:00
Ogulcan Celik 13fe950fe4 test: stabilize shell-based api and cli wrapper tests 2026-04-10 14:26:31 +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 a3ecb4e3b4 feat(api): expose done as agent status 2026-04-09 03:31:37 +03:00
Ogulcan Celik 4f6bdd8272 test: split socket lifecycle subscription coverage 2026-04-08 14:06:50 +03:00
Ogulcan Celik d33a4be830 test: re-enable stable socket api integration tests 2026-04-08 13:58:13 +03:00
Ogulcan Celik 25974892c7 fix: make pane run use bracketed-paste-aware send input 2026-04-07 23:22:57 +03:00
Can Celik 41dd733ca7 feat: finish ghostty pane backend integration 2026-04-05 01:23:06 +03:00
Ogulcan Celik 831894facf refactor: make workspace api ids stable 2026-04-04 01:50:34 +03:00
Ogulcan Celik 544c7ebebb feat: add tabs to socket api 2026-04-03 00:04:35 +03:00
Can Celik ca4270b31f feat: add authoritative pi hook integration 2026-04-01 19:32:26 +03:00
Ogulcan Celik 063ffc2b70 feat: show release notes after updates 2026-04-01 02:26:03 +03:00
Ogulcan Celik e97413d8fa fix: avoid codex false positives from macos process env parsing 2026-04-01 02:01:35 +03:00
Ogulcan Celik e857710d73 fix: align pane scrolling with tmux and ghostty 2026-03-31 23:03:11 +03:00
Ogulcan Celik 7c8f12e8f2 feat: poll for updates and show toast notifications 2026-03-31 14:23:14 +03:00
Ogulcan Celik bf6b6d779a feat(api): use compact public workspace and pane ids 2026-03-29 19:54:52 +03:00
Ogulcan Celik a5847a8039 feat(cli): add workspace and pane management commands 2026-03-29 19:29:23 +03:00
Ogulcan Celik 8b7848aac3 feat(api): add socket subscriptions and lifecycle events 2026-03-29 17:20:53 +03:00
Ogulcan Celik fd1e3b8b05 feat: add initial socket api for workspace and pane control
add unix socket request/response api scaffolding

implement initial workspace and pane commands:
- ping
- workspace.list
- workspace.get
- workspace.create
- pane.list
- pane.get
- pane.read
- pane.send_text
- pane.send_keys
- pane.wait_for_output

improve pane read semantics:
- visible trims trailing blank viewport rows
- recent reads from parser scrollback/current screen
- wait_for_output returns matched snapshot plus matched_line

add real subprocess integration tests for socket api
2026-03-29 04:23:22 +03:00