Cancel in-flight picker fetches when pickers close #721
Labels
No labels
bug
documentation
duplicate
enhancement
fugitive
good first issue
help wanted
invalid
question
v0.1.0
v0.2.0
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
barrettruth/forge.nvim#721
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Status: WIP, but the broad direction is clear. The implementation still needs the usual small design pass before code.
Problem
Long-running picker fetches cannot currently be interrupted by closing/aborting the picker. On large repositories, opening a streamed picker such as PRs can leave the user stuck waiting for the backing CLI request to finish even after pressing
<c-c>.The current picker lifecycle only marks stale results as ignorable. It does not stop the underlying process:
lua/forge/picker/session.luastarts picker requests withvim.system(...)and discards the returned process handle.picker_session.invalidate(key)increments an epoch and clearsinflight, but it cannot kill the runninggh/glab/teaprocess.fzf-luapicker abort/close exits the picker UI, but forge.nvim owns the forge CLI process and must cancel it explicitly.User impact
<c-c>does not reliably feel like cancel from the user point of view.Affected surfaces
This should cover every picker request path that goes through
forge.picker.session, including:request_json/pick_jsonProposed direction
vim.systemprocess handle in picker session state alongside the epoch/inflight metadata.fzf-luawinopts.on_closefor forge pickers that stream async content.Acceptance criteria
no_hide/no_resumebehavior remains intact.Non-goals