fix: embed framework sources in cross-compiled binaries - #278
Conversation
The cross-compile build step (Linux/Windows) was missing prepare-framework-sources.ts and --include dist/framework-src, causing agent/ and workflow/ modules to 404 in production. The macOS build (deno task build) already included these.
There was a problem hiding this comment.
Pull request overview
This PR updates the CI cross-compile pipeline so compiled Linux/Windows/macOS binaries embed the generated dist/framework-src framework sources, preventing production 404s for framework module URLs (per #275).
Changes:
- Run
scripts/build/prepare-framework-sources.tsin thebuild-binariesworkflow prior to compilation. - Add additional
deno compile--includeflags forsrc/platform/polyfills,src/proxy/main.ts, anddist/framework-src.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - run: deno run -A scripts/build/generate-templates-manifest.ts | ||
| - run: deno run -A scripts/build/prepare-framework-sources.ts | ||
|
|
There was a problem hiding this comment.
The new prepare-framework-sources.ts step will run in the Windows matrix as well. That script currently derives FRAMEWORK_ROOT from new URL(..., import.meta.url).pathname, which produces POSIX-style /C:/... paths on Windows and is not a reliable filesystem path. This can break the Windows build leg (and later release steps that expect a Windows artifact). Consider either making the script use a proper file-URL-to-path conversion (e.g., std/compat fromFileUrl / fileURLToPath) or gating the step to non-Windows runners until the script is Windows-safe.
…dbox - teams/confluence template clients: strip HTML tags to a fixed point and decode & last, closing incomplete-multi-character-sanitization and double-escaping findings (alerts #276-#278) - push command: drop the dead pushedSourceDigest initializer — every path that reads it reassigns via computePushedSourceDigest, which revalidates remote content itself (alert #285) - worker-script: remove a null comparison already excluded by the early return at the top of snapshotStructuredData (alert #247) - execution-support test: call throwIfChildRunAborted directly instead of asserting the return value of a void function (alerts #279/#280)
Summary
prepare-framework-sources.tsand--include dist/framework-srcagent/andworkflow/framework modules to 404 in production (Framework modules agent/react and others return 404 in production #275)deno task build) already included these correctlyChanges
prepare-framework-sources.tsstep before cross-compile--include src/platform/polyfills --include src/proxy/main.ts --include dist/framework-srcto cross-compile commandTest plan
curl https://flow-ops.veryfront.com/_vf_modules/_veryfront/agent/react/index.jsreturns 200