29 lines
4.1 KiB
Markdown
29 lines
4.1 KiB
Markdown
- [ ] `ctrl+i` seems to be highjacked in the diff view, so jumping forward isn't possible (only backwards is). instead, `ctrl+i` seems to cycle the panes which the `tab` key already does, so it's really not necessary to highjack `ctrl+i` too.
|
|
- this should be fixed.
|
|
- [ ] diff view: local review UX first, independently of GitHub integration, for reviewing local changes and delivering feedback to coding agents.
|
|
- add comments at the caret or on selected line ranges on either diff side; compose/edit with normal editor interaction, delete drafts, navigate comments, and open a review overview.
|
|
- start with gutter markers and a focused comment panel rather than inserting comment text into source rows; iterate on the interaction before adding remote operations.
|
|
- support a review summary and local verdict: Looks good / Changes requested.
|
|
- save and reopen reviews using local files that coding agents can read; no server or client/server protocol.
|
|
- anchor comments to immutable revision IDs, paths, sides, and source line ranges, never screen coordinates or mutable file indices.
|
|
- preserve original anchors and mark comments stale when the reviewed snapshot no longer matches; defer automatic reanchoring.
|
|
- [ ] diff view: GitHub code review integration after the local review UX is usable.
|
|
- publish local reviews explicitly: general PR comments, inline line/range comments, review summaries, approval, and requests for changes.
|
|
- preserve explicit PR identity and reviewed commit IDs; validate anchors against GitHub's PR diff and recheck the PR head before submission.
|
|
- keep authentication, network requests, publishing, and remote thread synchronization out of the local UX work; treat timed-out writes as unknown outcomes rather than automatically retrying.
|
|
- define follow-on scope for reading/replying to remote threads, editing/deleting published comments, and resolving threads.
|
|
- [ ] 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. |