aboutsummaryrefslogtreecommitdiff
path: root/src/app/mod.rs
AgeCommit message (Collapse)Author
2026-04-10fix: forward pane osc 52 clipboard writesOgulcan Celik
2026-04-10fix: forward OSC 52 clipboard writes from pane childrenOthavio Quiliao
herdr embeds `libghostty-vt` as a headless terminal emulator per pane, and its readonly stream handler silently drops `.clipboard_contents` actions. As a result, any child process that writes OSC 52 to copy to the system clipboard (for example Amp, which enables mouse reporting and handles selection internally) has its sequence swallowed before it can reach the host terminal — the user sees the child's "copied" toast but the system clipboard is never updated. This change adds an `Osc52Forwarder` that observes raw PTY bytes in `process_pty_bytes`, reconstructs completed `ESC ] 52 ; (c|) ; <base64> (BEL|ST)` sequences (write/clear only — queries are dropped since herdr has no path to reply to the child), and returns them through the existing `ProcessBytesResult`. The reader task forwards the bytes to the main loop via a new `AppEvent::ClipboardWrite`, which is written to stdout from `handle_internal_event`. Routing through the main loop keeps stdout writes serialized with `terminal.draw` and the other existing host-terminal emitters, so the new forwarder does not race with rendering. Existing herdr-native selection (mouse drag in panes without mouse reporting) is unchanged and still writes through `selection::write_osc52`.
2026-04-10feat(tabs): add overflow scrolling and drag reorderOgulcan Celik
2026-04-09feat(api): return root panes from workspace and tab creationOgulcan Celik
2026-04-09feat(cli): support labels when creating tabs and workspacesOgulcan Celik
2026-04-09merge: reload keybindsOgulcan Celik
2026-04-09feat: add manual reload keybinds actionOgulcan Celik
2026-04-09feat(api): expose done as agent statusOgulcan Celik
2026-04-08feat: add debounced session autosaveOgulcan Celik
2026-04-08feat: add resizable sidebar sectionsOgulcan Celik
2026-04-07fix: make pane run use bracketed-paste-aware send inputOgulcan Celik
2026-04-07fix: animate all-workspaces agent panel spinnersOgulcan Celik
2026-04-07docs: clarify herdr pane split and wait output usageOgulcan Celik
2026-04-07fix: use byte-based pane scrollback limitOgulcan Celik
2026-04-06fix: keep sidebar width stable and persist user resizeOgulcan Celik
2026-04-06feat: add all-workspaces scope to agent panelOgulcan Celik
2026-04-06fix: defer new tab creation until dialog confirmOgulcan Celik
2026-04-06fix(ui): make sidebar spaces list scrollableOgulcan Celik
2026-04-05refactor: remove vt100 backend and make ghostty defaultCan Celik
2026-04-05fix: match ghostty pane default colors to host terminal themeCan Celik
2026-04-05feat: forward ghostty pane focus events on focus changesCan Celik
2026-04-05feat: finish ghostty pane backend integrationCan Celik
2026-04-04feat: add mouse drag reordering for workspacesOgulcan Celik
2026-04-04refactor: make workspace api ids stableOgulcan Celik
2026-04-03fix: scope repeat events to terminal modeOgulcan Celik
2026-04-03feat: improve update-ready and release notes uxOgulcan Celik
2026-04-03feat: reuse rename modal for new tab namingOgulcan Celik
2026-04-03fix onboarding spacing and preserve pane state transitionsOgulcan Celik
2026-04-03fix workspace identity and tab-aware notificationsOgulcan Celik
2026-04-03feat: add tabs to socket apiOgulcan Celik
2026-04-02feat: add direct pane navigation keybindsOgulcan Celik
2026-04-02refactor popup menu and selection list interactionsOgulcan Celik
2026-04-02refactor: unify popup action semantics and geometryOgulcan Celik
2026-04-02feat: refactor keybind discoverability surfacesOgulcan Celik
2026-04-02feat: add tabs within workspacesOgulcan Celik
2026-04-01feat: add authoritative pi hook integrationCan Celik
2026-04-01feat: show release notes after updatesOgulcan Celik
2026-03-31feat: poll for updates and show toast notificationsOgulcan Celik
2026-03-31fix: terminate pane sessions on closeOgulcan Celik
2026-03-31fix: restore fast spinner animationOgulcan Celik
2026-03-31fix: make app rendering event-drivenOgulcan Celik
2026-03-30refactor app loop and improve key capture metadataOgulcan Celik
2026-03-30refactor: rename agent states to working and blockedOgulcan Celik
2026-03-30refactor keyboard protocol parsing and forwardingOgulcan Celik
2026-03-30feat: add manual sidebar resizingOgulcan Celik
2026-03-30feat: show upstream status in workspace sidebarOgulcan Celik
2026-03-29add mouse-driven popup interactionsOgulcan Celik
2026-03-29fix popup rendering and settings theme flowOgulcan Celik
2026-03-29refactor: two-section sidebar with agent detail panel, theme system with 9 ↵Ogulcan Celik
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-29feat(api): use compact public workspace and pane idsOgulcan Celik