Skip to content

chore: bump workspace dependencies#7665

Closed
jh-block wants to merge 23 commits intomainfrom
jhugo/bump-workspace-deps
Closed

chore: bump workspace dependencies#7665
jh-block wants to merge 23 commits intomainfrom
jhugo/bump-workspace-deps

Conversation

@jh-block
Copy link
Copy Markdown
Collaborator

@jh-block jh-block commented Mar 4, 2026

Summary

Bump several dependencies to reduce duplicate crate versions in the dependency tree.

Notable changes

  • axum 0.7 → 0.8 in goose-test-support
  • image 0.24 → 0.25 in goose-mcp
  • thiserror 1.0 → 2.0 (workspace)
  • utoipa 4 → 5 (workspace) — updates OpenAPI spec from 3.0.3 to 3.1.0, adapts derive_utoipa! macro and schema type APIs
  • rand 0.8 → 0.10 (workspace) — migrates goose-server to workspace dep, updates API (thread_rngrng, gen_rangerandom_range, etc.)
  • zip → 8 as new workspace dep — migrates goose (from 0.6) and goose-cli to workspace dep, updates FileOptionsSimpleFileOptions
  • tiktoken-rs 0.6 → 0.9.1 — decouples from tokenizers crate, drops spm_precompiled transitive dep
  • hf-hub 0.4.3 → 0.5.0 — eliminates indicatif 0.17 duplicate
  • dirs 5.0 → 6.0 (workspace) — eliminates dirs/dirs-sys duplicates
  • cliclack 0.3.5 → 0.4.0 — reduces console 0.15 consumers to insta-only
  • llama-cpp-2 0.1.137 → 0.1.138 — updates underlying llama.cpp to support additional model architectures

Dependency tree impact

Eliminated duplicate versions of: axum, axum-core, bzip2, constant_time_eq, dirs, dirs-sys, gif, image, indicatif, matchit, png, tiff, utoipa, utoipa-gen, zstd, zstd-safe, zune-jpeg (net -16 dupes).

- axum 0.7 → 0.8 (goose-test-support)
- image 0.24 → 0.25 (goose-mcp)
- thiserror 1.0 → 2.0 (workspace)
- utoipa 4 → 5 (workspace), update OpenAPI spec from 3.0.3 to 3.1.0
- rand 0.8 → 0.10 (workspace), migrate goose-server to workspace dep
- zip 0.6/8 → 8 (new workspace dep), migrate goose + goose-cli

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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: 9f08b8b051

ℹ️ 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 thread crates/goose/src/conversation/message.rs
The image 0.25 default features pull in AVIF encoding (rav1e, ravif)
and other unnecessary codecs. Since we only need JPEG support, disabling
defaults reduces unique crate-versions from 908 to 879.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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: ae79c3980f

ℹ️ 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 thread crates/goose/src/conversation/message.rs
jh-block and others added 2 commits March 4, 2026 17:56
- tiktoken-rs 0.6.0 -> 0.9.1 (decouples from tokenizers crate)
- hf-hub 0.4.3 -> 0.5.0 (eliminates indicatif 0.17 duplicate)
- dirs 5.0 -> 6.0 in workspace (eliminates dirs/dirs-sys duplicates)
- cliclack 0.3.5 -> 0.4.0 (reduces console 0.15 to insta-only)

Duplicated crates: 72 -> 69, total crate versions: 930 -> 926.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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: 82c4cb16d3

ℹ️ 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 thread crates/goose/src/conversation/message.rs
TextContentSchemaRef and ImageContentSchemaRef were registered under the
same component name ("TextContent"/"ImageContent") as the real schemas
from derive_utoipa!, causing utoipa to replace the concrete schemas with
self-referencing $refs. Give the proxies distinct names so they don't
collide with the real schema registrations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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: 6c1dfa1e2d

ℹ️ 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 thread crates/goose/src/conversation/message.rs Outdated
Replace `#[schema(value_type = String)]` with a RoleSchemaRef proxy
that references the real Role schema, preserving role-level typing
in generated clients.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
chatgpt-codex-connector[bot]

This comment was marked as outdated.

utoipa 5 does not emit discriminator for #[serde(tag = "...")] enums.
Add a Modify post-processor that restores discriminator propertyName
for MessageContent, ExtensionConfig, MessageEvent, and ActionRequiredData.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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: cafe477952

ℹ️ 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 thread ui/desktop/src/api/types.gen.ts Outdated
jh-block and others added 4 commits March 5, 2026 11:58
utoipa renders Vec<u8> as array<integer> instead of string/binary.
Add post-processing in SchemaFixups modifier to set the correct
type: string, format: binary schema for the diagnostics endpoint,
restoring the Blob | File TS type for client compatibility.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…hared error types

The tunnel module defined its own ErrorResponse { error: String } which
collided with the shared routes::errors::ErrorResponse { message: String }.
utoipa silently let one overwrite the other, producing incorrect TS types
for all non-tunnel error responses.

- Reuse the shared ErrorResponse in tunnel routes (aligns JSON key to "message")
- Add a test to detect schema-name collisions in the OpenAPI spec

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The discriminator and binary schema fixups are unnecessary:
- oneOf variants already contain type enum constraints for matching
- diagnostics binary response works at runtime via Content-Type header

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
utoipa renders Vec<u8> as array<integer>, producing number[] in TS
codegen. This fails typecheck: new Blob([response.data]) expects
BlobPart, not number[]. Add a minimal Modify fixup to set the
diagnostics response schema to string/binary (no utoipa annotation
exists for response body format).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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: 940ea787a1

ℹ️ 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 thread crates/goose-mcp/Cargo.toml Outdated
jh-block and others added 2 commits March 5, 2026 14:33
load_image_as_png uses ImageFormat::Png to encode non-PNG inputs
into PNG for DOCX insertion. The jpeg-only feature set broke this
at runtime for JPEG and other image formats.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…deps

* origin/main: (34 commits)
  fix: reduce server log verbosity — skip session in instrument, defaul… (#7729)
  fix: provider test infrastructure (#7738)
  fix: sanitize streamable HTTP extension names derived from URLs (#7740)
  refactor: derive GooseMode string conversions with strum (#7706)
  docs: Add Spraay Batch Payments MCP Extension Tutorial (#7525)
  fix: flake.nix (#7224)
  delete goose web (#7696)
  Add @angiejones as CODEOWNER for documentation (#7711)
  Add MLflow integration guide (#7563)
  docs: LM Studio availability (#7698)
  feat: add Avian as an LLM provider (#7561)
  Adds `linux-mcp-server` to the goose registry (#6979)
  fix: add #[serde(default)] to description field on 4 ExtensionConfig variants (#7708)
  feat: combine TUI UX from alexhancock/tui-goodness with publishing config from jackamadeo/package-tui (#7683)
  chore: cleanup old sandbox (#7700)
  Correct windows artifact (#7699)
  gh fall back (#7695)
  fix: restore smart-approve mode (#7690)
  fix: make TLS configurable in goosed agent via GOOSE_TLS env var (#7686)
  Update to rmcp 1.1.0 (#7619)
  ...

# Conflicts:
#	Cargo.lock
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

https://github.com/block/goose/blob/ff7b8b29fa7e8803b8c33f189987017ea3aa1e8b/ui/desktop/openapi.json#L3717-L3718
P2 Badge Preserve discriminators for oneOf response/request unions

This regenerated OpenAPI schema now defines tagged unions like ActionRequiredData as oneOf without a discriminator, and the same regression appears for other tagged enums (MessageContent, ExtensionConfig, etc.). In this commit, those discriminator blocks were removed from ui/desktop/openapi.json, which makes many non-TS OpenAPI generators fall back to ambiguous union handling (or untyped models) because they can no longer reliably map payloads by actionType/type at deserialization time.

ℹ️ 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".

Notable: tokio 1.50, rustls 0.23.37, clap 4.5.60, syn 2.0.117,
llama-cpp-2 0.1.138, zip 8.2, uuid 1.22, tonic 0.14.5, futures 0.3.32

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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: 7e213d5f8b

ℹ️ 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 thread crates/goose-mcp/Cargo.toml Outdated
jh-block and others added 2 commits March 9, 2026 15:33
Use default-formats (without rayon) to support GIF, BMP, TIFF, WebP
and other common formats in load_image_as_png, not just JPEG/PNG.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
rayon is already pulled in by candle-core, docx-rs, and others,
so no reason to exclude it from image.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…deps

Resolve conflict in generated ui/desktop/src/api/index.ts by
regenerating OpenAPI spec and TS types. Also ran cargo update.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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: 604bc66fbe

ℹ️ 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 thread crates/goose-server/src/openapi.rs Outdated
jh-block and others added 3 commits March 10, 2026 17:11
The test cannot actually detect collisions since utoipa has already
overwritten the duplicate by the time the OpenApi struct is built.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…deps

Resolve conflicts:
- Cargo.lock: take ours + cargo update
- agent.rs: take main's ContentBlock/Vec<Value> change, port
  ContentBlock and ContentBlockSchema to utoipa 5 API
- openapi.json, index.ts: regenerated

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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: 9406b8efec

ℹ️ 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 thread crates/goose-server/src/routes/agent.rs
Same fix as TextContentSchemaRef/ImageContentSchemaRef: the proxy
must use a different name than the real schema to avoid overwriting
the concrete ContentBlock definition with a self-reference.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@jh-block jh-block requested review from DOsinga and jamadeo March 11, 2026 18:53
@DOsinga DOsinga added the needs_human label to set when a robot looks at a PR and can't handle it label Mar 20, 2026
Douwe Osinga added 2 commits March 26, 2026 15:27
- Re-insert authoritative schemas for TextContent, ImageContent, Role,
  ContentBlock via Modify fixup (proxy value_type types were overwriting
  them with self-refs)
- Add discriminator blocks for MessageContent, ActionRequiredData,
  ExtensionConfig tagged enums (utoipa 5 no longer emits them)
- Consolidate BinaryResponseFixup into single OpenApiFixups modifier
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: 159512f59a

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +428 to +431
for (name, property_name) in [
("MessageContent", "type"),
("ActionRequiredData", "actionType"),
("ExtensionConfig", "type"),
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 Restore discriminator metadata for all tagged oneOf schemas

The new OpenApiFixups whitelist only restores discriminators for three schemas, so other tagged enums that previously carried discriminator metadata now lose it (e.g. MessageEvent, ModelDownloadStatus, SamplingConfig, and SuccessCheck in ui/desktop/openapi.json). This is a contract regression introduced by the utoipa 5 migration: OpenAPI client generators that depend on discriminator.propertyName for polymorphic deserialization can no longer reliably map these oneOf payloads back to concrete variants.

Useful? React with 👍 / 👎.

@jh-block jh-block closed this Apr 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs_human label to set when a robot looks at a PR and can't handle it

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants