Skip to content

feat(issues): a report on an older version is reproduced on the current code, not told to update - #11

Merged
soydiloreto merged 3 commits into
mainfrom
feat/triage-reproduce-first
Sep 26, 2026
Merged

soydiloreto merged 3 commits into
mainfrom
feat/triage-reproduce-first

Conversation

@soydiloreto

Copy link
Copy Markdown
Member

📝 What changes

  • issue-triage.yml: a defect report with steps is bug_unconfirmed whatever version it names; an older release or an older development build (see the brief's "Current versions") is no longer a reason for needs_info. The reply names the current version and says the reproduction runs on it. needs_info is again only for a report missing what a maintainer needs (naming the current version when the reported one is not current). Header comment updated.
  • issue-repro.yml: new input dev-tag (default dev). The write job also returns reported_version (validated to X.Y.Z or X.Y.Z-dev.N, passed as a job output). Both verdicts say what they ran on: confirmed adds "you saw it on X; this ran on the current code (development build, linked), so the bug is there now"; not reproduced adds "if it was there in X it may have been fixed since: install the current development build and say whether it is still there". Header comment updated.
  • README: the triage and reproduction rows.

💡 Why

Yesterday's version (v2.2.0) answered a report made on an older version with "please update and see": cheap, but it can be a loop (the reporter updates, the bug is still there, we ask again) and it tells the maintainer nothing. The maintainer asked for an answer about the current code without spending another model call. The reproduction already runs its test on main, which is the current development build, so it is the answer: the triage sends the report there instead of asking to update, and the verdict says explicitly what it ran on and what the reporter should do next.

🧪 How I tested it

  • actionlint 1.7.12 on every workflow.
  • The reported_version filter: 1.0.0, 2.0.0-dev.7 pass; free text yields an empty string, so the extra sentences are not added.
  • Live test: the next bug report on Offload that names 1.0.0 must be labelled bug:unconfirmed, reproduced on main, and its verdict must carry the "you saw it on 1.0.0" sentence.

🤖 AI-generated · Claude Fable 5.1 (Anthropic)

…nt code, not told to update

The triage keeps a defect report with steps as bug:unconfirmed whatever version it names; an older release or an older development build is not a reason to ask the reporter to update, because the question is whether the bug is in the current code, and the reproduction answers it: its test runs on main. The reply names the current version and says the attempt runs on it. needs-info is again only for a report missing what a maintainer needs.

The reproduction returns the version the report named (reported_version, validated to X.Y.Z or X.Y.Z-dev.N) and both verdicts say what they ran on: confirmed means the bug is there now, whatever version first showed it; not reproduced on an older version says the current code (the development build, linked through the new dev-tag input) may already have the fix and asks to try it. This is what the maintainer asked for: not "update and see", but an answer about the current code, using the reproduction that already exists instead of another model call.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Comment thread .github/workflows/issue-repro.yml Outdated
@dilux-bot dilux-bot Bot added risk:high Set by the Claude review complexity:medium Set by the Claude review type:feat The kind of change, read from the diff by the Claude review labels Sep 26, 2026
@dilux-bot

dilux-bot Bot commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor

Claude review · risk high · complexity medium · type feat

The new commit fixes my earlier minor finding. A report on the release the current dev build grows from (X.Y.Z when the dev build is X.Y.Z-dev.N) is no longer counted as older, so right after a release it doesn't get the "may have been fixed since" line by mistake. I checked the comparison: ${dev%%-dev.*} removes the pre-release suffix, and the new check runs before sort -V. Before this change, sort -V put 1.0.0 ahead of 1.0.0-dev.N, which is how the release ended up counted as older. A report naming a version newer than a stale dev build still counts as not older. The new comment on the check says the same thing the code does. The header comment, the dev-tag input description, the README rows and the triage prompt all still say the extra sentence is only for an older version, so the docs match the code. Nothing is left open. The pull request as a whole adds behaviour (triage sends reports on older versions to reproduction instead of asking the reporter to update, and the verdicts say what they ran on), so it is a feat. It stays high risk because it changes shared issue workflows used across all repositories. The description still matches the diff.

No findings.

Policy floor: high (touches high-risk paths: .github/workflows/issue-repro.yml, .github/workflows/issue-triage.yml, README.md). Reviewed 979a81b (since df2ce3b; review 3 of 5 automatic). Author trusted for auto-merge: true.

🤖 AI review · claude-opus-5-5 (Anthropic) · $0.17, 4 turns

…t dev build; one-line version

The "may have been fixed since, install the current development build" sentence goes out only when the reported version sorts before the current development build (sort -V), never for the current one and never when no development build is published; otherwise the verdict just says what it ran on. reported_version is cut to its first line before it reaches GITHUB_OUTPUT.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@dilux-bot dilux-bot Bot added risk:high Set by the Claude review complexity:medium Set by the Claude review type:feat The kind of change, read from the diff by the Claude review and removed risk:high Set by the Claude review complexity:medium Set by the Claude review type:feat The kind of change, read from the diff by the Claude review labels Sep 26, 2026
…older than it

sort -V puts 2.0.0 before 2.0.0-dev.N, so right after a release, before the next push rebuilt the development build, a report on 2.0.0 got the "may have been fixed since" hint although main was the same code. The reported version must also differ from the build's base X.Y.Z to count as older.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@dilux-bot dilux-bot Bot added risk:high Set by the Claude review complexity:medium Set by the Claude review type:feat The kind of change, read from the diff by the Claude review and removed risk:high Set by the Claude review complexity:medium Set by the Claude review type:feat The kind of change, read from the diff by the Claude review labels Sep 26, 2026
@soydiloreto
soydiloreto merged commit d4998a5 into main Sep 26, 2026
6 checks passed
@soydiloreto
soydiloreto deleted the feat/triage-reproduce-first branch September 26, 2026 20:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

complexity:medium Set by the Claude review risk:high Set by the Claude review type:feat The kind of change, read from the diff by the Claude review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant