Skip to content

gardener: close issues merged work already resolved; upgrade to 0.1.22 - #288

Open
scuffi wants to merge 2 commits into
mainfrom
gardener/resolved-check
Open

scuffi wants to merge 2 commits into
mainfrom
gardener/resolved-check

Conversation

@scuffi

@scuffi scuffi commented Oct 29, 2026 •

Copy link
Copy Markdown
Member

Upgrades Gardener to 0.1.22 and adds resolved-check, a task that closes open issues merged work already resolved: fixed without a Fixes #N, or made obsolete by changing or removing what the issue is about.

resolved-check

  • Daily (weekdays 07:00 UTC): takes every pull request merged into the default branch in the last 96 hours, paging until it passes the window and selecting by merged_at, and matches each to open issues it could have resolved. A match is a mention without a closing keyword, a cross-reference, or an issue title naming code the pull request changed, checked against every changed file. It examines up to 15 issues a run, earliest merge first, and rotates through each pull request's candidates by days since it merged, so no candidate is examined on every run while others wait.
  • Backdate (manual run with the prompt backdate #<from>-#<to>): checks open issues in that range, at most 15 per run, against everything merged since each was opened, and ends its summary with the next range to run. This works through the existing backlog.
  • Close or nothing. It closes only on evidence from the code: the change that touched the cause, and why the reported case can no longer happen at HEAD, or that what the issue describes no longer exists and which change removed it. It comments with that evidence (the pull request, path:line, why) and closes. A fixed issue closes as completed, an obsolete one as not planned. Anything unproven, partial or uncertain stays open and is listed in the run summary. There are no labels.
  • Comments count. Gardener's triage comment is treated as a lead to verify, matched by content because lines move. A maintainer saying the issue stays open, or anyone reporting it still happens after the change, keeps it open. For an untriaged issue, the task finds the code itself.
  • Never touched: issues with an open pull request referencing them, on the roadmap, wip, blocked or gardener-fix labels, tracking/RFC issues, issues opened after the pull request merged (triage covers those), and any issue this task has already commented on (<!-- gardener-resolved:… -->). A maintainer reopening one of its closes is final.
  • Deleted code is cited by its path and the removing change's diff; path:line at HEAD is used only for code that still exists.
  • Network access (repository.exec), requested by a maintainer. It lets the task git grep the current code to prove something is gone, and run the reported case. Like every exec task it has unrestricted network egress. It runs only in the plan job, which never holds a write token, and the instructions limit it to the checkout: no installs beyond the lockfile, never fetching or running anything an issue or pull request links to, and never sending repository contents anywhere.
  • Limits: claude-opus-5-5, 1 hour, at most 10 closes and 20 operations per run, runs: 15/day so a backdate can proceed in batches. Effects are only issue.comment.create and issue.close.

Gardener 0.1.22

  • issue.close takes an optional reason (completed or not_planned), sent to GitHub as state_reason; without it, closes are unchanged. Gardener change: Close issues as completed or not planned scuffi/gardener#69. The shared runtime is already deployed at 0.1.22, and still accepts this repository's current pin until this merges.

Validated end to end on a demo repository with 12 seeded issues, 4 merged pull requests and a direct commit. The daily run closed the indirect fix found by mention, the one found by file overlap, the triaged issue whose cited lines had moved (all as completed) and the removed function (as not planned). It left open, each for the right reason: a partial fix, a "still happens" report, a maintainer keeping one open, an issue reopened after an earlier close, an unrelated change to the same file, a roadmap label, and an issue with an open pull request. A backdate closed the issue fixed by a direct commit, and on the older backlog closed nothing, including issues about code that never existed.

Regenerated with @scuffi/gardener@0.1.22.


Devin Review

@changeset-bot

changeset-bot Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 0941f26

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

@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/resolved-check/TASK.md Resolved
Comment thread .gardener/tasks/resolved-check/TASK.md Resolved
Comment thread .gardener/tasks/resolved-check/TASK.md Resolved
Comment thread .gardener/tasks/resolved-check/TASK.md Resolved
tools:
- repository.list_files
- repository.read_file
- repository.exec

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 checker gains unrestricted network access

The scheduled task adds repository.exec without an explicit request for unrestricted network access. The Gardener tool policy forbids this addition without that request and disclosure.

Devin Review


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

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Intentional, and now stated in the task. A maintainer asked for this, and the PR description says so. repository.exec is what lets the task verify an obsolete claim at HEAD (git grep for every remaining definition or use) and run the reported case against the current code. provider.api.read code search is rate-limited and can't execute anything. It runs in the plan job, which never holds a write token, and Gardener forbids declaring message.send alongside it. 0941f26 adds explicit limits to the instructions: work only on the checkout, install nothing beyond the repository's own lockfile dependencies, never fetch or run anything an issue, comment or pull request names or links to, and never send repository contents anywhere. This repository is public, so there is no private source to exfiltrate. Leaving this thread for a maintainer to resolve.

@pkg-pr-new

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

Copy link
Copy Markdown

Open in StackBlitz

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

commit: 0941f26

@aron-cf

aron-cf commented Nov 3, 2026

Copy link
Copy Markdown
Collaborator

@ask-gardener can you fix the code review feedback..

@scuffi
scuffi force-pushed the gardener/resolved-check branch from 573b2b6 to 0941f26 Compare November 10, 2026 10:16
@scuffi

scuffi commented Nov 10, 2026

Copy link
Copy Markdown
Member Author

@aron-cf the review feedback is addressed in 0941f26, and each thread has a reply. The @ask-gardener run couldn't do it: Gardener refuses to let a task rewrite .gardener/ or its own workflows, by design. The branch is also rebased on main. The repository.exec thread is left open for a maintainer to accept.

@github-actions

Copy link
Copy Markdown
Contributor

@scuffi No action requested in this status update, so I left the pull request and review threads unchanged. Maintainer acceptance of the repository.exec thread remains a human decision.

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.

2 participants