fix(deploy): per-package pnpm (workspace broke Railway) - #17
Conversation
Railway services have rootDirectory=backend|frontend, so the build context only contains that subdir. The pnpm workspace lockfile and manifest at the repo root are not visible from inside the build, so `cd .. && pnpm install` failed with ERR_PNPM_NO_PKG_MANIFEST. Drop the workspace; each package is now self-contained: - packageManager + onlyBuiltDependencies pinned in each package.json - pnpm-lock.yaml in each subdir - railway.toml runs `corepack enable && pnpm install --no-frozen-lockfile && pnpm run build` in the service rootDir Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Mention Blocks like a regular teammate with your question or request: @blocks review this pull request Run |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (7)
💤 Files with no reviewable changes (2)
📝 WalkthroughWalkthroughThis PR migrates the repository from a pnpm workspace (monorepo) structure to independent backend and frontend packages with separate lockfiles and build processes. Root workspace configuration is removed, engine constraints are added per-package, build commands are updated to run independently, and documentation is clarified. ChangesMonorepo to Independent Packages
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
* feat(frontend): /projects/:slug deep links + UI pass Adds canonical /projects/:slug URLs (slug-or-id resolved against the project list, mirrored via replaceState). Plus a 10-item UI batch: light-mode elevation tokens, copy-link buttons (project + task) backed by a new toast surface, Cmd+K command palette, dashed-border empty kanban hints, click-to-edit markdown descriptions, density toggle, drag-resize sidebar, and a sub-768px mobile banner. Frontend-only. Build clean (43 modules, 235kB JS, 23kB CSS). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs: drop pnpm-migration follow-up (landed in #16/#17) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
The pnpm workspace landed in #16, but Railway's services have
rootDirectory=backend|frontendset, so nixpacks only copies that subdir into the build context. The workspace lockfile + manifest at the repo root are not visible from inside the build, socd .. && pnpm installfailed withERR_PNPM_NO_PKG_MANIFEST.This PR drops the workspace and makes each package self-contained:
packageManager: "pnpm@10.33.2"+pnpm.onlyBuiltDependencies: ["esbuild"]pinned in eachpackage.jsonpnpm-lock.yaml(underbackend/andfrontend/)railway.tomlrunscorepack enable && pnpm install --no-frozen-lockfile && pnpm run buildfrom the service rootDirLocal verification
cd backend && pnpm typecheck && pnpm test && pnpm build— clean, 14/14 tests passing, 2.5 MB CJS bundlecd frontend && pnpm build— clean, 39 modules / 223 kB / 21 kB🤖 Generated with Claude Code
Summary by CodeRabbit
Documentation
Chores