Skip to content

fix(duplicates): filter deferred authoring queue items - #480

Open
mjmirza wants to merge 1 commit into
mainfrom
fix/filter-deferred-authoring-queue-duplicate-check-10706301809477118493
Open

mjmirza wants to merge 1 commit into
mainfrom
fix/filter-deferred-authoring-queue-duplicate-check-10706301809477118493

Conversation

@mjmirza

@mjmirza mjmirza commented Sep 24, 2026

Copy link
Copy Markdown
Owner

Summary

Filter out queue entries with status == "deferred" in tools/check-duplicates.py during duplicate analysis. Inactive or permanently deferred entries in docs/AUTHORING-QUEUE.json previously triggered false-positive queue collision errors against published patterns and caused strict duplicate checks (--strict / --check / make duplicates) to fail on main.

Details & Verification

  • Duplicate Risk Demonstrated: Deferred entries (e.g., windowing in docs/AUTHORING-QUEUE.json) are on-hold/deferred items that are not active candidates for authoring. When checked against published entries (e.g. virtual-list.md), they produced false-positive collision alerts.
  • Real Examples: patterns/24-stream-processing/windowing.md in docs/AUTHORING-QUEUE.json is marked "status": "deferred". Before this fix, python3 tools/check-duplicates.py --check failed with a QUEUE COLLISION error against patterns/13-frontend-ui/virtual-list.md.
  • Historical Examples: Deferred entries in AUTHORING-QUEUE.json record human governance decisions. Checking them as active queue items incorrectly flags known deferred decisions.
  • Current Detection Mechanisms: Multi-pass detector (tools/check-duplicates.py) normalizing terms and checking queue vs published and historical commits.
  • Exact Uncovered Failure Mode: Unfiltered reading of docs/AUTHORING-QUEUE.json loaded deferred entries as active queue candidates.
  • Why This Improvement Is New: Specifically filters q.get("status") != "deferred" in analyze_repository, aligning duplicate detection with next-batch.py queue conventions.
  • Historical Anti-Duplication Search: Checked commit history and remote branches. This targeted fix ensures clean CI and local execution without mutating authoring queue records.
  • Test Corpus: 890 published patterns, 3 authoring queue items (all deferred), and unit tests in tools/check-duplicates-test.py.
  • False Positives: Resolved false-positive collisions on deferred items.
  • False Negatives: None; all active queue entries remain fully validated against published and historical entries.
  • Performance Cost: Negligible (O(N) single-pass list filtering).
  • CI Cost: Zero added overhead.
  • Security Implications: Pure Python validator change; no external dependencies or privilege changes.
  • Rollback: Simple git revert of tools/check-duplicates.py and tools/check-duplicates-test.py.
  • Confidence Score: 98/100.
  • Actual Test Output: 12 tests in check-duplicates-test.py passed OK; make test passed 22 tests OK.
  • Metadata: Respects standard repository conventions and CODEOWNERS.
  • Reviewer Focus: tools/check-duplicates.py and tools/check-duplicates-test.py.

PR created automatically by Jules for task 10706301809477118493 started by @mjmirza

Filter out authoring queue entries with status 'deferred' in
tools/check-duplicates.py analyze_repository function to prevent
false-positive duplicate collision failures on inactive items.

Co-authored-by: mjmirza <34001140+mjmirza@users.noreply.github.com>
@google-labs-jules

Copy link
Copy Markdown
Contributor

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant