Repository navigation
Split services into workspaces and offload extension packaging - #314
Conversation
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Deploying Preview to Cloudflare (api)No successful preview deployment recorded yetBuild and deployment attempts are listed below. Preview Deployments by commit
|
There was a problem hiding this comment.
All reported issues were addressed across 306 files
Note: This PR contains a large number of files. cubic selects up to 200 of the highest-priority eligible files for this review, so some files may not have been reviewed.
Turn on auto-fix | Re-trigger cubic
There was a problem hiding this comment.
0 issues found across 3 files (changes from recent commits).
Requires human review: Auto-approval blocked by 21 unresolved issues from previous reviews.
Turn on auto-fix | Re-trigger cubic
There was a problem hiding this comment.
1 issue found across 25 files (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="services/extension-packager/test/processor.test.ts">
<violation number="1" location="services/extension-packager/test/processor.test.ts:210">
P2: This assignment mutates the shared module-level `manifest` constant, because `f.input()` returns that same object. Clone the manifest before setting `modules` so later tests keep the base fixture.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Turn on auto-fix | Re-trigger cubic
There was a problem hiding this comment.
0 issues found across 5 files (changes from recent commits).
Requires human review: Large workspace split that rewrites CI/CD deploys and migrations, adds a new extension-packager service, and renames a public polling route; the deployment tradeoffs and the claim that processing stays disabled need human sign-off.
Turn on auto-fix | Re-trigger cubic
Changes
services/and shared code underlibraries/, using npm workspaces and one root lockfile. Most files in this diff are moves.services/extension-packagerwith a thin Netlify entry point and the same Request/Response handler used by the local Node server. A generic HTTP processor adapter sends object metadata; the runner reads and writes private B2 objects directly.PackagingJoband the polling route to/extensions/v2/packaging-jobs/{jobId}.Deployment setup
Production and Preview packaging remain disabled. This PR does not enable processing.
Before switching deployment workflows, configure the GitHub
productionandpreviewenvironments and their Cloudflare tokens, the repository account ID andAPI_PREVIEW_RESOURCESvariables, staging resources and Preview runtime secrets. Update required check names and disable Cloudflare Workers Builds Git integration to avoid duplicate deployments. WhenAPI_PREVIEW_RESOURCESis unset, CI explicitly skips Preview migrations and deployment while continuing validation and artifact checks. Configured Preview failures and production migration failures still fail CI. Details are in the API deployment guide.Before enabling processing, deploy and verify the separate Netlify project, configure its B2 credentials and shared secret, set the API's processor URL/secret, and repeat the controlled production canary with runtime measurements. Verify native dependencies, near-limit ZIPs, stored-source rebuilds, approval and cleanup. See the packager guide.
Matching directory and publisher polling-route changes are prepared locally and are outside this API PR. Publish those caller changes before enabling processing; keep the publisher rollout gated on the production runtime test.