Skip to content

fix(renovate): say the two things a fork has to say - #35

Merged
theRealBithive merged 1 commit into
mainfrom
fix/renovate-fork-processing
Sep 16, 2026
Merged

theRealBithive merged 1 commit into
mainfrom
fix/renovate-fork-processing

Conversation

@theRealBithive

Copy link
Copy Markdown
Owner

What was wrong

Renovate has access to this repository, .github/renovate.json5 is on main, and renovate-config-validator passes on it. Across two scheduled Mondays it had opened nothing: no pull request, no dependency dashboard, no config warning.

With schedule: ['before 6am on monday'], that is indistinguishable from a healthy quiet week — which is exactly what CLAUDE.md told the reader to expect.

Checked
Pull requests by renovate[bot] none, across the 60 most recent PRs
Dependency dashboard issue does not exist
Config warning issue does not exist
.github/renovate.json5 on main yes
renovate-config-validator passes
Issues enabled on the repo yes (they were not when the section was written)

What changes

Two defaults were deciding this silently. Both are now written out in the config:

  • forkProcessing: 'enabled' — this repository is a fork of QuackbackIO/quackback, and Renovate's 'auto' default decides for itself whether to process one. It is the single condition here specific to being a fork.
  • dependencyDashboard: true — rather than inheriting it from config:recommended. It is the only surface showing what Renovate is holding back, the only checkbox that forces a run off schedule, and the only thing that tells a running app from an absent one on a non-Monday.

Neither changes what Renovate would do if it were already running. They remove the two ways it can do nothing without saying so.

The documentation was the other half of the bug

CLAUDE.md asserted the app was installed and that "a quiet week is expected rather than a symptom". Both sentences were load-bearing and one of them was wrong. The section now carries what was measured, the order to check things in when the stream goes quiet — dashboard exists, config validates, config is on the default branch — and the one thing a shell cannot check: the installation itself needs an app-authorized token, and GitHub Apps do not appear under repos/.../hooks.

What the quiet cost

bun scripts/audit-check.ts passes, because nothing is high or critical. Twenty advisories are open in the tree:

  • hono ×10 — including hono/jsx not isolating context per request and memo() retaining SSR output across requests (both cross-user leaks), plus ReDoS in the CORS and language middleware
  • qs ×3 (DoS), uuid, fast-xml-parser, @hono/node-server, body-parser, esbuild, @babel/core

All transitive — the class lockFileMaintenance exists for, and the class GitHub's dependency graph cannot see, because it does not parse bun.lock.

Gates

Config-only and documentation-only. renovate-config-validator passes on the edited file; prettier clean. Nothing in the running service changes.

🤖 Generated with Claude Code

Renovate has access to this repository, its config is on `main`, and
`renovate-config-validator` passes on it — and across two scheduled Mondays it
had opened nothing at all: no pull request, no dependency dashboard, no config
warning. A weekly schedule makes that indistinguishable from a healthy quiet
week, which is how it went unnoticed.

Two defaults were deciding this silently, and both are now written out:

  - `forkProcessing: 'enabled'`. This repository is a fork, and Renovate's
    `'auto'` default decides for itself whether to process one. It is the single
    condition here that is specific to being a fork, and saying it outright
    costs nothing.
  - `dependencyDashboard: true`, rather than inheriting it from
    `config:recommended`. The dashboard is the only surface that shows what
    Renovate is holding back, the only checkbox that forces a run off schedule,
    and — with a weekly schedule — the only thing that distinguishes a running
    app from an absent one on a Tuesday. Issues are enabled on the repository
    now, so it has somewhere to appear.

`CLAUDE.md` claimed the app was installed and that a quiet week was expected
rather than a symptom. Both sentences were load-bearing and one of them was
wrong, so the section now carries what was measured, the order to check things
in when the stream goes quiet, and the one thing a shell cannot check.

What the quiet has cost is not hypothetical: `bun scripts/audit-check.ts` passes
because nothing is high or critical, while 20 advisories sit open in the tree —
ten in `hono`, several of those cross-request leaks. All transitive, which is
the class `lockFileMaintenance` exists for and the class GitHub's dependency
graph cannot see, because it does not parse `bun.lock`.

Nothing in the running service changes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@theRealBithive
theRealBithive merged commit 25b2b53 into main Sep 16, 2026
11 checks passed
@theRealBithive
theRealBithive deleted the fix/renovate-fork-processing branch September 16, 2026 09:03
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