Skip to content

Update goose to 1.39 - #48

Merged
samdoran merged 1 commit into
rhel-lightspeed:mainfrom
thepetk:bump-up-goose-139
Jul 30, 2026
Merged

Update goose to 1.39#48
samdoran merged 1 commit into
rhel-lightspeed:mainfrom
thepetk:bump-up-goose-139

Conversation

@thepetk

@thepetk thepetk commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

PR Description

Updates Goose to version 1.39.0, following the pattern of the previous version updates like:

Used claude code for this task -> especially what we have here: .claude/commands/goose-update/

Changes:

  • goose.spec: version bumped to 1.39.0
  • All 8 downstream patches rebased against 1.39.0 source
  • changelog: new 1.39.0-1 entry added

Notes for the reviewer

  • SRPM built successfully (spec parses, all patches apply)
  • No forbidden crates in the build path
  • No prebuilt binaries in vendor

Assisted-by: Claude Sonnet 4.6

Summary by CodeRabbit

  • New Features
    • Enhanced /status CLI with improved session/extension inspection and broader provider/config integration, plus ACP workflow improvements.
  • Bug Fixes
    • More reliable session creation record retrieval (avoids INSERT ... RETURNING issues).
    • Improved TLS/crypto compatibility via updated TLS backend/feature selection.
  • Tests
    • Updated agent system-prompt snapshot to remove codemode instructions.
  • Chores
    • Updated default feature flags and dependency selections, including platform cleanup, SQLite configuration, and disabling pregenerated ring assembly usage.
  • Documentation
    • Added release entry for version 1.39.0-1.

@thepetk
thepetk requested a review from a team as a code owner July 22, 2026 12:40
@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The PR updates downstream Cargo dependencies and feature flags, adjusts TLS and ring build behavior, changes session insertion SQL, refreshes prompt snapshots, and advances changelog and RPM metadata to version 1.39.0.

Changes

Dependency and build configuration

Layer / File(s) Summary
System dependencies and default features
0001-Strip-non-Linux-deps-and-use-system-libraries.patch, 0002-Set-downstream-feature-flags.patch
Removes platform-specific and vendored dependency configuration, updates default features, and switches SQLite to sqlite-unbundled.
TLS crypto backend selection
0003-Downgrade-pkcs8-to-0.10.2-for-native-tls-compat.patch, 0004-aws-lc-rs-feature-flag.patch
Downgrades pkcs8, adds ring, and updates rcgen TLS feature wiring.
Downstream ring assembly build
0100-Downstream-only-never-use-pre-generated-object-files.patch
Removes pregenerated assembly handling from the vendored ring build script.

Runtime SQL and prompt snapshots

Layer / File(s) Summary
Session insertion and retrieval
0020-Fix-sql-statement-from-session-manager.patch
Replaces INSERT ... RETURNING * with an executed insert followed by a last_insert_rowid() query.
Prompt snapshot update
0021-Update-snapshot-test-without-codemode-instructions.patch
Removes codemode instructions and assertion metadata from the active snapshot and adds the original prompt snapshot.

Release metadata

Layer / File(s) Summary
Release version and changelog
changelog, goose.spec
Adds release notes for 1.39.0-1 and updates RPM version references to 1.39.0.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

Suggested reviewers: kokesak

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: rebasing Goose to version 1.39.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
0100-Downstream-only-never-use-pre-generated-object-files.patch (1)

41-57: 🎯 Functional Correctness | 🔴 Critical | ⚡ Quick win

Return out_dir.clone() from the block.
generate_sources_and_preassemble(...) is used for its side effects; without a final expression, generated_dir becomes (), and the later build step will not type-check.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@0100-Downstream-only-never-use-pre-generated-object-files.patch` around lines
41 - 57, Update the generated_dir initialization block around
generate_sources_and_preassemble so it returns out_dir.clone() after the
side-effecting call. Preserve the existing source-generation behavior and ensure
generated_dir remains a PathBuf for the later build steps.
0004-aws-lc-rs-feature-flag.patch (1)

35-50: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Guard rcgen behind a backend feature rcgen is still compiled when neither TLS feature is enabled, and default-features = false leaves it without a backend in that case. Make it conditional on rustls-tls/native-tls, or add a fallback backend for the base build.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@0004-aws-lc-rs-feature-flag.patch` around lines 35 - 50, Update the rcgen
feature configuration in the rustls-tls and native-tls feature definitions so
rcgen is not compiled without a crypto backend when neither TLS feature is
enabled. Either make the rcgen dependency conditional on those TLS features or
add a suitable fallback backend for the base build, while preserving the
existing aws_lc_rs and ring backend selections.
🧹 Nitpick comments (1)
0003-Downgrade-pkcs8-to-0.10.2-for-native-tls-compat.patch (1)

18-19: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Make the pkcs8 compatibility constraint explicit.

version = "0.10.2" permits later compatible 0.10.x releases. If compatibility is specific to 0.10.2, use =0.10.2; otherwise document the tested range and rationale. Cargo treats omitted operators as caret requirements. (doc.rust-lang.org)

As per path instructions, version-pinning constraints and their rationale should be documented in comments.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@0003-Downgrade-pkcs8-to-0.10.2-for-native-tls-compat.patch` around lines 18 -
19, Make the pkcs8 dependency constraint explicit in the manifest: use an exact
0.10.2 requirement if compatibility is limited to that release, or retain the
0.10.x range only with a nearby comment documenting the tested range and
rationale. Update the pkcs8 dependency declaration in the patch accordingly.

Source: Path instructions

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@0001-Strip-non-Linux-deps-and-use-system-libraries.patch`:
- Around line 51-59: Restore the [profile.dev.package."*"] configuration with
debug = false in the patch, preserving the existing downstream debug-build
optimization while leaving workspace members and release behavior unchanged.

In `@changelog`:
- Around line 37-54: Remove the duplicate “Resolve bundled extensions from
discovery” entry in the changelog, keeping a single occurrence in the 1.39.0
release notes.

---

Outside diff comments:
In `@0004-aws-lc-rs-feature-flag.patch`:
- Around line 35-50: Update the rcgen feature configuration in the rustls-tls
and native-tls feature definitions so rcgen is not compiled without a crypto
backend when neither TLS feature is enabled. Either make the rcgen dependency
conditional on those TLS features or add a suitable fallback backend for the
base build, while preserving the existing aws_lc_rs and ring backend selections.

In `@0100-Downstream-only-never-use-pre-generated-object-files.patch`:
- Around line 41-57: Update the generated_dir initialization block around
generate_sources_and_preassemble so it returns out_dir.clone() after the
side-effecting call. Preserve the existing source-generation behavior and ensure
generated_dir remains a PathBuf for the later build steps.

---

Nitpick comments:
In `@0003-Downgrade-pkcs8-to-0.10.2-for-native-tls-compat.patch`:
- Around line 18-19: Make the pkcs8 dependency constraint explicit in the
manifest: use an exact 0.10.2 requirement if compatibility is limited to that
release, or retain the 0.10.x range only with a nearby comment documenting the
tested range and rationale. Update the pkcs8 dependency declaration in the patch
accordingly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 71799489-4aa8-4dd5-8dcb-7b0b587a2df6

📥 Commits

Reviewing files that changed from the base of the PR and between 5785d70 and 192cd30.

📒 Files selected for processing (9)
  • 0001-Strip-non-Linux-deps-and-use-system-libraries.patch
  • 0002-Set-downstream-feature-flags.patch
  • 0003-Downgrade-pkcs8-to-0.10.2-for-native-tls-compat.patch
  • 0004-aws-lc-rs-feature-flag.patch
  • 0020-Fix-sql-statement-from-session-manager.patch
  • 0021-Update-snapshot-test-without-codemode-instructions.patch
  • 0100-Downstream-only-never-use-pre-generated-object-files.patch
  • changelog
  • goose.spec

Comment thread 0001-Strip-non-Linux-deps-and-use-system-libraries.patch Outdated
Comment thread changelog Outdated
@samdoran

samdoran commented Jul 22, 2026

Copy link
Copy Markdown
Member

This seems like it's going in the right direction. We need to dig in and figure out why the builds are failing.

Command '['cargo', 'tree', '--workspace', '--offline', '--edges=normal,build,dev', '--no-dedupe', '--target=all', '--all-features', '--prefix=none', '--format', '{p}']' returned non-zero exit status 101.
error: failed to get `mlx-lm` as a dependency of package `goose v1.39.0 (/builddir/build/BUILD/goose-1.39.0/crates/goose)`

Caused by:
  failed to load source for dependency `mlx-lm`

Caused by:
  unable to update https://github.com/jh-block/mlx-lm#4cb85720

Caused by:
  can't checkout from 'https://github.com/jh-block/mlx-lm': you are in the offline mode (--offline)

error: Bad exit status from /var/tmp/rpm-tmp.8qsEZx (%build)

@samdoran

Copy link
Copy Markdown
Member

mlx-lm was added as an option dep in 1.39. Since that isn't needed on Linux, we can remove it. That should resolve the build failures.

@samdoran

samdoran commented Jul 22, 2026

Copy link
Copy Markdown
Member

I think we need to add something like this to patch 0001.

diff --git crates/goose/Cargo.toml crates/goose/Cargo.toml
index 9dc486e06..b6150e856 100644
--- crates/goose/Cargo.toml
+++ crates/goose/Cargo.toml
@@ -41,7 +41,6 @@ aws-providers = [
 ]
 cuda = ["local-inference", "candle-core/cuda", "candle-nn/cuda", "llama-cpp-2/cuda"]
 vulkan = ["local-inference", "llama-cpp-2/vulkan"]
-mlx = ["local-inference", "dep:mlx-rs", "dep:mlx-lm", "dep:mlx-lm-utils"]
 rustls-tls = [
     "dep:rustls",
     "reqwest/rustls",
@@ -204,9 +203,6 @@ nostr = { version = "0.44", default-features = false, features = ["nip44", "std"
 nostr-sdk = { version = "0.44", default-features = false, features = ["nip44"], optional = true }
 rustls = { workspace = true, optional = true }
 hf-hub = { version = "1.0.0-rc.1", default-features = false, optional = true }
-mlx-rs = { version = "0.25.3", default-features = false, features = ["accelerate", "metal", "safetensors"], optional = true }
-mlx-lm = { git = "https://github.com/jh-block/mlx-lm", optional = true }
-mlx-lm-utils = { git = "https://github.com/jh-block/mlx-lm", optional = true }
 
 pctx_code_mode = { version = "0.3", default-features = false, optional = true }

@thepetk

thepetk commented Jul 26, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for the input & review @samdoran!

Now I've addressed two issues actually:

  • 0001 patch: Addressed what you've pointed for mlx-lm, mlx-rs, and mlx-lm-utils.

  • Had to work also on 0002: as far as I understand mlx was still present in goose-cli and goose-server (mlx = ["goose/mlx", "local-inference"]), so I've tried to remove it (after some clauding tbh). Now I was balancing whether this is a change for 0001 or 0002.

@thepetk
thepetk force-pushed the bump-up-goose-139 branch from ff533ac to a578c22 Compare July 26, 2026 19:10
@thepetk

thepetk commented Jul 26, 2026

Copy link
Copy Markdown
Contributor Author

Also squashed all my commits cause I had to do a lot of them :)

@r0x0d r0x0d left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

On a top-level view, this looks mostly fine to me.

Something we could try doing is dropping the feature flags patch, and inside our build-scripts and specfile use more of the --disable-default-features --features native-tls,.... This way we know that we are always disabling and enabling only what we need and we remove a bit of the pain of managing patches for this kind of stuff.

@thepetk

thepetk commented Jul 28, 2026

Copy link
Copy Markdown
Contributor Author

So let's hold this one until #50 is merged

@thepetk
thepetk force-pushed the bump-up-goose-139 branch from a578c22 to 663d530 Compare July 28, 2026 15:22
@thepetk

thepetk commented Jul 28, 2026

Copy link
Copy Markdown
Contributor Author

@r0x0d @samdoran I've rebased my PR to latest main. It might have some failures on CI -> I'll investigate if so

@thepetk
thepetk force-pushed the bump-up-goose-139 branch from 43c15c5 to 13672f2 Compare July 28, 2026 17:37
@thepetk
thepetk force-pushed the bump-up-goose-139 branch from 13672f2 to 8b4d5d9 Compare July 28, 2026 18:04
@samdoran
samdoran merged commit a7340db into rhel-lightspeed:main Jul 30, 2026
20 checks passed
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