Skip to content

Triage issues by impact and cost, and fix them on request - #265

Merged
scuffi merged 3 commits into
mainfrom
gardener-triage-fix
Oct 22, 2026
Merged

scuffi merged 3 commits into
mainfrom
gardener-triage-fix

Conversation

@scuffi

@scuffi scuffi commented Oct 22, 2026 •

Copy link
Copy Markdown
Member

Replaces the triage task with one that triages every new issue by weighing its impact against the cost of fixing it, and adds a fix task that implements a fix when a maintainer asks for one. Also upgrades Gardener to 0.1.18.

Rollout: for now triage runs automatically only on issues opened by @scuffi, and on manual runs (Actions → Gardener · Triage → Run workflow, with an issue number). That lets us check it on real issues while agent-think keeps triaging everything else. The cutover is a one-line follow-up that sets authors: any, done at the same time as agent-think stops triaging. fix is live as soon as this merges, because it only runs when someone adds gardener-fix.

triage, once cut over, runs on every new issue, from anyone:

  • High impact, low cost: priority: high, plus a comment with the proposed fix. A maintainer can add gardener-fix to have it implemented.
  • High impact, high cost: priority: high, plus a comment with the decision a maintainer needs to make.
  • Low impact, low cost: priority: low, no comment.
  • Low impact, high cost: wontfix, a short explanation, and closed. Rare, and only when the case is clear.
  • Not actionable: question, with a brief answer or a request for what's missing. Spam is ignored.
  • Labels and assignment: every actionable issue also gets bug or enhancement. Issues left open are assigned to the person with the most recent substantive commits to the affected files who still has write access. It never assigns bots or anyone on the task's do-not-assign list.
  • Chat: priority: high issues are posted to the team's chat with a one-line reason, once the GARDENER_CHAT_WEBHOOK secret is set. Until then the message is skipped and the run stays green.

fix runs when someone adds gardener-fix to an issue:

  • It removes the label, makes the smallest correct change with a test, runs the relevant checks, and opens a pull request labelled allow-pr that starts with Fixes #N.
  • It links the pull request from the issue. If it can't reach a fix it's confident in, it comments instead.
  • Its pushes don't start CI, so a maintainer triggers checks before merging. It never merges.
  • It's limited to 3 runs a day.

Safeguards

  • Issue text is treated as a report, never as instructions.
  • Runs started by someone who isn't a maintainer may only act on their own issue, and are limited to 3 a day per author.
  • triage can't run commands. Only fix, which a person starts, can.
  • The chat webhook is only visible to the step that posts. Posts are plain text with mentions and links disabled.

Other changes: Gardener's workflows and gardener:generate move to 0.1.18. mention-reply, pr-review-fix and dependabot-merge are unchanged apart from the version pin. The runtime is already on 0.1.18. The labels priority: high, priority: low and gardener-fix already exist.

Tested on a demo repository: every outcome above, a fix pull request from a label, a planted "mention everyone" instruction (ignored), and a missing chat secret (skipped, run green).

@scuffi scuffi added the allow-pr Allow a PR to remain open. label Oct 22, 2026
@changeset-bot

changeset-bot Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: af82db2

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@pkg-pr-new

pkg-pr-new Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/@cloudflare/computer@265

commit: af82db2

@scuffi
scuffi marked this pull request as ready for review October 22, 2026 12:47

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Devin Review found 5 potential issues.

Devin Review

Comment thread .gardener/tasks/fix/TASK.md
Comment thread .gardener/tasks/fix/TASK.md
Comment on lines +54 to +56
4. For a `priority: high` issue, send one message about it: a single lower-case line of plain text,
up to about 200 characters, saying whether it's valid, its impact and what happens next, without
restating the title. Use the issue's `updatedAt` as its expected version.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔍 Check chat version after triage changes

message.send runs after labels and comments, which can change the issue's updatedAt. Check whether the original expected version causes high-priority messages to be skipped.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

Comment thread .gardener/tasks/fix/TASK.md Outdated
Comment on lines +7 to +10
trigger:
event: github.issue.labeled
labels-all:
- gardener-fix

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟥 Issue labels can trigger privileged code execution

If a non-maintainer can apply gardener-fix, github.issue.labeled starts repository.exec without checking the labeler's permissions. The task can then run commands and propose repository changes under the workflow token.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

@scuffi
scuffi merged commit 11aae4c into main Oct 22, 2026
29 checks passed
@scuffi
scuffi deleted the gardener-triage-fix branch October 22, 2026 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

allow-pr Allow a PR to remain open.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant