fix(sync): specialize drift repair by consumer - #3168
Conversation
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 12 minutes Limit details: You’ve used the included review currently available. Your 67 included PR review attempts over the past 7 days set your current allowance at 1 review per hour. Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab. How can I continue?Wait for the limit to reset, then comment An organization admin can change what happens after included review limits in Billing. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (13)
Comment |
|
@codex review Please review the exact current head against the four source-owned consumer thread acceptance criteria listed in the PR body, including execution-path coverage for registry versus deliberately vendored package layouts. |
🤖 Keepalive Loop StatusPR #3168 | Agent: Codex | Iteration 0/12 Current State
🔍 Failure Classification| Error type | infrastructure | |
Keepalive Work Log (click to expand)
|
|
Runner dispatch state for codex on PR #3168. Do not edit. |
🤖 Keepalive Loop StatusPR #3168 | Agent: Codex | Iteration 4/12 Current State
🔍 Failure Classification| Error type | infrastructure | |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: df89db7a58
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
🤖 Bot Comment Handler
The agent has been assigned to this PR to address the bot review comments. Instructions for agent
The bot comment handler workflow has prepared context in the artifacts. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7f93d7a90a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 30eeda2fdb
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| marker_indexes: dict[str, set[int]] = {legacy_marker: set(range(len(findings)))} | ||
| for index, finding in enumerate(findings): | ||
| marker_indexes.setdefault(markers[index], set()).add(index) | ||
| marker_indexes.setdefault(_legacy_v1_finding_marker(finding), set()).add(index) |
There was a problem hiding this comment.
Restrict a legacy marker to its original finding
When two current semantic claims share the first 160 characters but differ afterward, _legacy_v1_finding_marker() returns the same marker for both, so this setdefault(...).add(index) associates one legacy marker with both indexes. The prior release also deduplicated such claims by that truncated target, meaning an existing issue carrying the marker contains only one of them; matching it here nevertheless marks both current findings covered and silently prevents an issue from being created for the second claim. Associate the legacy marker only with the representative that the legacy dedupe would have retained, rather than every full-identity finding with that truncated marker.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Fixed on exact head 2e58f6d635289e707d4844e549732cde05ee82e8. Legacy target-truncated markers are now associated only with the representative retained by the legacy dedupe, while the second full-identity finding remains uncovered and gets its own issue. The end-to-end collision regression proves exactly one new issue is created for the second claim. Full suite: 4953 passed, 8 skipped, 3 expected xfails. Please re-evaluate; I am not resolving this thread.
There was a problem hiding this comment.
Correction: the exact pushed head is 2e58f6d (the prior reply mistyped the suffix). The described legacy-marker fix and 4953-pass validation apply to this exact head. Please re-evaluate; I am not resolving this thread.
|
@codex review\n\nPlease review exact head 2e58f6d635289e707d4844e549732cde05ee82e8 after the two execution-path corrections. Validation: 139 focused tests and full suite 4953 passed, 8 skipped, 3 expected xfails; Ruff, Black, template sync/completeness/drift, script parity, and git diff checks pass. |
|
Correction to the immediately prior review request: please review exact head 2e58f6d. The prior comment mistyped the SHA suffix; the validation evidence is unchanged. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2e58f6d63d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if finding in legacy_representatives: | ||
| marker_indexes.setdefault(_legacy_v1_finding_marker(finding), set()).add(index) |
There was a problem hiding this comment.
Match legacy markers to the finding stored in the issue
When an older issue was created for claim B and a later scan adds claim A with the same 160-character prefix ahead of B, legacy_representatives selects A from the current plan even though the shared legacy marker belongs to B. The marker lookup then marks A covered and opens another issue for B, duplicating the existing repair while suppressing the new one. Fresh evidence in this head is that representative membership alone controls the association; although the lookup retrieves the legacy issue body, it never checks which full claim that body contains.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Fixed on exact head e8e030c. A shared target-truncated marker now covers only current findings whose exact doc/kind/target/full-detail row is present in the retrieved legacy issue body; cached marker hits preserve the same body-bound check. The A-before-B regression proves an existing issue for B stays associated with B while exactly one new issue is created for A. Focused suite: 105 passed; full suite: 4954 passed, 8 skipped, 3 expected xfails. Please re-evaluate; I am not resolving this thread.
🛑 Progress Review (Round 4)Recommendation: STOP FeedbackReview your recent work against the acceptance criteria. This review was triggered because the agent has been working for 4 rounds without completing any task checkboxes. |
|
@codex review\n\nPlease review exact head e8e030c after the legacy-marker association was bound to the actual finding row stored in the retrieved issue body. Validation: 105 focused tests and full suite 4954 passed, 8 skipped, 3 expected xfails; Ruff, Black, template sync/completeness/drift, source/template parity, and git diff checks pass. |
|
Codex Review: Didn't find any major issues. Nice work! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Automated Status SummaryHead SHA: c20b8a2
Coverage Overview
Coverage Trend
Top Coverage Hotspots (lowest coverage)
Low Coverage Files (<50.0%)
Updated automatically; will refresh on subsequent CI/Docker completions. Keepalive checklistScopeNo scope information available Tasks
Acceptance criteria
|
|
@codex Please provide a thread-specific disposition on exact head e8e030c for every remaining active thread: PRRT_kwDOQprj9M6bapqx (frozen legacy renderer), PRRT_kwDOQprj9M6bapqy (remote package-aware check), and PRRT_kwDOQprj9M6bauEA (local package-aware print block). Your exact-head review reported no major issues, the independent fallback approved, 105 focused and 4954 full-suite tests pass, and the handler run 32593907654 found the remote-check thread but did not clear it. If each criterion is satisfied, resolve or explicitly disposition your corresponding thread; otherwise name the exact unmet acceptance criterion and execution path for each thread ID. Do not edit or push the branch. |
|
Codex Review: Didn't find any major issues. More of your lovely PRs please. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Human authority decision brief — Workflows #3168Target and exact action: On exact head
Observed evidence: The unchanged exact head remains open, ready, clean, mergeable, and not auto-merged. All three root findings have exact-head implementations and regression coverage. The focused source audit was rerun on the current checkout: Affected surface and trust boundary: The changes affect docs-drift issue identity and legacy reuse, remote and local package-aware consumer Automation audit: Current code, diff, exact head, complete non-outdated review threads, PR comments, checks, labels, merge state, and the three targeted regression paths were re-read. No bounded code, documentation, test, routing, retry, rebase, or source-fix action remains for these criteria. Automation is explicitly forbidden to self-resolve reviewer conversations. The stale agent trigger labels were removed and auto-merge remains disabled. Decision trade-off: Resolving the satisfied conversations authorizes the closer to perform the fresh zero-thread and required-check merge audit. Deferring keeps #3168, correction successor #3171, the three stable candidate PRs, and promotion held. If any criterion is still unmet, reply on its thread with the concrete execution path; the closer will implement and validate that bounded correction immediately. Exact next automatic action: After all three conversations are resolved or corrected to zero active threads, the closer will re-read the unchanged head and required checks, merge #3168, update #3171 onto the new main and restart its full exact-head review window if its head changes, merge #3171 only after its own zero-thread gate, then dispatch one coalesced no-filter full Maint 68 canary and carry the exact plan through Maint 71 evidence, promotion, delivery reconciliation, and Health 83. Authority classification: |
🛑 Progress Review (Round 4)Recommendation: STOP FeedbackReview your recent work against the acceptance criteria. This review was triggered because the agent has been working for 4 rounds without completing any task checkboxes. |
MERGE HOLD — closer-owned source rolloutMerge authority for exact head Release conditions are all mandatory: the head remains unchanged; at least seven minutes have elapsed since its final push; required checks pass; active non-outdated review-thread count is exactly zero; #3168 is merged before ordered successor #3171; and the corrected source is propagated only through the coalesced full canary and promotion sequence. Current hold: three active reviewer conversations. The exact maintainer action and post-resolution automation sequence are recorded in the human authority decision brief. |
Summary
node_modulesexceptions only for consumers whose.github/scripts/package.jsondeclares afile:node_modules/dependencySource review debt
PRRT_kwDOPrFQ5c6bajoVPRRT_kwDOOzvyds6bajwCPRRT_kwDOO15QxM6bajjHPRRT_kwDOO15QxM6bajjJThe older Portable threads
PRRT_kwDOO15QxM6baR8NandPRRT_kwDOO15QxM6baR8Qremain held on the defective candidate; their source corrections already landed in #3167.Validation
uv run --extra dev pytest -q -n auto— 4951 passed, 8 skipped, 3 expected xfailsuv run --with ruff ruff check ...— passed on all changed Python surfacespython3 scripts/validate_template_sync.py— passedpython3 scripts/validate_template_completeness.py --strict— passedpython3 scripts/check_template_drift.py— zero unallowlisted driftpython scripts/sync_status_file_ignores.py --check— passed for the Workflows vendored package layoutRollout
This requires a full Maint 68 candidate plan because the conditional managed
.gitignorereconciliation is performed by full delivery, not source-delta delivery.The scope selector now also rejects source-delta ranges that touch the status-ignore reconciler, its consumer copy, or the consumer
.gitignoretemplate, so this requirement is enforced rather than advisory.