Repository navigation
Phase 0: scaffold — Next.js on Node and Cloudflare, SQLite on D1 and libsql - #1
Merged
Merged
Conversation
Spike step 2 of Phase 0: Next.js 16.4.1 renders under `opennextjs-cloudflare preview` (workerd) with HTTP 200. cacheComponents is off because it hangs requests under workerd. Next 16.4.2 is pinned down to 16.4.1: pnpm 12's minimumReleaseAge policy rejects packages published in the last day. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GnDXTQ6MVbAXETYsq6fvqg
packages/db exposes one async Db type over D1 (Workers) and libsql (Node). The Worker bundle gets only the D1 runtime via a turbopack alias keyed on GITWORK_TARGET. /api/v1/health proves a DB round trip on both runtimes; scripts/smoke.sh checks both end to end and fails if libsql code reaches the Worker bundle. Pins Next 16.3.8 + OpenNext 1.20.11: newer releases are under pnpm's one-day minimumReleaseAge policy, and 1.20.11 does not run Next 16.4. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GnDXTQ6MVbAXETYsq6fvqg
Playwright smoke test against the Node runtime, a CI workflow that runs lint, typecheck, unit tests (both DB drivers), E2E, and the dual-runtime smoke script. AGPL-3.0 license, README, .env.example, real commands in CLAUDE.md. Phase 0 feature doc replaces the WIP doc. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GnDXTQ6MVbAXETYsq6fvqg
smoke.sh refuses to run when its ports are busy and stops servers by process group. The bundle scan moves to scan-worker-bundle.sh; both of its checks and the port guard were proven to fail. Decision 016 records libsql, batch-only atomic writes, and the build-time driver split. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GnDXTQ6MVbAXETYsq6fvqg
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GnDXTQ6MVbAXETYsq6fvqg
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
Phase 0 from
docs/spec.md. The stack every later phase builds on:apps/web(Next.js),packages/core,packages/db.Dbtype over D1 (Workers) and libsql (Node).batch()is the only atomic write (decision 016).GET /api/v1/healthproves a DB round trip and reports the driver.scripts/smoke.sh(both runtimes end to end + Worker bundle scan), CI.docs/features/scaffold.md.Verification
The full CI sequence passes in a fresh local clone: install, lint, typecheck, 9 unit tests, 2 E2E tests, smoke (Node →
sqlite, Worker →d1). Each guard in the smoke script was proven to fail.Known pins
Next 16.3.8 + OpenNext 1.20.11: newer releases are under pnpm's one-day
minimumReleaseAge, and OpenNext 1.20.11 fails on Next 16.4. Upgrade is a chore indocs/STATE.md.🤖 Generated with Claude Code
https://claude.ai/code/session_01GnDXTQ6MVbAXETYsq6fvqg