Skip to content

deps: bump hono to ^4.13.3 to clear the CI audit gate - #42

Merged
utsengar merged 1 commit into
mainfrom
bump-hono-audit
Aug 22, 2026
Merged

deps: bump hono to ^4.13.3 to clear the CI audit gate#42
utsengar merged 1 commit into
mainfrom
bump-hono-audit

Conversation

@utsengar

Copy link
Copy Markdown
Owner

Why

npm audit --omit=dev --audit-level=high (the CI gate) started failing on every PR. A 16-advisory batch published against hono <=4.12.33 and we were pinned ^4.12.18.

main's last green run was 2026-06-13, before these advisories landed — so CI has been red on all branches since, and no PR can produce a Cloudflare preview URL. That's currently blocking #41.

Exposure: as far as I can tell, none of it reaches us

Worth stating plainly, because this is unblocking a blunt gate rather than patching a live hole. src/ imports only Hono and the Context type — no middleware packages at all:

Advisory area Reaches htmlbin?
CORS middleware No — CORS is deliberately unset (documented in CLAUDE.md)
JWT middleware No — Bearer auth is hand-rolled in src/auth.ts
hono/jsx, memo(), cx() No — views are template strings
serve-static path traversal No — not used
app.mount() No — not used
Lambda / Lambda@Edge / API Gateway adapters No — Cloudflare Workers
Body Limit middleware (Lambda) No — we do our own MAX_HTML_BYTES check
Cookie helper Set-Cookie injection No — getCookie at src/index.ts:764 is hand-rolled, not hono's helper

Scope

Two lines: package.json + package-lock.json. Deliberately its own PR so it's reviewable on its own merits and doesn't ride along inside an unrelated content PR.

4.12 → 4.13 is a minor bump, and nothing in src/ touches the changed surfaces.

Verification

  • npm audit --omit=dev --audit-level=high — exits 0 (ran the exact CI command)
  • npx tsc --noEmit — clean
  • npm run test:e2e — all 126 checks pass on hono 4.13.3

Note on the other 6 advisories

A bare npm audit still reports 6 (wrangler → esbuild, miniflare → sharp/undici/ws). All dev-only — they don't ship to the Worker, which is exactly why the workflow passes --omit=dev. Left alone.

🤖 Generated with Claude Code

`npm audit --omit=dev --audit-level=high` started failing on every PR: a
16-advisory batch landed against `hono <=4.12.33`, and we were on
^4.12.18. main's last green run was 2026-06-13, before these published,
so CI was red on all branches and no PR could get a preview URL.

htmlbin's actual exposure to that batch appears to be nil — src/ imports
only `Hono` and the `Context` type. No CORS middleware (deliberately
unset), no JWT, no hono/jsx, no serve-static, no app.mount, and we're on
Workers rather than Lambda, which is what most of the advisories target.
Even the Set-Cookie injection one doesn't reach us: getCookie in
src/index.ts:764 is hand-rolled, not hono's helper.

So this is unblocking a blunt gate rather than patching a live hole. Kept
as its own commit so it's reviewable on its own and doesn't ride along in
an unrelated PR.

4.12 -> 4.13 is a minor bump; nothing in src/ touches the changed
surfaces.

Verified:
- `npm audit --omit=dev --audit-level=high` (the exact CI command) exits 0
- `npx tsc --noEmit` clean
- `npm run test:e2e` — all 126 checks pass

The 6 advisories `npm audit` still reports without --omit=dev are all
dev-only (wrangler -> esbuild, miniflare -> sharp/undici/ws) and don't
ship to the Worker, which is why the workflow excludes them.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

🚀 Cloudflare preview

URL: https://6ce3447c-htmlbin.utkarsh2012.workers.dev

Built from commit 3ae1e28b1a21dc19af23057bceee7b0bb04c5dca.

Note: bindings (D1, KV, AI) are shared with production.
Avoid destructive PR tests on real data.

@utsengar
utsengar merged commit dcd44de into main Aug 22, 2026
1 check passed
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.

1 participant