Skip to content

refactor: goose-acp-server -> goose binary for TUI#8155

Merged
alexhancock merged 1 commit intomainfrom
alexhancock/goose-binary
Mar 27, 2026
Merged

refactor: goose-acp-server -> goose binary for TUI#8155
alexhancock merged 1 commit intomainfrom
alexhancock/goose-binary

Conversation

@alexhancock
Copy link
Copy Markdown
Collaborator

@alexhancock alexhancock commented Mar 27, 2026

Cleanup now that ui/acp package uses goose acp instead of the goose-acp-server. Everything now uses the goose binary wrapped in a native npm package.

We can get back to having server support when we make goose serve do what goose-acp-server does now per #7697

https://github.com/block/goose/actions/runs/23658726270 is a test publishing build. I will move PR out of draft if it doesn't introduce any new issues

@alexhancock alexhancock requested review from DOsinga and jamadeo March 27, 2026 17:28
@alexhancock alexhancock marked this pull request as ready for review March 27, 2026 18:38
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 93c221a463

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

}

const pkgDir = resolve(NATIVE_DIR, `goose-acp-server-${platform}`);
const pkgDir = resolve(NATIVE_DIR, `goose-${platform}`);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Copy binaries into goose-binary package directories

buildTarget now stages artifacts under ui/goose-binary/goose-${platform}/bin, but the actual workspace package folders are goose-binary-${platform}. This means build:native writes binaries into newly created non-package directories, so the real npm packages never get bin/goose; downstream release tooling (for example ui/scripts/publish.sh, which checks only goose-binary-*) will treat every platform package as missing its binary and skip/ship broken artifacts.

Useful? React with 👍 / 👎.

@alexhancock alexhancock force-pushed the alexhancock/goose-binary branch from 93c221a to 320a2ea Compare March 27, 2026 18:58
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 56a5f753ff

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

- name: Build goose binary
- name: Build goose CLI binary
if: steps.binary-cache.outputs.cache-hit != 'true'
run: cargo build --release --target ${{ matrix.target }} --bin goose
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Include goose CLI crates in publish trigger paths

After this change the workflow builds --bin goose, but on.push.paths still only watches crates/goose-acp/** and ui/acp/**; as a result, pushes to main that modify crates/goose-cli/**, crates/goose/**, or other goose CLI dependencies will not trigger this publish pipeline, and npm native packages can be released with stale binaries. Please update the path filters (or remove them) so source changes for the goose binary always run this workflow.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Collaborator

@DOsinga DOsinga left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean mechanical rename from goose-acp-server to goose-binary across the npm packaging infrastructure. Code is correct, CI is green, and it's a net deletion. The Codex P1 about path mismatch in build-native.ts is a false positive — the code correctly uses goose-binary-${platform}. The other Codex note about path filters in publish-npm.yml is a pre-existing issue not introduced by this PR. LGTM!

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 886870e9b8

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines 315 to 319
id: changesets
uses: changesets/action@6a0a831ff30acef54f2c6aa1cbbc1096b066edaf # v1.7.0
with:
publish: pnpm run release
publish: ${{ (inputs.dry-run == true || github.ref != 'refs/heads/main') && 'echo "Dry run - skipping npm publish"' || 'pnpm run release' }}
version: pnpm run version
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Reinstate dry-run gating for changesets action

This step now runs unconditionally, and changesets/action still receives a version command even when publish is swapped to an echo for dry runs. On workflow_dispatch runs with dry-run: true (or non-main refs), that can still create/update the release version PR, which is a repo-mutating side effect that the previous if: inputs.dry-run != true && github.ref == 'refs/heads/main' guard prevented.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Collaborator

@jamadeo jamadeo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a rust binary target to remove too?

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 87bbad1847

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +114 to +117
# Temporarily disabled - Windows builds are slow (20+ min) without cache
# - platform: win32-x64
# os: windows-latest
# target: x86_64-pc-windows-msvc
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Re-enable Windows build before publishing win32 binary pkg

In .github/workflows/publish-npm.yml, the Windows target is commented out, but the release job still publishes workspace packages and @aaif/goose continues to depend on @aaif/goose-binary-win32-x64 (ui/text/package.json). Since ui/goose-binary/.gitignore excludes */bin, CI checkouts do not contain bin/goose.exe, so the win32 package can be published without an executable, leaving Windows users with a broken bundled-server path.

Useful? React with 👍 / 👎.

run: |
cd ui
# Publish all packages in the workspace
pnpm publish -r --access public --no-git-checks
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Scope npm publish to intended packages

This replaces changesets-driven publishing with pnpm publish -r, which (per pnpm publish --help) publishes all workspace packages. In this repo, ui/pnpm-workspace.yaml includes desktop, so this step can attempt to publish ui/desktop (goose-app) alongside ACP/TUI/native packages, causing release failures or unintended npm publishes. The workflow should filter to the explicit release packages instead of publishing the entire workspace.

Useful? React with 👍 / 👎.

@github-actions
Copy link
Copy Markdown
Contributor

PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://block.github.io/goose/pr-preview/pr-8155/

Built to branch gh-pages at 2026-03-27 20:55 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 530ec6bced

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

run: |
cd ui
# Publish all packages in the workspace
pnpm publish -r --access public --no-git-checks
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Filter publish to version-bumped packages

Running pnpm publish -r --access public --no-git-checks here attempts to publish every workspace package on each main-branch run, but this commit removed the changesets versioning step that previously prepared publishable versions. In practice that means unchanged package versions will be re-attempted and npm will reject already-published versions, so a release can fail before newly bumped packages are published; add a version-bump step (or publish filtering) so only packages with new versions are sent to npm.

Useful? React with 👍 / 👎.

@alexhancock alexhancock added this pull request to the merge queue Mar 27, 2026
@alexhancock
Copy link
Copy Markdown
Collaborator Author

Is there a rust binary target to remove too?

I want to keep the goose-acp-server implementation there so that it's intact and can be moved to goose serve soon as part of #7697

Unless I misunderstood you and there is still cleanup that can be done regardless. Happy to follow up.

Merged via the queue into main with commit dfa93fe Mar 27, 2026
24 checks passed
@alexhancock alexhancock deleted the alexhancock/goose-binary branch March 27, 2026 21:20
michaelneale added a commit that referenced this pull request Mar 30, 2026
* origin/main: (63 commits)
  remove name from blog post (#8157)
  fix: use `overflow: clip` to not disrupt sticky ToC (#8158)
  chore(deps): bump path-to-regexp from 0.1.12 to 0.1.13 in /documentation (#8161)
  chore(deps): bump node-forge from 1.3.2 to 1.4.0 in /documentation (#8145)
  refactor: goose-acp-server -> goose binary for TUI (#8155)
  fix "View as Markdown" feature not working (#8160)
  feat(tui): UI improvements for messages, tool calls, text entry, etc (#8156)
  feat(desktop): add i18n infrastructure with react-intl (#8105)
  fix(tui): ordering of messages (#8144)
  fix: extension command with quotes in  cli (#8150)
  chore(aaif): Use Azure Artifact Signing for Windows (#8116)
  chore(aaif): Switch macOS code signing (#8076)
  Remove unused tool call json in logs (#8147)
  feat(tui): tab expand tool calls cleanly (#8136)
  fix: replace panics with user-friendly errors in CLI session builder (#7901)
  fix: read GOOSE_CONTEXT_LIMIT from config.yaml, not just env vars (#7900)
  fix: deliver truncation notice as separate content block (#7899)
  fix: use platform-appropriate commands in developer extension instructions (#7898)
  fix: replace any with proper SVG types in icon components (#7873)
  chore: remove debug console.log statements, stale comments, and dead code (#8142)
  ...
hydrosquall pushed a commit to hydrosquall/goose that referenced this pull request Mar 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants