Repository navigation
Sync pstack-claude 0.9.81 (t3-pstack 1.0.9) - #7
Merged
Merged
Conversation
* test(poteto-mode): catch stale base ref OIDs * fix(poteto-mode): read current base ref targets * style(poteto-mode): format base ref regression * refactor(watch-pr): unwrap GraphQL once and drop the gh pr view leftovers GhGitHubReader reads every GraphQL envelope through one graphql() method, which checks errors and returns data.repository.pullRequest for all four queries. Before, only the PR facts query checked errors. An open PR's landing revision narrows the parsed facts with text() instead of re-parsing a copy of the raw response under the old baseRefOid key. ship-pr inspect builds its revision from the GraphQL fields directly. parseLandingRevision parses the saved record only, so its optional context parameter goes. The empty-string review decision came from gh pr view, which the facts reader no longer runs. GraphQL returns null, and an empty string is rejected like any other unknown value. The transport fake's pr view branch and the baseRefOid decoys in shared fixtures go with it. --------- Co-authored-by: mshk <29593+mshk@users.noreply.github.com> Co-authored-by: Michael Denyer <97485362+michael-denyer@users.noreply.github.com>
* fix(shipping): inspect terminal PRs after base deletion * fix(pi): retry orphan cleanup after inspection recovers
# Conflicts: # .claude-plugin/marketplace.json # CHANGES.md # VERSION # package.json # plugins/pstack/.claude-plugin/plugin.json # plugins/pstack/.codex-plugin/plugin.json # plugins/pstack/.github/plugin/plugin.json
The watcher's reads now fail closed on GraphQL errors through the reader's graphql() method. The settle window's read cannot use it, because it also reads the top-level viewer, so parseReviewActivity checks errors itself and throws the same retryable failure.
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.
Merges pstack-claude 0.9.80 and 0.9.81 (upstream
24c96b1) and releases t3-pstack 1.0.9. No new change from Lauren Tan's pstack this round, andmodels.jsonis unchanged.What came in from upstream
watch-prandship-prread the base branch's current commit (baseRef { target { oid } }) instead of the PR's recordedbaseRefOid, which GitHub does not always move when the base advances. The watcher's PR facts now come from one GraphQL query instead ofgh pr view, and every GraphQL read goes through onegraphql()method on the reader that fails closed when the response carrieserrors. The empty-string review decision handling forgh pr viewis gone with that command.ship-pr inspectreads a closed or merged PR whose base branch was deleted, and Pi retries orphan cleanup. t3-pstack does not use Pi; it comes in as upstream ships it.Adaptations
VERSION,package.json, the marketplace and three plugin manifests) andCHANGES.md. The manifests keep thet3-pstackoverlay, andCHANGES.mdkeeps both sides.github.tsauto-merged with the hook intact (GhGitHubReader.reviewActivitystill delegates toreadReviewActivity). The settle read is its own GraphQL call, and it cannot go through upstream's newgraphql()method: that method returns onlydata.repository.pullRequest, and the settle query also reads the top-levelviewerto exclude the gh viewer's own activity. Routing it through would mean changing upstream's method or adding a second API call per poll. InsteadparseReviewActivityinsettle.tscheckserrorsitself and throws the same retryablemissing-keyfailure, so the settle read fails closed like every other watcher read. A new test insettle.test.tscovers it. Thegithub.tshook is unchanged, and settle behavior is otherwise unchanged.CHANGES.mdentry.Verification
bun test tests/ --timeout 30000: 1222 pass, 0 fail.bun testinpoteto-mode/scripts): 256 pass, 1 fail, the known local-only orch test on Graphite colour codes.bun run typecheckis clean.bun tools/generate.mjs --checkandt3-sheet.mjsagainst the local sheet and catalog pass.watch-pr --owner chhoumann --repo t3-pstack --pr 6 --status-only --settle 300renders the merged PR in pretty and JSON modes with exit 0, withbaseRefOidread as main's current tip.watch-pr --pr 7 --status-only --settle 300reads the settle state from GitHub and renderssettlingwith the window starting at the PR's opening, exit 0.