发布

  • [codex] fix CLI binary release workflow (#3041)

    frostbyte_neo 发布于 2026-03-27 09:56:30 +00:00

    What changed

    • make build:binary:cross emit the run-subagent-*.mjs companion
      modules alongside the compiled CLI binary
    • update the Build CLI Binaries workflow to include those companion
      modules in the published release archives
    • make install.sh copy companion modules when they are present, while
      remaining backward compatible with older archives that only contain
      composio
    • fix the CLI installation workflow assertions to match the actual
      installer behavior and paths

    Why

    composio run launches a separate Bun runtime that imports the
    run-subagent-* helpers from disk. The main binary alone is not
    sufficient. The previous release workflow zipped only the composio
    binary, so prerelease assets installed successfully but failed at
    runtime with missing-module errors.

    The installation test workflow also had stale expectations for
    ~/.composio/bin/composio and COMPOSIO_INSTALL, which caused false
    negatives even when installation itself succeeded.

    Impact

    • newly built CLI release assets will contain the files required for
      composio run
    • install.sh will install sidecars for new releases and ignore them
      for older releases
    • the installation workflow will validate the real install layout
      instead of the stale bin/ path

    Validation

    • pnpm --filter @composio/cli run build:binary:cross --target bun-darwin-arm64 from the existing checkout emitted:
      • dist/binaries/composio-darwin-aarch64
      • dist/binaries/companions/run-subagent-shared.mjs
      • dist/binaries/companions/run-subagent-acp.mjs
      • dist/binaries/companions/run-subagent-legacy.mjs
    • simulated the GitHub Actions archive step and verified the zip
      contains composio plus all three companion modules
    • earlier local binary/package validation on the main fix branch
      confirmed the extracted binary runs composio run 'console.log("hello")' successfully once those files are packaged
    下载附件