Repository navigation
Conversation
pulkitxm
force-pushed
the
claude/quinjet-feedback-queue
branch
from
August 29, 2026 14:09
e97b47c to
2762e94
Compare
pulkitxm
force-pushed
the
claude/quinjet-feedback-queue
branch
from
August 29, 2026 14:15
2762e94 to
24fc6e5
Compare
pulkitxm
marked this pull request as ready for review
August 29, 2026 14:43
An author coming back to a pull request reads three views to find what is outstanding: the conversation for threads, the checks for what failed, and the review verdicts for who is blocking. None of them says which of those is waiting on them. `quinjet pr feedback` is one queue out of all three, ordered by how directly each row stands between the pull request and merging, and with an owner column computed against the authenticated viewer: `you` when the newest word is somebody else's, `others` when it is yours, `nobody` for a check finding. A changes-requested verdict you wrote yourself is `others`, because you are waiting on the author rather than on yourself. Blocking and advisory are kept apart for the same reason the merge gate keeps blockers and notes apart: a queue where everything looks equally urgent is a list. Every row also carries the command that resolves it, so a caller does not have to know the verb map. `quinjet pr suggestions` reads the suggestion blocks reviewers left and applies them to the working tree, and `quinjet pr reviews suggest` writes one without having to remember the fence. Applying is where the care went. A suggestion's line numbers only mean something against the commit it was written for, so four things are checked before anything is written: the worktree is at the pull request's head, the files have no uncommitted changes, no two suggestions overlap, and every range is inside its file. The head check happens before the plan is worked out, so a caller on the wrong branch is told which branch to check out rather than that there is nothing to apply. Files are written all or none. Every skip is reported with its reason. A suggestion that quietly did not apply is worse than one that says why. And a replacement containing a fence is refused rather than escaped: a rewritten suggestion is not the one the author wrote, and posting it would put words in their mouth. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011n3Xp6dLNibg3gCBN9y5ij
pulkitxm
force-pushed
the
claude/quinjet-feedback-queue
branch
from
August 29, 2026 14:57
24fc6e5 to
e550842
Compare
This was referenced Aug 29, 2026
Contributor
|
This pull request has had no activity for 45 days. Comment or push to keep it open, otherwise it closes in 14 days. |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #106. Review only the top commit.
An author coming back to a pull request reads three views to find what is outstanding: the conversation for threads, the checks for what failed, and the review verdicts for who is blocking. None of them says which of those is waiting on them.
Decisions worth reviewing
The
ownercolumn is what makes one queue serve both an author and a reviewer. It is computed against the authenticated viewer:youwhen the newest word is somebody else's,otherswhen it is yours,nobodyfor a check finding. A changes-requested verdict you wrote yourself isothers, because you are waiting on the author rather than on yourself.Blocking and advisory stay apart, for the same reason the merge gate keeps blockers and notes apart: a queue where everything looks equally urgent is a list. Rows are ordered by how directly they stand in the way, so the first row is always the most direct obstacle and the order is stable across reads.
Every row carries the command that resolves it, so a caller does not have to know the verb map.
--fullprints it.Filters narrow rows and counts together, so the summary always describes what was printed and
--exit-codereads the filtered counts.--no-checksdoes not read the annotations at all.Applying a suggestion is where the care went. A suggestion's line numbers only mean something against the commit it was written for, so four things are checked before anything is written:
Files are written all or none; a failure part-way restores what was already written. Without
--messagethe tree is left changed and unstaged; with it, exactly the files the plan touched are staged, so an unrelated edit elsewhere stays out of the commit.Every skip is reported with its reason. A suggestion that quietly did not apply is worse than one that says why.
A replacement containing a fence is refused rather than escaped. It would close the suggestion fence early and land the rest as prose. A rewritten suggestion is not the one the author wrote, and posting it would put words in their mouth on somebody else's pull request.
Tests
--all, both refusals with the file verified unchanged, the unknown-id hint, posting a suggestion with the fence in the payload, and the fence refusal.Notes
session.rsandpull_request.rscrossed the 500-line limit again; both are split by concern (session/actions.rs,session/feedback.rs,session/workspaces.rs,pull_request/prepared.rs).git::github::tests::operations::discovers_distinct_fetch_and_push_repositories_for_each_remotefails in my sandbox onmaintoo (global config rewritesgit@github.com:to HTTPS). Unrelated.Docs:
feedback.md,suggestions.md,review-suggest.md.🤖 Generated with Claude Code
https://claude.ai/code/session_011n3Xp6dLNibg3gCBN9y5ij
Generated by Claude Code