aboutsummaryrefslogtreecommitdiff
path: root/src/platform/macos.rs
AgeCommit message (Collapse)Author
2026-07-22refactor: simplify macos input source ownershipOgulcan Celik
replaces contributions from sf-jin-ku
2026-07-17feat: harden named agent cli workflowsOgulcan Celik
refs #1525
2026-07-16feat(macos): support agent environment hintsOgulcan Celik
refs https://github.com/ogulcancelik/herdr/discussions/679
2026-07-09fix: use drawn cursor by default in wslOgulcan Celik
refs #930
2026-07-05fix: support custom command keybindings on windowsOgulcan Celik
refs #1041
2026-07-05fix: switch prefix ASCII input source on the foreground client (#1016)ppggff
* 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>
2026-07-02fix: open scrollback editor on windows without shOgulcan Celik
refs #914
2026-06-10fix: support paste in modal inputsOgulcan Celik
refs #302
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-05-29feat: expose foreground cwd in pane infoOgulcan Celik
refs #345
2026-05-27fix: raise macos server fd limitOgulcan Celik
refs #327
2026-05-26feat: open pane links with ctrl-clickOgulcan Celik
refs #307
2026-05-26fix: reduce idle agent checker CPUOgulcan Celik
refs #300
2026-05-23feat: add state detection heuristics for GitHub Copilot CLI (#256)LaneBirmingham
* 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>
2026-05-21fix: avoid agent detection from runtime argumentsOgulcan Celik
refs #238
2026-05-21refactor: separate server client boundariesOgulcan Celik
2026-05-20fix: cap clipboard image readsOgulcan Celik
2026-05-20fix: bridge remote clipboard image pasteOgulcan Celik
refs #205
2026-05-15fix: remove macos notification icon handlingOgulcan Celik
2026-05-15fix: improve macos system notificationsOgulcan Celik
2026-05-15feat: add system toast deliveryOgulcan Celik
2026-05-12ci: run checks on macosOgulcan Celik
2026-05-12fix: detect macos foreground jobs by process groupOgulcan Celik
fixes #100
2026-05-06fix: clear native agent detection after shell returnsOgulcan Celik
fixes #66
2026-04-11fix: prefer native clipboard tools over osc52 fallbackOgulcan Celik
2026-04-01fix: avoid codex false positives from macos process env parsingOgulcan Celik
2026-03-31fix: terminate pane sessions on closeOgulcan Celik
2026-03-28feat: add per-agent sound overridesOgulcan Celik
2026-03-28fix wrapped foreground job agent detectionOgulcan Celik
2026-03-27fix: use KERN_PROCARGS2 for macOS process name resolutionOgulcan Celik
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.
2026-03-27initial releaseOgulcan Celik
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