feat(scoring): add situational score projections - #3
Merged
Conversation
9 tasks
5 tasks
This was referenced Jun 25, 2026
JSONbored
added a commit
that referenced
this pull request
Jul 2, 2026
The new outcome:error regression test's /issues/42/events mock lacked a "reopened" event for the payload's actual reopener, so the #2369 live recheck #3 (reopenerSuperseded) denied the close before ever reaching the PATCH-fails path this test targets. Add the missing "reopened" event, matching the pattern already used by every other reopen-reclose test in this file.
JSONbored
added a commit
that referenced
this pull request
Jul 2, 2026
* fix(queue): record the real outcome when a reopen-reclose fails Both the warning comment and the actual close call in maybeRecloseDisallowedReopen were wrapped in .catch(() => undefined), but the function unconditionally wrote a github_app.reopen_reclosed audit event with outcome:"completed" regardless of whether the close API call actually succeeded. A 403 from reduced permissions, a 404, or a transient 5xx was silently swallowed while the audit ledger kept recording a successful re-close — an operator trusting the audit trail would believe the one-shot close was enforced when the PR may still be open. This mirrors the same audit-fidelity gap already fixed on the draft-dodge path. Capture the close call's settled result and branch the audit outcome on it: "completed" only when closePullRequest actually resolves, "error" otherwise, with the underlying error captured in metadata. The courtesy comment's own failure still never affects this — it's independent of whether the close succeeded. * test(queue): fix reopen-reclose CI failure test's stale event timeline The new outcome:error regression test's /issues/42/events mock lacked a "reopened" event for the payload's actual reopener, so the #2369 live recheck #3 (reopenerSuperseded) denied the close before ever reaching the PATCH-fails path this test targets. Add the missing "reopened" event, matching the pattern already used by every other reopen-reclose test in this file.
This was referenced Jul 2, 2026
This was referenced Jul 8, 2026
JSONbored
added a commit
that referenced
this pull request
Jul 8, 2026
…gate the merge (#4171) Content/registry repos (metagraphed today) have no schema/lint/codecov net to catch a semantically-wrong-but-structurally-valid defect -- their own AI reviewer's judgment is the only thing that ever catches it, yet applySurfaceGate's guard #3 lets a decisive deterministic surface merge unconditionally override even a confidently-flagged AI-judgment blocker. Adds gate.aiJudgmentBlockers: "gate" | "advisory" (default "advisory", byte-identical everywhere that doesn't opt in), YML-only config mirroring contentLane's own shape since this only matters for repos already running the registry content lane. When "gate", the AI-judgment-only override is skipped and the finding survives into the deterministic gate's own blockers, demoting the decision away from merge -- reproducing exactly the PR #3910 shape (correct-in-prose, wrong-in-disposition) as structurally impossible once a repo opts in. Setting metagraphed's own .gittensory.yml to gate.aiJudgmentBlockers: "gate" is a separate follow-up PR in that repo, gated on this shipping.
This was referenced Jul 10, 2026
Closed
20 tasks
This was referenced Jul 28, 2026
This was referenced Jul 30, 2026
loopover-orb Bot
pushed a commit
that referenced
this pull request
Jul 30, 2026
…t the PR ahead of it (#9954) The wait comment named the immediate blocker and nothing else: Queued in the merge train behind #4, which touches overlapping work and was opened first. "Behind #4" and "behind #4 and six others" are very different waits, and a queue that will not say which one it is reads as a stall rather than a wait -- which is how it was read in practice. The information was already computed and thrown away: shouldWaitForOlderSiblings builds the full sorted list of viable overlapping older siblings and returned only viable[0]. It now returns the whole list, and the comment reports the position: Queued in the merge train at position 4, behind 3 overlapping PRs opened before this one (#1, #2, #3). The nearest is #1. The single-blocker wording is unchanged -- rendering a one-item queue as "1 PR ahead: #4" is noise. The queue inherits every eviction rule the blocker choice already had, which the tests pin: a draft, a conflicted PR, a manual-review hold and a non-overlapping sibling are all absent from it. A contributor must never be told they are behind PRs that are not actually in front of them. Closes #9952
This was referenced Jul 30, 2026
2 tasks
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.
Summary
What changed
Validation
git diff --checkgitleaks detect --source . --redact --no-bannernpm pack --workspace @jsonbored/gittensory-mcp --dry-run --jsonnpm run test:ciNotes