Skip to content

fix(issue-quality): accept equivalent structured bug evidence - #1173

Merged
Wibias merged 9 commits into
devfrom
fix/issue-quality-equivalent-bug-evidence
Aug 7, 2026
Merged

fix(issue-quality): accept equivalent structured bug evidence#1173
Wibias merged 9 commits into
devfrom
fix/issue-quality-equivalent-bug-evidence

Conversation

@Wibias

@Wibias Wibias commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Fix the issue-quality false positive demonstrated by [Bug]: Cursor Claude-family models deterministically fail via Claude Code path (resource_exhausted after stream start) while non-Claude Cursor models pass #1162: detailed bug reports are currently auto-closed when actionable reproduction evidence and environment metadata are present under equivalent structured headings instead of literal Reproduction, Version, and Operating system headings.
  • Accept equivalent reproduction evidence only when it still contains the existing actionable signals (commands, errors, paths, or concrete output).
  • Read OpenCodex version and OS from a structured Environment section only when the canonical fields are absent.
  • Keep the existing quality bar: vague reports, unknown versions, missing OS details, and non-actionable reproductions still fail.

Related: #1162

Verification

  • Regression was red on the existing validator: Reproduction is empty, Version is missing, Operating system is missing.
  • Existing validator suite stayed green in the red phase (112/112 pre-existing checks passed).
  • Focused issue-quality CI is green after the fix, including negative regressions for vague evidence, unknown version, and missing OS.
  • PR hygiene and current PR workflows are green on the final head.

Checklist

  • Scope stays focused and avoids unrelated behavioral changes.
  • Docs or release notes were updated when needed. (N/A - validator-only bug fix.)
  • Security-sensitive automation was reviewed: no secrets, permissions, auth, or mutation ownership behavior changed.

Summary by CodeRabbit

  • New Features

    • Improved validation for bug reports, feature requests, documentation requests, and other issue types.
    • Added support for translated headings, alternative section formats, placeholders, media-only submissions, and product-area detection.
    • Added safeguards for pull-request workflows and issue closure handling.
  • Bug Fixes

    • Recognizes equivalent reproduction, version, and operating-system details across supported formats.
    • Improves handling of vague reports, unsupported versions, duplicate content, and missing environment information.
  • Tests

    • Expanded automated coverage for structured bug evidence and environment validation.

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Important

Review skipped

No new commits to review since the last review.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 8e810034-20a5-465a-9140-06162327781d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The PR extracts issue-quality validation into a reusable core module. It adds Markdown normalization, issue-kind and area detection, structured report validation, workflow safeguards, focused tests, and broader workflow test matching.

Changes

Issue quality validation

Layer / File(s) Summary
Content normalization and issue-kind detection
.github/scripts/issue-quality-core.cjs
Adds media-aware Markdown normalization, alternate-heading resolution, structured-content detection, issue-kind detection, and product-area label detection.
Report validation and reproduction evidence
.github/scripts/issue-quality-core.cjs
Validates placeholders, duplicate content, required sections, environment metadata, actionable reproduction details, and structured reports.
Wrapper integration and public API
.github/scripts/issue-quality.cjs, .github/scripts/issue-quality-core.cjs
Normalizes equivalent bug evidence before detection and validation. The wrapper delegates to the core module and re-exports its API.
Workflow safeguards and validator test coverage
.github/scripts/issue-quality-core.cjs, .github/scripts/issue-quality-equivalent-bug-evidence.test.cjs, .github/workflows/issue-quality-tests.yml
Adds closure and workflow-dispatch safeguards. Adds bug-evidence tests and runs all matching validator test files.

Estimated code review effort: 4 (Complex) | ~60 minutes

Sequence Diagram(s)

sequenceDiagram
  participant IssueReport
  participant issue-quality.cjs
  participant issue-quality-core.cjs
  participant ValidatorTests
  IssueReport->>issue-quality.cjs: Submit issue
  issue-quality.cjs->>issue-quality.cjs: Normalize equivalent bug evidence
  issue-quality.cjs->>issue-quality-core.cjs: Detect kind and validate report
  issue-quality-core.cjs-->>issue-quality.cjs: Return labels and validation result
  ValidatorTests->>issue-quality.cjs: Check normalized bug evidence
Loading

Possibly related PRs

Suggested reviewers: ingwannu, lidge-jun

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: accepting equivalent structured bug evidence in issue-quality validation.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/issue-quality-equivalent-bug-evidence

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Deterministic PR hygiene checks passed.

@github-actions github-actions Bot added the bug Something isn't working label Aug 7, 2026
@Wibias
Wibias marked this pull request as ready for review August 7, 2026 04:10

Wibias commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor
⚠️ Action not completed

Already reviewed.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/scripts/issue-quality-core.cjs:
- Around line 157-196: Remove the per-character isInsideIndentedCode call and
its related branch from stripMarkdownImages, leaving image-token scanning and
output behavior unchanged. Remove the isInsideIndentedCode helper as well if the
repository search confirms it has no other callers; retain
protectIndentedCodeLines as the sole indented-code masking mechanism.
- Around line 1539-1551: Update shouldEnforceClosure so botState.active ===
false disables enforcement and returns false, while preserving the
maintainerOverride behavior; keep the JSDoc parameter shape aligned with the
implemented active-flag contract.

In @.github/scripts/issue-quality.cjs:
- Around line 24-29: Update extractEnvironmentField to normalize match[1] by
removing surrounding Markdown emphasis and code markers before comparing it with
the wanted field names, while preserving the existing value extraction. Add a
regression test in the equivalent-bug-evidence tests using “- **OpenCodex**:
2.10.2” and verify the version evidence is retained.
- Around line 8-18: Remove the duplicate “Steps to Reproduce” alias from
REPRODUCTION_ALIASES in .github/scripts/issue-quality.cjs (lines 8-18) and from
FREEFORM_BUG_NEAR_MISS_HEADINGS in .github/scripts/issue-quality-core.cjs (lines
1166-1177), relying on case-insensitive matching. In
looksLikeUntemplatedBugReport, collapse the separate extractSection calls for
both casings into a single call so one heading is counted and extracted once.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 110a7798-c193-4f9f-97c3-e21e507806d3

📥 Commits

Reviewing files that changed from the base of the PR and between 1fc24f0 and 27e681b.

📒 Files selected for processing (4)
  • .github/scripts/issue-quality-core.cjs
  • .github/scripts/issue-quality-equivalent-bug-evidence.test.cjs
  • .github/scripts/issue-quality.cjs
  • .github/workflows/issue-quality-tests.yml

Comment thread .github/scripts/issue-quality-core.cjs Outdated
Comment thread .github/scripts/issue-quality-core.cjs
Comment thread .github/scripts/issue-quality.cjs
Comment thread .github/scripts/issue-quality.cjs

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/scripts/issue-quality.cjs (1)

3-94: 🔒 Security & Privacy | 🔵 Trivial

Complete the required security-boundary checks before merge.

Confirm that the PR targets dev, required CI passes, the expanded issue-quality test workflow runs, and at least one maintainer approves the PR. Authors must not approve their own PR. The supplied files add no secrets, permission changes, dependency installation, or mutable third-party action references.

As per path instructions, .github/** is a security boundary and changes require the normal CI and maintainer review process.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/scripts/issue-quality.cjs around lines 3 - 94, Before merging the
changes to normalizeEquivalentBugEvidence, confirm the PR targets dev, required
CI and the expanded issue-quality workflow pass, and at least one maintainer
approves. Ensure the approval is from someone other than the PR author, with no
self-approval, and retain the existing security-boundary checks for .github
changes.

Source: Path instructions

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In @.github/scripts/issue-quality.cjs:
- Around line 3-94: Before merging the changes to
normalizeEquivalentBugEvidence, confirm the PR targets dev, required CI and the
expanded issue-quality workflow pass, and at least one maintainer approves.
Ensure the approval is from someone other than the PR author, with no
self-approval, and retain the existing security-boundary checks for .github
changes.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 8485055b-4bbe-443c-bc88-a898043065ce

📥 Commits

Reviewing files that changed from the base of the PR and between 27e681b and 3a85bdc.

📒 Files selected for processing (2)
  • .github/scripts/issue-quality-equivalent-bug-evidence.test.cjs
  • .github/scripts/issue-quality.cjs

Wibias commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor
⚠️ Action not completed

Already reviewed.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@Wibias
Wibias merged commit 6d04574 into dev Aug 7, 2026
7 checks passed
@Wibias
Wibias deleted the fix/issue-quality-equivalent-bug-evidence branch August 7, 2026 04:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant