Skip to content

Conversation

@kskarthik
Copy link
Contributor

Summary

Added a feature to the goose-cli crate to disable the update command.

Usecase: I have packaged goose for openSUSE Tumbleweed & i had to patch the build to disable update.

This feature comes handy instead of patching the code & quiet helpful for other distro package maintainers as well 🙂

Type of Change

  • Feature
  • Bug fix
  • Refactor / Code quality
  • Performance improvement
  • Documentation
  • Tests
  • Security fix
  • Build / Release
  • Other (specify below)

AI Assistance

  • This PR was created or reviewed with AI assistance

Testing

Tested manually

Screenshots/Demos (for UX changes)

Before:

$: goose update
WINDIR: <not set>
OSTYPE: linux
uname -s: Linux
uname -m: x86_64
PWD: /home/sai/my/code/goose-src
Detected OS: linux with ARCH x86_64
...

After:

$: cargo build --package goose-cli --features disable-update

$: goose update
Error: This command is disabled

@kskarthik
Copy link
Contributor Author

@michaelneale Sorry, I messed up the merging stuff in previous PR #5846

This is a fresh attempt :)

Signed-off-by: Sai Karthik <kskarthik@disroot.org>
Signed-off-by: Sai Karthik <kskarthik@disroot.org>
@kskarthik
Copy link
Contributor Author

Hi, Just a reminder please review this PR :)

@kskarthik
Copy link
Contributor Author

Hy! @alexhancock || @michaelneale please review this tiny patch 😅

@michaelneale michaelneale self-assigned this Dec 11, 2025
@michaelneale
Copy link
Collaborator

looks good - just wanted to know it leaves it as auto update by default? then lets get it in

@alexhancock
Copy link
Collaborator

Hi. Can you explain more about the reason for wanting this? As an implementation it looks OK to me but I am more curious about the motivation in general

@kskarthik
Copy link
Contributor Author

@alexhancock As i explained in the summary, It makes it easy to disable the CLI update sub command during the compile time (opt-in) for the distro package maintainers, instead of maintaining a patch manually & avoids duplication of work across distros.

@alexhancock
Copy link
Collaborator

I saw that, but I was wondering why it's helpful to have a feature that disables this manner of updating goose.

Could we make it so if goose is installed from a package repo, users could still update the goose update way or via the package repo and get the new version from the right source either way? I worry just disabling it presents a frustrating UX to run goose update only to see that the command is disabled without explanation for why, or what to do to update.

@michaelneale
Copy link
Collaborator

michaelneale commented Dec 13, 2025

@alexhancock it is very common in distributions of linux or other tightly packaged things to only have one wya to upgrade vs each tool doing their own, so I think this is a valid thing as it allows the goose binaries (which are nicely monolithic) to be packaged neatly in distros and not break signatures/security stance etc.

If someone installs it via a packaged way, it is fine to expect that to upgrade (you often get that with language runtimes) and user is always free to have their ownb user-land type version of it if they want (node/python have layers of things like that) so no surprise there.

Copy link
Collaborator

@michaelneale michaelneale left a comment

Choose a reason for hiding this comment

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

I think worth it to be distro packaging friendly.

@kskarthik
Copy link
Contributor Author

@kskarthik
Copy link
Contributor Author

@michaelneale @alexhancock Hope i have resolved all your queries. Good to merge !? 😃

@michaelneale michaelneale merged commit 02f56a0 into block:main Dec 16, 2025
16 checks passed
fbalicchia pushed a commit to fbalicchia/goose that referenced this pull request Dec 16, 2025
Signed-off-by: Sai Karthik <kskarthik@disroot.org>
aharvard added a commit that referenced this pull request Dec 16, 2025
…erer

* origin/main: (26 commits)
  Don't persist ephemeral extensions when resuming sessions (#5974)
  chore(deps): bump mdast-util-to-hast from 13.2.0 to 13.2.1 in /ui/desktop (#5939)
  chore(deps): bump node-forge from 1.3.1 to 1.3.2 in /documentation (#5898)
  Add Scorecard supply-chain security workflow (#5810)
  Don't show subagent tool when we're a subagent (#6125)
  Fix keyboard shortcut conflict for Focus Goose Window (#5809)
  feat(goose-cli): add feature to disable update (#5886)
  workflow: enable docs-update-recipe-ref (#6132)
  fix: filter tools in Ollama streaming when chat mode is enabled (#6118)
  feat(mcp): platform extension for "code mode" MCP tool calling (#6030)
  workflow: auto-update recipe-reference on release (#5988)
  Document recipe slash commands feature (#6075)
  docs: add GitHub Copilot device flow authentication details (#6123)
  Disallow subagents with no extensions (#5825)
  chore(deps): bump js-yaml in /documentation (#6093)
  feat: external goosed server (#5978)
  fix: Make datetime info message more explicit to prevent LLM confusion about current year (#6101)
  refactor: unify subagent and subrecipe tools into single tool (#5893)
  goose repo is too big for the issue solver workflow worker (#6099)
  fix: use system not developer role in db (#6098)
  ...
zanesq added a commit that referenced this pull request Dec 16, 2025
* 'main' of github.com:block/goose: (22 commits)
  OpenRouter & Xai streaming (#5873)
  fix: resolve mcp-hermit cleanup path expansion issue (#5953)
  feat: add goose PR reviewer workflow (#6124)
  perf: Avoid repeated MCP queries during streaming responses (#6138)
  Fix YAML serialization for recipes with special characters (#5796)
  Add more posthog analytics (privacy aware) (#6122)
  docs: add Sugar MCP server to extensions registry (#6077)
  Fix tokenState loading on new sessions (#6129)
  bump bedrock dep versions (#6090)
  Don't persist ephemeral extensions when resuming sessions (#5974)
  chore(deps): bump mdast-util-to-hast from 13.2.0 to 13.2.1 in /ui/desktop (#5939)
  chore(deps): bump node-forge from 1.3.1 to 1.3.2 in /documentation (#5898)
  Add Scorecard supply-chain security workflow (#5810)
  Don't show subagent tool when we're a subagent (#6125)
  Fix keyboard shortcut conflict for Focus Goose Window (#5809)
  feat(goose-cli): add feature to disable update (#5886)
  workflow: enable docs-update-recipe-ref (#6132)
  fix: filter tools in Ollama streaming when chat mode is enabled (#6118)
  feat(mcp): platform extension for "code mode" MCP tool calling (#6030)
  workflow: auto-update recipe-reference on release (#5988)
  ...

# Conflicts:
#	ui/desktop/src/App.tsx
#	ui/desktop/src/api/sdk.gen.ts
#	ui/desktop/src/components/ChatInput.tsx
#	ui/desktop/src/components/recipes/RecipesView.tsx
@kskarthik kskarthik deleted the disable-update branch December 24, 2025 15:38
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.

3 participants