- [x] jj conflict resolution with ui akin to the diff viewer - [x] make selecting a file in the diff view file picker focus the after buffer instead of the before buffer - [x] improve the lsp hover floating window: - it should be taller - [x] add support for zig syntax highlighting - [x] add the `*` action from vim on word to highlights and searches in buffer in one action. - [x] diff view: improve word-diff highlighting - [x] diff view: show the function/class context that a change hunk belongs to. - inline scope labels with sticky continuation, chosen before implementation - each side uses its own syntax tree; scope changes within a hunk get separate labels - [x] diff view: annotate folder with checkmark if all items under given folder has been checked AND the folder is collapsed. - [x] diff view: automatically detect changes and update the view when relevant bookmarks move change ids (regards bookmark-based diff view; i.e., user selected at least one bookmark in the before/after picker) - [x] action to scroll viewport without having to move the cursor (like vim's `ctrl+e|u`). - [x] scroll viewport action (`ctrl+u|d`) scroll distance should be configurable. - [x] file picker file search should also be fuzzy (we should be able to use the same fuzzy implemented for diff view search, i believe) - [x] diff view: labels are currently attached also when scrolling the view port horizontally (such that e.g. a function name is not fully visible in the viewport), which is good, but it currently attaches at that line, thus pushing down the function by one line, which causes a one-line jump when scrolling horizontally. - horizontal labels overlay the row above the declaration without shifting source rows; hide the label on the first visible row to preserve the pane border. - [ ] diff view: github integration (code review) - add comments on a pr, add review comments at specific lines of files, request changes, approve pr, etc. - [ ] diff view: local review comments (same features as for github reviews) that allows review of local changes to deliver specific reviews to ai agents used for coding. - design question: would this require a server that the agent can interact with, or would local review files be fine? don't want to use server client stuff, if it would be easier and better to just use local files. - [ ] remove the diff palette polling fallback once a released Herdr fix delivers palette-ready DEC 2031 notifications, including palette-only changes with an unchanged light/dark preference. Related upstream issue: [herdrdev/herdr#4183](https://github.com/herdrdev/herdr/issues/4183). - verify that notification-triggered queries return fresh colors in Ghostty through Herdr before removal; retain startup, focus-regain, and notification-driven palette refresh. - [ ] pull a pr description and display it in a buffer: - open a selector that allows you to pick a pr from remote - selector should be searchable - selected pr description is opened in a separate buffer/tab. - open related pr description directly from diff view (should be able to figure out the relevant pr from the branch involved in the diff - if jj, then from tracked bookmark; if just git, then from branch) - [ ] sandboxed, revision-specific LSP analysis for historical diff states and historical tabs. - current limitation: immutable snapshot buffers still use the live repository as their LSP workspace; cross-file analysis can mix historical text with current disk contents. - lazily materialize the complete selected revision, including unchanged files, manifests, and project configuration; run a separate LSP instance rooted in that snapshot. - mount historical source read-only and provide isolated writable scratch directories for caches, indexes, and build output; keep historical navigation targets read-only. - enforce an OS-level sandbox on the LSP process and every child it spawns, including build scripts and procedural macros. A temporary checkout and read-only editor buffers are not security isolation. - deny access to the live checkout, home directory, credentials, and SSH agent; deny network access by default. Additional access or code-execution permissions require explicit approval. - fail closed: if these restrictions cannot be enforced, keep read-only viewing available but do not launch historical LSP analysis; never silently fall back to an unrestricted process. - retain the snapshot and analysis environment while historical views/tabs reference it; stop workers and clean up disposable storage after the final reference closes.