pr-shepherd 0.46.8 → 0.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +2 -0
  3. package/bin/api.d.mts +1 -1
  4. package/bin/cli/args.mjs +1 -0
  5. package/bin/cli/default-poll.mjs +1 -0
  6. package/bin/cli/help-command-pages.d.mts +1 -1
  7. package/bin/cli/help-iterate-poll-pages.d.mts +1 -1
  8. package/bin/cli/help-iterate-poll-pages.mjs +6 -5
  9. package/bin/cli/help-top-page.d.mts +1 -1
  10. package/bin/cli/help-top-page.mjs +5 -4
  11. package/bin/cli/help.d.mts +2 -2
  12. package/bin/cli/poll-handler.mjs +15 -7
  13. package/bin/commands/check-fingerprint.d.mts +8 -0
  14. package/bin/commands/check-fingerprint.mjs +69 -0
  15. package/bin/commands/check.d.mts +1 -0
  16. package/bin/commands/check.mjs +23 -3
  17. package/bin/commands/iterate/api-usage.d.mts +1 -1
  18. package/bin/commands/iterate/api-usage.mjs +6 -2
  19. package/bin/commands/iterate/base.mjs +1 -0
  20. package/bin/commands/iterate/mark-ready.mjs +8 -0
  21. package/bin/commands/iterate/run.mjs +1 -1
  22. package/bin/commands/poll-progress.d.mts +11 -0
  23. package/bin/commands/poll-progress.mjs +52 -0
  24. package/bin/commands/poll-quota.d.mts +9 -0
  25. package/bin/commands/poll-quota.mjs +36 -0
  26. package/bin/commands/poll-run.d.mts +1 -1
  27. package/bin/commands/poll-run.mjs +2 -2
  28. package/bin/commands/poll.mjs +66 -66
  29. package/bin/config/load.d.mts +7 -0
  30. package/bin/config/load.mjs +81 -20
  31. package/bin/config.json +9 -3
  32. package/bin/github/batch-raw-rules.d.mts +4 -1
  33. package/bin/github/batch-raw-types.d.mts +14 -0
  34. package/bin/github/batch.d.mts +2 -0
  35. package/bin/github/batch.mjs +2 -0
  36. package/bin/github/fingerprint-fields.d.mts +58 -0
  37. package/bin/github/fingerprint-fields.mjs +39 -0
  38. package/bin/github/fingerprint.d.mts +35 -0
  39. package/bin/github/fingerprint.mjs +67 -0
  40. package/bin/github/gql/batch-pr.gql +25 -120
  41. package/bin/github/gql/commit-check-suites.gql +19 -0
  42. package/bin/github/gql/pr-fingerprint.gql +75 -0
  43. package/bin/github/gql/pr-merge-policy.gql +49 -0
  44. package/bin/github/merge-queue-checks.mjs +57 -30
  45. package/bin/github/queries.d.mts +2 -0
  46. package/bin/github/queries.mjs +4 -1
  47. package/bin/quota-warning.mjs +1 -1
  48. package/bin/state/pr-fingerprint.d.mts +20 -0
  49. package/bin/state/pr-fingerprint.mjs +90 -0
  50. package/bin/types/iterate.d.mts +12 -3
  51. package/bin/types/report.d.mts +2 -0
  52. package/package.json +2 -2
  53. package/plugins/pr-shepherd/.codex-plugin/plugin.json +1 -1
  54. package/plugins/pr-shepherd/.codex.mcp.json +1 -1
  55. package/plugins/pr-shepherd/.mcp.json +1 -1
@@ -44,6 +44,7 @@ export interface IterateResultBase {
44
44
  mergeQueue?: import("./merge-queue.mts").MergeQueueReport;
45
45
  apiUsage?: ApiUsage;
46
46
  quotaWarning?: GraphqlQuotaWarning;
47
+ fingerprintReused?: true;
47
48
  }
48
49
  interface IterateResultWait extends IterateResultBase {
49
50
  action: "wait";
@@ -141,13 +142,21 @@ export interface IterateCommandOptions extends GlobalOptions {
141
142
  * only by `runPollCore`; excluded from the public `IterateInput` in api.mts.
142
143
  */
143
144
  persistSeen?: boolean;
145
+ /**
146
+ * Internal. `true` allows fingerprint reuse of a previous WAIT-shaped report.
147
+ * Poll sets this only for internal WAIT/MARK_READY continuation ticks — never the
148
+ * tick returned to the caller, never FIX_CODE debounce, never single-tick iterate.
149
+ * Writes still happen after a full fetch so the next poll can skip. Excluded from
150
+ * the public `IterateInput` in api.mts.
151
+ */
152
+ fingerprintCache?: boolean;
144
153
  /** Shepherd through readiness and emit the exact merge/queue command when ready. */
145
154
  merge?: boolean;
146
155
  /**
147
- * Internal. Defers attaching a quota warning until an until-terminal poll actually
148
- * breaks. Set only by `runPollCore`; excluded from the public `IterateInput` in
149
- * api.mts.
156
+ * Internal. Defers quota warnings until an until-terminal poll breaks. Set only by
157
+ * `runPollCore`; excluded from the public `IterateInput` in api.mts.
150
158
  */
151
159
  deferQuotaWarning?: boolean;
160
+ quotaWarningMinimumPollIntervalMinutes?: number;
152
161
  }
153
162
  export {};
@@ -23,6 +23,8 @@ export interface ShepherdReport {
23
23
  nodeId: string;
24
24
  /** GitHub PR head OID from the same batch used to decide the action. */
25
25
  headSha?: string;
26
+ /** Internal. True when this report was reused from the fingerprint cache. */
27
+ fingerprintReused?: true;
26
28
  repo: string;
27
29
  /** Raw GitHub viewer fields used to decide which remote actions may be offered. */
28
30
  viewerAuthorization?: ViewerAuthorization;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pr-shepherd",
3
- "version": "0.46.8",
3
+ "version": "0.48.0",
4
4
  "description": "Autonomous PR CI monitor and review-comment resolver for agentic coding tools",
5
5
  "keywords": [
6
6
  "automation",
@@ -89,7 +89,7 @@
89
89
  "husky": "^9.1.7",
90
90
  "knip": "^6.14.1",
91
91
  "marked": "^18.0.11",
92
- "oxfmt": "^0.64.0",
92
+ "oxfmt": "^0.65.0",
93
93
  "oxlint": "^1.60.0",
94
94
  "typescript": "^7.0.2",
95
95
  "vitest": "^4.1.4"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pr-shepherd",
3
- "version": "0.46.8",
3
+ "version": "0.48.0",
4
4
  "description": "Autonomous PR CI monitor and review-comment resolver for Codex.",
5
5
  "author": {
6
6
  "name": "Jonathan Ong",
@@ -2,7 +2,7 @@
2
2
  "mcpServers": {
3
3
  "pr-shepherd": {
4
4
  "command": "npx",
5
- "args": ["--yes", "--package", "pr-shepherd@0.46.8", "pr-shepherd-mcp"]
5
+ "args": ["--yes", "--package", "pr-shepherd@0.48.0", "pr-shepherd-mcp"]
6
6
  }
7
7
  }
8
8
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "pr-shepherd": {
3
3
  "command": "npx",
4
- "args": ["--yes", "--package", "pr-shepherd@0.46.8", "pr-shepherd-mcp"]
4
+ "args": ["--yes", "--package", "pr-shepherd@0.48.0", "pr-shepherd-mcp"]
5
5
  }
6
6
  }