fix(release): the release build gets the shared monorepo it depends on - #79
Conversation
`@offgrid/sync` is a file: dependency on ../shared, so it has to sit beside the checkout before `npm ci` - an install cannot resolve a path that is not there, and the typecheck inside `npm run build` then fails on every import of it. That is exactly how tonight's beta died: 40-odd TS2307 lines naming one missing module. ci.yml has staged shared since the sync work landed; this workflow never did, which is why no release has built since 2026-07-30. Both build-mac and build-win now do it, at the release's own ref, falling back to shared main.
|
ⓘ Qodo reviews are paused because your trial has ended. Ask your workspace admin to add credits to resume reviews. Manage billing |
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe macOS and Windows release jobs now check out the shared repository, fall back to its default branch when needed, install workspace dependencies, and build ChangesRelease shared sync preparation
Estimated code review effort: 3 (Moderate) | ~15–30 minutes Suggested reviewers: ✨ 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 |
|
| run: | | ||
| if [ ! -d _shared ]; then | ||
| echo "::error::off-grid-ai/shared was not checked out - @offgrid/sync cannot resolve. Check CI_CROSS_REPO_TOKEN." | ||
| exit 1 | ||
| fi | ||
| rm -rf ../shared | ||
| mv _shared ../shared | ||
| # Install at the WORKSPACE ROOT: shared is an npm-workspaces monorepo whose lockfile and | ||
| # build tool live at the root, and packages/sync declares neither. A locked install, so a | ||
| # drifted lock stops the release instead of resolving a graph nobody committed. | ||
| npm --prefix ../shared ci | ||
| npm --prefix ../shared/packages/sync run build |
There was a problem hiding this comment.
Windows setup runs as PowerShell
When a release reaches build-win, this step runs under the Windows default PowerShell shell but uses Bash constructs such as if [ ... ], rm -rf, and mv, causing the step to fail before dependency installation and preventing Windows release artifacts from being produced.



@offgrid/syncis afile:../shareddependency, so it has to sit beside the checkout beforenpm ciruns. An install cannot resolve a path that is not there, and the typecheck insidenpm run buildthen fails on every import of it.That is how tonight's beta died — run 31502834587, build-mac, ~40
TS2307lines naming one missing module.ci.ymlhas staged shared since the sync work landed; this workflow never did, which is why no release has built since 2026-07-30. Bothbuild-macandbuild-winnow check out shared at the release's own ref, fall back to sharedmain, install at the workspace root and buildpackages/sync— the same sequenceci.ymluses.Workflow-only change. No source touched.
Greptile Summary
The PR stages and builds the adjacent shared monorepo before installing the application dependencies in both release jobs.
packages/sync.Confidence Score: 4/5
The PR should not merge until the Windows shared-workspace step explicitly uses Bash or is rewritten in PowerShell, because every Windows release build currently aborts there.
The macOS setup follows a compatible shell path, but the identical POSIX script is executed by default PowerShell on windows-2022, preventing the Windows release job from reaching dependency installation or artifact generation.
Files Needing Attention: .github/workflows/release.yml
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD A[Manual release dispatch] --> B[Build macOS] B --> C[Checkout matching shared ref] C -->|Failure| D[Fallback to shared main] C -->|Success| E[Move shared beside checkout] D --> E E --> F[Install and build shared sync package] F --> G[Build application] G --> H[Build Windows] H --> I[Run shared setup with default PowerShell] I --> J[Bash syntax rejected] J --> K[Windows artifacts not produced]Reviews (1): Last reviewed commit: "fix(release): the release build gets the..." | Re-trigger Greptile
Summary by CodeRabbit