aboutsummaryrefslogtreecommitdiff
path: root/src/api/schema.rs
AgeCommit message (Collapse)Author
2026-09-01refactor: render the shell in the client (#3487)Can Celik
* feat: add opt-in client-rendered shell * feat: add client-owned shell mouse controls * feat: complete client-owned shell chrome * feat: add client-owned shell settings and notifications * feat: run client shell custom commands * feat: render popup terminals in client shell * feat: add client-owned scrollback and copy mode * fix: preserve client worktree trust defaults * feat: render startup diagnostics in client shell * feat: render onboarding in client shell * feat: render product announcements in client shell * feat: render release notes in client shell * feat: render mobile switcher in client shell * feat: render kitty graphics in client shell * fix: preserve client shell lifecycle coherence * refactor: route client shell commands through endpoint connections * refactor: make the client-rendered shell the default * refactor: remove monolithic launch mode * refactor: complete client-rendered shell cutover * perf: retain client pane surface updates * perf: scale retained pane surface updates * perf: remove remote pane input latency * test: make client shell checks platform-independent * fix: prevent client timer starvation * test: fix client shell platform gates * test: accept retained surfaces in cross-area checks * test: make client mode assertions platform-neutral * fix: badge only outdated integrations
2026-08-25fix: require explicit workspace group close (#3206)akbash
refs #2874 Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-08-09feat(graphics): add direct pane frame streaming (#2523)Can Celik
* feat(graphics): add direct pane frame streaming * feat(graphics): expose pane visibility * test(graphics): preserve legacy terminal image output * fix(graphics): harden streaming lifecycle * fix(input): preserve mouse releases outside panes
2026-08-08feat(input): add per-pane right-click routing (#2504)Can Celik
2026-07-26fix: improve sidebar worktree hierarchy and reordering (#1873)Can Celik
* fix: clarify sidebar worktree hierarchy refs #1694 * feat: reorder worktree groups as a unit refs #1694
2026-07-20feat: add plugin-driven agent views and startup hooksOgulcan Celik
2026-07-19feat: make agent automation a first-class cli primitiveOgulcan Celik
2026-07-17feat: harden named agent cli workflowsOgulcan Celik
refs #1525
2026-07-15feat: add floating popup panesOgulcan Celik
refs #1125
2026-07-15feat: add isolated pane graphics streamingOgulcan Celik
2026-07-13feat: add configurable sidebar metadata tokensOgulcan Celik
2026-06-29feat: generate socket protocol schemaOgulcan Celik
2026-06-29feat: add session snapshot apiOgulcan Celik
2026-06-29refactor: route tui mutations through runtime authorityOgulcan 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-12fix: stabilize public pane and tab idsOgulcan Celik
refs #569
2026-06-10feat: distribute agent detection manifestsOgulcan Celik
2026-06-09feat: update agent lifecycle integrationsOgulcan Celik
2026-06-08feat: add cursor agent cli integration for session restore (#506)udirom
Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-06-06feat: improve toast ergonomicsOgulcan Celik
refs #486
2026-06-06feat: expose pane zoom apiOgulcan Celik
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-04feat: add droid integrationOgulcan Celik
2026-06-04feat: add kimi code cli integration (#463)qer
* feat: add kimi code cli integration refs #431 * fix: improve kimi code screen detection refs #431
2026-06-02feat: make claude codex opencode hooks session-onlyOgulcan Celik
2026-06-02feat: add github copilot cli integration (#386)Lane
* feat: add github copilot cli integration refs #232 * docs: restore 0.6.5 changelog and document copilot hook flow * test: cover copilot camelcase hook payloads --------- Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-05-29feat: expose foreground cwd in pane infoOgulcan Celik
refs #345
2026-05-28feat: expose agent session refs in apiOgulcan Celik
2026-05-27feat: add Qoder CLI integration (#309)Coder Wayne
* feat: add qodercli agent integration Recognize qodercli as an agent in herdr panes, with basic Idle/Working/ Blocked screen-state detection mirroring the existing claude / codex patterns. Adds an IntegrationTarget::Qodercli variant, install_target wiring for shell hooks under src/integration/assets/qodercli/, the herdr integration install qodercli CLI surface, and sound-override coverage so qodercli notifications follow the same routing rules as other agents. refs #308 * fix: detect qodercli permission required as blocked refs #308 * fix: detect qodercli ask-user prompt as blocked refs #308 * refactor: extract has_qodercli_blocked_prompt helper aligning detect_claude refs #308 * fix: tighten qodercli working state detection Combine spinner-row strictness and explicit cancel-hint matching, and stop matching the bare word 'working'. This avoids false positives when narrative output (logs, commit messages, Markdown) contains the word 'working' or when a stale braille glyph is sitting in the scrollback from a previous frame. - has_qodercli_spinner_row: require row-start braille glyph + space + alphabetic char so only an active spinner row triggers Working. - has_qodercli_working_hint: match '(esc to cancel,' as a positive signal that survives spinner masking (e.g. when a hook icon replaces the spinner glyph). refs #308 * fix: short-circuit qodercli press-again banners to idle refs #308 * fix: detect qodercli AskUser dialog by its 'Asking User' title refs #308 * feat: recognize qodercli, qoderclicn, qoder, qodercn process names Map qodercli, qoderclicn, qoder, and qodercn process names all to the Qodercli agent. Covers both international (qodercli/qoder) and CN (qoderclicn/qodercn) Qoder CLI binary names. refs #308 * feat: register qodercli hook in qoder settings.json with stdin payload Address the integration-layer feedback on #308: - `herdr integration install qodercli` now writes the bundled hook into ~/.qoder/hooks/herdr-agent-state.sh AND registers it in ~/.qoder/settings.json under the schema documented at https://docs.qoder.com/zh/cli/hooks (and confirmed against the packages/core/src/hooks/types.ts type definitions in qodercli's own source tree). The hooks object is keyed by event name — SessionStart / UserPromptSubmit / PreToolUse / PermissionRequest / Stop / SessionEnd — with each entry holding a matcher and a list of `{ type: "command", command, timeout }` invocations, mirroring how install_claude already wires claude code's settings.json. - The bundled assets/qodercli/herdr-agent-state.sh now reads the hook payload from stdin (per HookInput in qodercli's types.ts: session_id, transcript_path, cwd, hook_event_name, agent_id, ...). No environment variable is consulted to identify the event; SubagentStop and subagent release events return early so a recap or away-summary frame cannot revive an idle pane, mirroring assets/claude/herdr-agent-state.sh. - uninstall_qodercli reverses the same set of entries while preserving any foreign hook entries the user may have configured by hand. - Tests cover write / idempotency / uninstall-preserves-others and lock the stdin contract via a bundled-asset assertion. refs #308 --------- Co-authored-by: coderwayne <jlu1318079810@163.com> Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-05-26fix: deliver agent status subscriptions from event hubOgulcan Celik
2026-05-26feat: add pane metadata reportingOgulcan Celik
refs #36
2026-05-25feat: hand off ptys during updatesOgulcan Celik
2026-05-23feat: restore agent sessionsOgulcan Celik
refs #233
2026-05-23feat: add worktree cli and socket apiOgulcan Celik
2026-05-23feat: add omp integrationOgulcan Celik
2026-05-19feat: support hermes agent integrationOgulcan Celik
refs #144
2026-05-17feat: add agent start for server-owned terminalsOgulcan Celik
2026-05-17feat: add terminal identity and agent cli facadeOgulcan Celik
2026-05-16feat: add hook-owned custom agent status labelsOgulcan Celik
2026-05-15fix: forward pane cursor shapeOgulcan Celik
fixes #116
2026-05-13test: update protocol fixturesOgulcan Celik
2026-05-11feat: add optional pane border labelsOgulcan Celik
2026-05-11fix: stabilize integration agent state reportsOgulcan Celik
2026-05-09feat: add ansi pane read formatOgulcan Celik
2026-05-08feat(remote): add network-efficient thin client transportOgulcan Celik
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-07fix: preserve osc8 hyperlinks in client renderingOgulcan Celik
fixes #73
2026-04-27feat: add status commandOgulcan Celik
2026-04-26feat: add live config reloadOgulcan Celik
2026-04-21feat: add persistent server-client sessionsCan Celik
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