You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sub-issue of #2229. Scoped out of #2231 / PR #2232, which lands the replacement machinery first — the monthly npm outdated sweep (.github/workflows/dependency-refresh.yml + scripts/dependency-refresh.mjs) and the release-time npm audit fix. This issue is the config change that switches the old flow off, and it is the only issue that touches .github/dependabot.yml.
PR #2232 originally carried the .github/dependabot.yml edit alongside the new workflow. Splitting it out keeps every change to that one file in a single reviewable piece — and there is a second, unresolved half to it (github-actions, below) that should not hold up the sweep landing.
The split has a consequence worth stating: between #2232 merging and this issue landing, Dependabot npm version-update PRs and the monthly tracking issue both exist. That overlap is duplicate signal rather than conflicting action, so it is harmless — but it is the reason this should follow closely rather than sit in the backlog.
Scope
1. Remove the five npm ecosystem entries
Root plus clients/{web,cli,tui,launcher} — v2 is not an npm workspace, so each carries its own package.json + lockfile and needs its own entry. Routine npm bumps are handled by the #2232 sweep from then on.
The file's header comment has to be rewritten in the same change: it currently exists to explain the per-client entries being deleted, and the target-branch note it carries stops applying to anything but the github-actions entry.
Two comments landing in #2232 assert this is already done and are false until this issue lands:
.github/workflows/dependency-refresh.yml:3 — "Dependabot version updates are disabled in .github/dependabot.yml"
scripts/dependency-refresh.mjs:4 — "Dependabot's version updates were disabled in .github/dependabot.yml"
#2232 will word both as pending and point here; this issue flips them to the past tense.
2. Decide the github-actions entry
#2229's decision is "Dependabot opens no PRs against this repo" — but it also declares github-actions out of scope, which leaves that entry live. As written it opens one grouped monthly PR against v2/main rewriting uses: refs across the workflows, and that PR arrives with no Closes #N and no board card — precisely the carve-out from "every PR references an issue" that #2229 exists to remove. So the carve-out is not closed by #2229 as scoped; it is narrowed to one ecosystem.
Decided: A. Confirmed by the maintainer 2026-09-03. .github/dependabot.yml is deleted outright rather than left with an empty updates: list — an empty list is a schema error Dependabot flags — and scripts/dependency-refresh.mjs grows a release-tag check for every uses: ref. B and C are kept below as the record of what was weighed, not as live options.
Three options were considered:
A. Fold actions into the monthly sweep (recommended). Remove the github-actions entry too, leaving .github/dependabot.yml with an empty updates: list or deleted outright, and teach dependency-refresh.mjs to report stale uses: refs in the same tracking issue. Costs a new check — npm outdated says nothing about actions, so this means parsing uses: out of the workflow YAML and comparing each ref against the action's latest release tag via the GitHub API. Consistent with #2229's stated decision, and the sweep already has the token scope to read public releases.
B. Keep the entry, create the issue by hand. Cheapest, and honest as long as it is written down: the monthly grouped PR arrives, a maintainer files an issue for it at review time and edits Closes #N into the body. Leaves one standing exception to the rule, enforced by nothing.
C. Leave it exactly as is. Only defensible if the exception is documented in AGENTS.md rather than left implicit, since a rule with a silent exception is the failure mode #2229 is arguing against.
On A's actual yield: all 9 refs are pinned to moving major tags (@v4/@v6/@v7), so the actions section of the monthly issue is empty today because no major bump is available — not because everything is current to the patch. With the repo pinned this way a v7 → v8 jump is the only thing that section will ever surface. The exactly-pinned comparison (v7.0.0 behind v7.0.1) is coverage for a pinning style the repo does not currently use, and a SHA pin cannot be ranked against tags at all. Say this in the PR so an empty section is not read as a stronger claim than it is.
Notes
⚠️ The file's current header records that Dependabot security updates are enabled in repo settings, not in this file, and kept working while the file was missing entirely (#1833, #1840). That is the evidence that deleting it does not silently disable security PRs — carry it into the PR body or #2233, because it is the one piece of institutional knowledge that dies with the file.
⚠️ Dependabot reads .github/dependabot.yml from the default branch (main), so nothing in this issue takes effect when the PR merges to v2/main — only at the next milestone merge. Verification that the npm PRs actually stopped (and that security-update PRs kept working, per the existing note in the file) has to happen after that merge, not at PR review time.
Done when
The five npm entries are gone and the file's header comment reflects what is left.
The github-actions entry is removed per decision A, and action staleness is reported by the sweep instead.
Sub-issue of #2229. Scoped out of #2231 / PR #2232, which lands the replacement machinery first — the monthly
npm outdatedsweep (.github/workflows/dependency-refresh.yml+scripts/dependency-refresh.mjs) and the release-timenpm audit fix. This issue is the config change that switches the old flow off, and it is the only issue that touches.github/dependabot.yml.Why it is separate from #2231
PR #2232 originally carried the
.github/dependabot.ymledit alongside the new workflow. Splitting it out keeps every change to that one file in a single reviewable piece — and there is a second, unresolved half to it (github-actions, below) that should not hold up the sweep landing.The split has a consequence worth stating: between #2232 merging and this issue landing, Dependabot npm version-update PRs and the monthly tracking issue both exist. That overlap is duplicate signal rather than conflicting action, so it is harmless — but it is the reason this should follow closely rather than sit in the backlog.
Scope
1. Remove the five
npmecosystem entriesRoot plus
clients/{web,cli,tui,launcher}— v2 is not an npm workspace, so each carries its ownpackage.json+ lockfile and needs its own entry. Routine npm bumps are handled by the #2232 sweep from then on.The file's header comment has to be rewritten in the same change: it currently exists to explain the per-client entries being deleted, and the
target-branchnote it carries stops applying to anything but thegithub-actionsentry.Two comments landing in #2232 assert this is already done and are false until this issue lands:
.github/workflows/dependency-refresh.yml:3— "Dependabot version updates are disabled in.github/dependabot.yml"scripts/dependency-refresh.mjs:4— "Dependabot's version updates were disabled in.github/dependabot.yml"#2232 will word both as pending and point here; this issue flips them to the past tense.
2. Decide the
github-actionsentry#2229's decision is "Dependabot opens no PRs against this repo" — but it also declares
github-actionsout of scope, which leaves that entry live. As written it opens one grouped monthly PR againstv2/mainrewritinguses:refs across the workflows, and that PR arrives with noCloses #Nand no board card — precisely the carve-out from "every PR references an issue" that #2229 exists to remove. So the carve-out is not closed by #2229 as scoped; it is narrowed to one ecosystem.Current surface is 9 distinct actions:
Important
Decided: A. Confirmed by the maintainer 2026-09-03.
.github/dependabot.ymlis deleted outright rather than left with an emptyupdates:list — an empty list is a schema error Dependabot flags — andscripts/dependency-refresh.mjsgrows a release-tag check for everyuses:ref. B and C are kept below as the record of what was weighed, not as live options.Three options were considered:
A. Fold actions into the monthly sweep (recommended). Remove the
github-actionsentry too, leaving.github/dependabot.ymlwith an emptyupdates:list or deleted outright, and teachdependency-refresh.mjsto report staleuses:refs in the same tracking issue. Costs a new check —npm outdatedsays nothing about actions, so this means parsinguses:out of the workflow YAML and comparing each ref against the action's latest release tag via the GitHub API. Consistent with #2229's stated decision, and the sweep already has the token scope to read public releases.B. Keep the entry, create the issue by hand. Cheapest, and honest as long as it is written down: the monthly grouped PR arrives, a maintainer files an issue for it at review time and edits
Closes #Ninto the body. Leaves one standing exception to the rule, enforced by nothing.C. Leave it exactly as is. Only defensible if the exception is documented in
AGENTS.mdrather than left implicit, since a rule with a silent exception is the failure mode #2229 is arguing against.On A's actual yield: all 9 refs are pinned to moving major tags (
@v4/@v6/@v7), so the actions section of the monthly issue is empty today because no major bump is available — not because everything is current to the patch. With the repo pinned this way av7→v8jump is the only thing that section will ever surface. The exactly-pinned comparison (v7.0.0behindv7.0.1) is coverage for a pinning style the repo does not currently use, and a SHA pin cannot be ranked against tags at all. Say this in the PR so an empty section is not read as a stronger claim than it is.Notes
.github/dependabot.ymlfrom the default branch (main), so nothing in this issue takes effect when the PR merges tov2/main— only at the next milestone merge. Verification that the npm PRs actually stopped (and that security-update PRs kept working, per the existing note in the file) has to happen after that merge, not at PR review time.Done when
npmentries are gone and the file's header comment reflects what is left.github-actionsentry is removed per decision A, and action staleness is reported by the sweep instead.v2/main→mainmilestone merge.