Skip to content

Daily vulnerability audit that can submit a draft GitHub Release - #5

Merged
Mezzair merged 1 commit into
mainfrom
cursor/daily-security-release-fee3
Aug 20, 2026
Merged

Daily vulnerability audit that can submit a draft GitHub Release#5
Mezzair merged 1 commit into
mainfrom
cursor/daily-security-release-fee3

Conversation

@Mezzair

@Mezzair Mezzair commented Aug 20, 2026

Copy link
Copy Markdown
Member

CI already fails the build on high/critical npm and Rust advisories, but that only happens when someone pushes. This adds a scheduled job that checks every day and, when a non-breaking fix exists, ships a patch the same way a human would: bump 0.7.10.7.2, tag, and dispatch the existing signed Release workflow so a draft appears on GitHub Releases for review.

Today's scan

Ran against current main (v0.7.1):

  • npm: two high findings, both already allowlisted in audit-ci.jsoncimage-size DoS via remark-docx (GHSA-w3rx-r6r6-pgpr, GHSA-5p2g-fcmc-qvqq). Every published image-size version is still affected; there is no patched release to bump to. A major downgrade of remark-docx is the only "fix" npm offers, and we do not take that.
  • Rust: cargo audit reports no vulnerabilities. Remaining items are the usual unmaintained/unsound warnings (gtk3 bindings, etc.), which CI already allows.
  • brace-expansion is already 5.0.9 on main. Dependabot PR Build(deps): bump brace-expansion from 5.0.8 to 5.0.9 #3 is stale and not needed for a release.

So this PR does not cut v0.7.2. There is nothing remediable to ship. Once an advisory appears that npm audit fix / cargo audit fix can apply without a major break, the daily job will open the draft release on its own.

What lands

  • .github/workflows/daily-security.yml — 06:00 UTC and Run workflow. On main, if it remediates something: test, build frontend, commit, tag, dispatch Release. If a high/critical stays unfixed, it opens or comments on an Outstanding dependency vulnerabilities issue instead.
  • scripts/security-release.mjs — shared scan/remediate/version-bump logic. It will not treat lockfile churn as a release when the only findings are allowlisted.
  • release.yml — optional tag / notes inputs so the daily job (or a human) can dispatch a draft with real notes. Tag-push behaviour is unchanged.
  • Docs in SECURITY.md and DISTRIBUTION.md. npm run audit is the existing audit-ci check.

How to try it

After merge: Actions → Daily security audit → Run workflow from main. Today's expected result is a green no-op (allowlisted findings only, no tag).

If main is branch-protected, the Actions bot needs permission to push, or the commit/tag step will fail until that is granted.

Open in Web Open in Cursor 

Schedule npm and cargo audits each day. When a high or critical advisory
has a non-breaking fix, apply it, bump the patch version, and dispatch
the existing signed Release workflow. Allowlisted or unfixable findings
do not ship; they open a tracking issue instead.

Co-authored-by: James Merrix <james@appoly.co.uk>
@Mezzair
Mezzair marked this pull request as ready for review August 20, 2026 08:19
@Mezzair
Mezzair merged commit 600bdd9 into main Aug 20, 2026
2 checks 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.

2 participants