Repository navigation
fix(deps): port main's advisory fixes to the v0.0.105 patch line (#1232, #1239) - #1245
Merged
saurabhmaheshwari-obin merged 5 commits intoOct 24, 2026
Conversation
…codefly-dev#1232) The frontend and marketing services pinned the nextjs agent at 0.0.163. That agent pins the framework EXACTLY in `base/code` and `templates/factory/code`, and its `framework_version_test.go` holds the lockfile's resolved version equal to the declared one, so no service it builds can resolve past the agent's pin. Through 0.0.166 that pin was next 16.3.6, which carries three criticals: - unauthenticated RCE in the Image Optimization API when SVG files are used (GHSA-2464-fhr4-w9xw) - DoS in App Router using Server Actions (GHSA-p3m5-59mp-jv5r) - RCE in `use cache` functions returning typed arrays (GHSA-673q-mjm6-r5xr) 0.0.167 ships next 16.4.1 (service-nextjs#177), and with it Go 1.27.3 for GO-2026-6809 (codefly-dev#178) and typescript back to ^5 — the only major typescript-eslint@8 admits, so the scaffold's own lint runs again (codefly-dev#179). Verified against the release rather than the release notes: v0.0.167 is a published, non-draft GitHub Release with 9 assets (`agent.version` resolves a Release, not a tag — a tag-only version 404s and takes every integration suite with it), and the tag itself carries next 16.4.1, typescript ^5 and go 1.27.3. This is the durable half of the Next.js remediation. The application-side lockfiles were already patched on main by codefly-dev#1027; this moves the agent that builds them, so a future service scaffolded here does not start vulnerable. Classification: fix, at the place that owns the framework version. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> (cherry picked from commit 7ed5ded) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…v#1239) Ported to the v0.0.105 line. Beyond codefly-dev#1239, this also takes main's exact pins from codefly-dev#1027 that the first-party audit gate needs on this line: next and eslint-config-next 16.4.1 (frontend and marketing; GHSA-2464-fhr4-w9xw, GHSA-p3m5-59mp-jv5r, GHSA-673q-mjm6-r5xr) and @sentry/nextjs 10.75.2 (GHSA-mchm-gjx6-7h55), and refreshes dompurify to 3.4.17 within its range (GHSA-cg2g-xh64-v4q7). Lockfiles regenerated with npm install --package-lock-only. The kit packages are byte-identical to main's 0.13.0. (cherry picked from commit f3fee4c) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…libc Regenerating the lockfiles with an older npm dropped every libc field, so npm ci on glibc would also install the musl binaries. Apart from those fields the files equal main's at f3fee4c. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A patch line cut from a deploy-counter tag lives on a release/** branch, and a pull request into it ran no checks because pull_request was scoped to main. release/** now gets the same checks. merge_group carries no branch filter and is unchanged. handbook-surface-bump makes the tagged interface current downstream. A tag push names a commit, not a branch, so the branch a tag was cut from is not in the event and github.ref cannot tell a main tag from a patch-line tag. The job now fetches main and dispatches only when the tagged commit is an ancestor of it (git merge-base --is-ancestor). A tag cut from a release/** branch still runs every release gate and publishes its artifacts; it is just not announced as current, since it lacks whatever main released after its base. main's next tag carries the announcement. A tag moved onto main later is announced by its next run, so the guard can only delay an announcement, never make a wrong one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…guard on git errors Three review fixes to the release/** patch-line support: - The authorization no-broadening gate diffed every pull request against main. A pull request into a release/** line now diffs against the branch it merges into (github.event.pull_request.base.ref); a pull request into main fetches and diffs main exactly as before. - The announce guard read every non-zero exit of git merge-base --is-ancestor as "not on main". Exit 1 still means that; any other exit (a missing object, a failed fetch) now fails the step instead of skipping the announcement. - The protobuf breaking-change gate on a tag compared against main as it stands. A tag whose commit is not on main now compares against git merge-base HEAD origin/main. That merge base is where the line forked, which is the release the line patches: comparing against main would report every message main gained since as a deletion, and comparing against the previous tag on the line would depend on tag naming and still reach the fork point for the line's first tag. It needs only the history the job already fetches. A tag on main, a merge ref and every other event keep their baseline, and the ancestry check fails the step on a git error, as above. RELEASE_GATES.md says so: a paragraph on patch lines in the cadence section (pull requests into release/** are checked, tags on a line pass every gate and publish, only tags on main announce, baseline gates compare against the line's base) and one in the surface-bump section on the announce guard. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
saurabhmaheshwari-obin
force-pushed
the
deps/advisories-v0.0.105
branch
from
October 24, 2026 17:56
be08450 to
e8a8920
Compare
saurabhmaheshwari-obin
merged commit Oct 24, 2026
66e9737
into
codefly-dev:release/v0.0.105-b2
23 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
This ports main's dependency advisory fixes onto the
release/v0.0.105-b2patch line. On v0.0.105 the "Codefly supply chain" gate (npm audit --omit=dev --audit-level=highon frontend and marketing) fails on advisories that were published after v0.0.105 was tagged, so every PR into this line and every tag cut from it is blocked. Nothing here is new work: it is main's resolution, carried back.7ed5dedf1), cherry-picked: the nextjs agent goes to 0.0.167, which ships a patched Next.js.f3fee4c06), ported with conflicts resolved in package.json and package-lock.json: Zod 4 (^4.6.6), @hookform/resolvers ^5.9.2, react-hook-form ^7.55.0. The call sites are the ones fix(deps): migrate production validation to patched Zod 4 #1239 changed (saas-uischema.ts,team-form.tsx, marketingenvironment.ts).f3fee4c06.CI on this line
The base branch's
ci.ymlrunspull_requestonly for PRs into main, so this PR also carries the two CI commits reviewed in #1243 (5a2c45ffb,e8a8920cb):release/**PRs run the full checks against their own base;They are identical to #1243's. When #1243 is rebased on this PR, they drop out of #1243 and its diff stays the reviewed one.
The cherry-picked commits here are re-authored and carry no co-author trailer naming a person, because the naming gate refuses one in a commit record. Credit: #1232 and #1239 on main.
Checks (local)
--omit=dev --audit-level=high: frontend and marketing both exit 0. Two moderates remain, fast-uri via ajv, the same as on main.scripts/ci/*.test.mjs: 193/193.module-verify.mjsis OK.boundaries.test.tsunder local Node 20 ("module.register is not a function"). The same 3 fail on the untouched v0.0.105. CI runs Node 24.Review
e8a8920cb): no actionable defects. Its findings:f3fee4c06, and Zod 4.6.7 and react-hook-form 7.87.0 satisfy the declared ranges.libc, is taken.Code-reviewer detail:
f3fee4c06. Main's CI was green on that commit.tscpasses;test-registry-uipasses.libcfield. The fix was to take main's lockfiles, which are otherwise identical (76edb5d12).TypeErroron an invalid URL, the same as on Zod 3.No security review beyond the audit going clean: these are main's fixes.
Order
Merge this first. Then #1243 (the workload operation arm) is rebased on it, so its supply-chain gate goes green with its reviewed diff unchanged.
Second consumer
None: this only keeps the patch line releasable. main already has these fixes.
🤖 Generated with Claude Code