Skip to content

Resolve upstream conflict without touching other templates - #3

Merged
Uzair-Ahmed-Dahraj merged 12 commits into
add-shopify-on-cloudflare-templatefrom
fix/minimal-blast-radius
Aug 20, 2026
Merged

Resolve upstream conflict without touching other templates#3
Uzair-Ahmed-Dahraj merged 12 commits into
add-shopify-on-cloudflare-templatefrom
fix/minimal-blast-radius

Conversation

@Uzair-Ahmed-Dahraj

Copy link
Copy Markdown

Supersedes #2. Same conflict resolution, one decision changed.

What this resolves

cloudflare/templates#1075 is conflicted on pnpm-lock.yaml and templates.json. Both are generated files that collide whenever upstream merges anything. Upstream landed 9 commits on Aug 12-14, including cloudflare#1114 which made syncpack a required CI gate (check:deps).

This branch builds on #2 (keeping its upstream merge, the timing-safe HMAC fix, and the Playwright strict-mode fix) and changes only how the new dep gate is satisfied.

The change

#2 satisfied check:deps by bumping four unrelated templates up to our versions:

Template Was changed
remix-starter-template @typescript-eslint/* 8.50.0 -> 8.59.4
to-do-list-kv-template @typescript-eslint/* 8.50.0 -> 8.59.4
x402-proxy-template @typescript-eslint/* 8.50.0 -> 8.59.4
workflows-starter-template @vitejs/plugin-react-swc 4.0.0 -> 4.3.1

This branch instead aligns our two versions down to what upstream already uses, and reverts those four templates to upstream.

Result: 4 files touched outside our own template, down from 12. Zero other templates modified.

Why this is not forced by CI

check:deps has many valid passing states. fix:deps is an autofixer that resolves upward, but its choice is a convenience, not a requirement. Verified with the four templates reverted and ours aligned:

pin all deps ................ 450 valid
Default Version Group ....... 424 already valid
check:deps .................. PASS

Security posture is unchanged

Upstream main already sits where the security fix landed (wrangler 4.123.0 in 35 templates, @cloudflare/vite-plugin 1.52.1 in 11), so there is nothing to downgrade on the undici chain. All kept: wrangler 4.123.0, @cloudflare/vite-plugin 1.52.1, vitest 4.1.10, hono 4.13.2, react-router-dom 7.18.2.

Only @typescript-eslint/* and @vitejs/plugin-react-swc move. Neither is in an advisory chain.

npm audit: 0 high, 4 moderate (only drizzle-kit -> @esbuild-kit/esm-loader -> esbuild).

Verification

Gate Result
pnpm install --frozen-lockfile Lockfile is up to date
check:deps PASS
check:templates PASS
check:lockfiles PASS
check:prettier PASS
validate-version-private-package-json PASS
unit tests 21/21
vite build + wrangler deploy --dry-run PASS
cf-typegen idempotent PASS, no drift

pnpm-lock.yaml adds only the shopify-on-cloudflare-template importer. templates.json adds only our entry, hash 17513a96..., matching the file's sha1.

Known issue, not addressed here

The template's own npm run lint reports 426 formatting errors (no-tabs 206, indent 101, quotes 65). The monorepo's prettier writes tabs and double quotes; the template's airbnb config wants spaces and single quotes. Pre-existing on both branches and invisible to CI, since turbo only runs check. Worth a separate fix.

scottbuscemi and others added 12 commits August 3, 2026 18:16
…d Cloudflare Access (cloudflare#1100)

Co-authored-by: chythra-w1 <chythra-w1@users.noreply.github.com>
Co-authored-by: James Delorey <jdelorey@cloudflare.com>
…ith ctx.access (cloudflare#1125)

Co-authored-by: chythra-w1 <chythra-w1@users.noreply.github.com>
Co-authored-by: James Delorey <jdelorey@cloudflare.com>
…dflare-template

# Conflicts:
#	pnpm-lock.yaml
#	templates.json
…with new pin-all-deps CI gate

- Resolve pnpm-lock.yaml and templates.json conflicts against upstream main
- Comply with new syncpack 'pin all deps' rule (upstream cloudflare#1114): exact-pin all shopify template deps
- versionGroups for peer-dep-constrained stack (same mechanism as remix's React 18):
  * React ^18 (@shopify/app-bridge-react@4 + @shopify/polaris@10 peer-cap at 18)
  * eslint 8.57.1 + eslint-plugin-react-hooks 4.6.0 (eslint-config-airbnb is eslint-8-only)
  * hono 4.13.2 (high advisories <=4.12.33: JWT auth-bypass GHSA-r38q-p5jb-mjvw, XSS GHSA-f9qg-mpr5-mhfp)
  * react-router-dom 7.18.2 (high advisory <=7.17.0: turbo-stream RCE)
- Cross-template syncpack alignment (HighestSemverMismatch): bump @typescript-eslint/plugin-react-swc in remix, to-do-list, workflows, x402
- Fix E2E backlink locator: exact match (GitHub link text contains 'devkindhq', broke strict mode)

Gates: check:deps/templates/lockfiles/prettier OK; turbo check+cf-typegen 3/3; vitest 21/21; playwright 5/5; npm audit 0 high/0 critical
The pin-all-deps gate (upstream cloudflare#1114) only needed our two mismatched dev
tools brought in line with what upstream already uses. Bumping the four
other templates up was not required.

Reverts remix-starter, to-do-list-kv, workflows-starter and x402-proxy to
upstream, and sets ours to @typescript-eslint 8.50.0 and
@vitejs/plugin-react-swc 4.0.0. Regenerates templates.json,
package-lock.json and pnpm-lock.yaml.

Security posture is unchanged: wrangler 4.123.0, @cloudflare/vite-plugin
1.52.1, vitest 4.1.10, hono 4.13.2 and react-router-dom 7.18.2 are all
kept, and none of the moved packages is in an advisory chain. npm audit
reports 0 high, 4 moderate (drizzle-kit -> esbuild only).
@Uzair-Ahmed-Dahraj
Uzair-Ahmed-Dahraj merged commit 60cd986 into add-shopify-on-cloudflare-template Aug 20, 2026
4 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.

4 participants