Skip to content

refactor: move library crates into crates/ directory - #676

Merged
CatherineSue merged 4 commits into
mainfrom
chang/crates
Mar 8, 2026
Merged

CatherineSue merged 4 commits into
mainfrom
chang/crates

Conversation

@CatherineSue

@CatherineSue CatherineSue commented Mar 8, 2026 •

Copy link
Copy Markdown
Member

Description

Problem

The repo root contains 18+ crate directories alongside docs, scripts, docker, etc., making it difficult to navigate and index.

Solution

Move 13 library crates into a crates/ subdirectory, following standard Rust workspace conventions (tokio, bevy, etc.).

Changes

  • git mv 13 library crates (auth, data_connector, grpc_client, kv_index, mcp, mesh, multimodal, protocols, reasoning_parser, tokenizer, tool_parser, wasm, workflow) into crates/
  • Update root Cargo.toml workspace members and dependency paths
  • Update bindings/python, bindings/golang, clients/openapi-gen Cargo.toml relative paths
  • Update 7 CI workflow files (path triggers, cache keys, proto copy paths, fixture builds)
  • Update scripts/check_release_versions.sh and scripts/ci_install_vllm.sh
  • Update docs/contributing/development.md project structure and grpc_servicer/DEVELOPMENT.md

What stays at root: model_gateway/, bindings/, clients/, grpc_servicer/

What does NOT change: Crate names, package names, Rust source code, published crate names on crates.io

Test Plan

  • cargo check passes — all workspace paths resolve correctly
  • cargo clippy --all-targets --all-features -- -D warnings passes (verified by pre-commit hook)
  • cargo +nightly fmt passes (verified by pre-commit hook)
  • CI workflow path triggers updated to match new crates/ paths
Checklist
  • cargo +nightly fmt passes
  • cargo clippy --all-targets --all-features -- -D warnings passes
  • Documentation updated

Summary by CodeRabbit

  • Chores
    • Updated CI workflows (benchmarks, nightly runs, PR tests, and release flows) to use the reorganized crate-based repository layout and corresponding triggers, filters, cache keys, and artifact paths.
    • Updated workspace and binding dependency paths to reference the new crates/ directory structure.
    • Adjusted test fixture scripts, test paths, and related build/test steps to operate with the revised repository layout.

Move 13 library crates (auth, data_connector, grpc_client, kv_index,
mcp, mesh, multimodal, protocols, reasoning_parser, tokenizer,
tool_parser, wasm, workflow) from repo root into crates/ subdirectory.

Update all path references in:
- Root Cargo.toml workspace members and dependency paths
- bindings/python, bindings/golang, clients/openapi-gen Cargo.toml
- 7 CI workflows (path triggers, cache keys, proto copy paths)
- Scripts (check_release_versions.sh, ci_install_vllm.sh)
- Documentation (development.md, grpc_servicer/DEVELOPMENT.md)

This follows standard Rust workspace conventions and reduces
root-level clutter from 18+ directories to a cleaner layout.

Signed-off-by: Chang Su <chang.s.su@oracle.com>
@github-actions github-actions Bot added documentation Improvements or additions to documentation python-bindings Python bindings changes dependencies Dependency updates ci CI/CD configuration changes tests Test changes labels Mar 8, 2026
@coderabbitai

coderabbitai Bot commented Mar 8, 2026 •

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: a48d6c32-7b3d-4f20-bb9b-c27b2c428e5d

📥 Commits

Reviewing files that changed from the base of the PR and between 4d44546 and 6e98d23.

📒 Files selected for processing (3)
  • .pre-commit-config.yaml
  • crates/multimodal/scripts/generate_vision_golden.py
  • crates/multimodal/tests/vision_golden_tests.rs

📝 Walkthrough

Walkthrough

Repository-wide path refactor: updated many workspace, CI workflow, binding, client, test, and script paths to the crates/<name>/... layout; no API signatures or runtime logic changed.

Changes

Cohort / File(s) Summary
CI: benchmark workflows
.github/workflows/benchmark-radix-tree.yml, .github/workflows/benchmark-tokenizer.yml, .github/workflows/benchmark-tool-parser.yml
Replaced flat crate path filters (e.g., kv_index/**, tokenizer/**, tool_parser/**) with crates/<crate>/** and updated exclusion patterns.
CI: nightly / PR test / release workflows
.github/workflows/nightly-benchmark.yml, .github/workflows/pr-test-rust.yml, .github/workflows/release-crates.yml, .github/workflows/release-grpc.yml
Switched cache/hash globs, detect-changes filters, matrix path entries, build/artifact paths and script/workdir references to crates/-prefixed paths (e.g., crates/auth/src/**, crates/grpc_client/...).
Workspace manifest
Cargo.toml
Updated workspace members and internal dependency path entries to point to crates/<name> locations instead of top-level crate dirs.
Bindings & clients
bindings/golang/Cargo.toml, bindings/python/Cargo.toml, clients/openapi-gen/Cargo.toml
Adjusted relative crate dependency paths to reference ../../crates/<crate> (or ../../crates/protocols) to match new layout.
WASM fixtures & scripts
crates/wasm/tests/fixtures/build_fixtures.sh, crates/multimodal/scripts/generate_vision_golden.py
Updated repository root resolution and default fixture/image/golden paths and usage examples to crates/... locations.
Tests
crates/multimodal/tests/vision_golden_tests.rs, crates/wasm/tests/fixtures/*
Relocated test fixture paths and run hints to crates/<crate>/tests/...; skip/existence checks preserved.
Pre-commit config
.pre-commit-config.yaml
Updated codespell exclude pattern from multimodal/tests/fixtures/.* to crates/multimodal/tests/fixtures/.*.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

tokenizer, tool-parser, multimodal, grpc, wasm, protocols, model-gateway, auth, data-connector, mcp, workflow, reasoning-parser, benchmarks

Suggested reviewers

  • tonyluj
  • key4ng
  • slin1237
  • XinyueZhang369

Poem

🐰 I hopped through folders, nudged crates in line,
Paths tucked in crates/ — tidy and fine.
CI and tests now point where they should,
Fixtures found, build scripts feel good.
A little hop, and all is in rhyme. 🥕

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately and concisely describes the main change: moving library crates into a crates/ directory, which is the primary objective of the entire pull request.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chang/crates

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

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request implements a significant refactoring of the repository's directory structure by consolidating numerous library crates into a dedicated crates/ subdirectory. This change aims to improve repository navigation and align with common Rust workspace practices, making the project more organized and easier to manage. The refactor is purely structural, ensuring no functional changes to crate names, package names, Rust source code, or published crate names.

Highlights

  • Repository Structure Refactor: Moved 13 library crates (auth, data_connector, grpc_client, kv_index, mcp, mesh, multimodal, protocols, reasoning_parser, tokenizer, tool_parser, wasm, workflow) into a new crates/ subdirectory to enhance organization and adhere to standard Rust workspace conventions.
  • Configuration Updates: Updated the root Cargo.toml file to reflect the new paths for workspace members and internal dependencies, and adjusted relative paths in Cargo.toml files within bindings/python, bindings/golang, and clients/openapi-gen.
  • CI/CD and Documentation Alignment: Modified CI workflow files to update path triggers, cache keys, proto copy paths, and fixture builds, and updated relevant scripts and documentation to reflect the new project structure.
Changelog
  • CI Workflow Files
    • Updated path triggers, cache keys, proto copy paths, and fixture builds to reflect the new directory structure.
  • Cargo.toml
    • Updated workspace members and internal dependency paths to include the new crates/ prefix.
  • Documentation
    • Updated docs/contributing/development.md and grpc_servicer/DEVELOPMENT.md to reflect the new project structure.
  • Library Crates
    • Moved auth, data_connector, grpc_client, kv_index, mcp, mesh, multimodal, protocols, reasoning_parser, tokenizer, tool_parser, wasm, and workflow into the crates/ subdirectory.
  • Scripts
    • Updated scripts/check_release_versions.sh and scripts/ci_install_vllm.sh to reference correct paths.
  • bindings/golang/Cargo.toml
    • Updated relative paths for llm-tokenizer and tool-parser dependencies.
  • bindings/python/Cargo.toml
    • Updated relative paths for smg-auth and tool-parser dependencies.
  • clients/openapi-gen/Cargo.toml
    • Updated the relative path for the openai-protocol dependency.
Ignored Files
  • Ignored by pattern: .github/workflows/** (7)
    • .github/workflows/benchmark-radix-tree.yml
    • .github/workflows/benchmark-tokenizer.yml
    • .github/workflows/benchmark-tool-parser.yml
    • .github/workflows/nightly-benchmark.yml
    • .github/workflows/pr-test-rust.yml
    • .github/workflows/release-crates.yml
    • .github/workflows/release-grpc.yml
Activity
  • Confirmed cargo check passes, ensuring all workspace paths resolve correctly.
  • Verified cargo clippy --all-targets --all-features -- -D warnings passes via pre-commit hook.
  • Ensured cargo +nightly fmt passes via pre-commit hook.
  • Updated CI workflow path triggers to align with the new crates/ directory structure.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩

@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: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/nightly-benchmark.yml:
- Line 51: The cache key in the nightly-benchmark workflow is missing the
openapi-gen workspace, so changes to generated client types won't invalidate the
cache; update the hashFiles list used in the key (the key line that starts with
key: nightly-wheel-${{ runner.os }}-${{ hashFiles(...) }}) to include
'clients/openapi-gen/src/**' so modifications to the openapi-gen crate (which
generates clients/python/smg_client/types/_generated.py) are included in the
cache fingerprint.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 4d6ee304-17d0-44bf-b873-e4453877a8e2

📥 Commits

Reviewing files that changed from the base of the PR and between a2220b2 and a463d7d.

⛔ Files ignored due to path filters (10)
  • crates/multimodal/tests/fixtures/images/grayscale.jpg is excluded by !**/*.jpg
  • crates/multimodal/tests/fixtures/images/large.jpg is excluded by !**/*.jpg
  • crates/multimodal/tests/fixtures/images/odd_dims.jpg is excluded by !**/*.jpg
  • crates/multimodal/tests/fixtures/images/small.jpg is excluded by !**/*.jpg
  • crates/multimodal/tests/fixtures/images/square.jpg is excluded by !**/*.jpg
  • crates/multimodal/tests/fixtures/images/tall.jpg is excluded by !**/*.jpg
  • crates/multimodal/tests/fixtures/images/tiny.jpg is excluded by !**/*.jpg
  • crates/multimodal/tests/fixtures/images/very_tall.jpg is excluded by !**/*.jpg
  • crates/multimodal/tests/fixtures/images/very_wide.jpg is excluded by !**/*.jpg
  • crates/multimodal/tests/fixtures/images/wide.jpg is excluded by !**/*.jpg
📒 Files selected for processing (290)
  • .github/workflows/benchmark-radix-tree.yml
  • .github/workflows/benchmark-tokenizer.yml
  • .github/workflows/benchmark-tool-parser.yml
  • .github/workflows/nightly-benchmark.yml
  • .github/workflows/pr-test-rust.yml
  • .github/workflows/release-crates.yml
  • .github/workflows/release-grpc.yml
  • Cargo.toml
  • bindings/golang/Cargo.toml
  • bindings/python/Cargo.toml
  • clients/openapi-gen/Cargo.toml
  • crates/auth/Cargo.toml
  • crates/auth/src/audit.rs
  • crates/auth/src/config.rs
  • crates/auth/src/jwks.rs
  • crates/auth/src/jwt.rs
  • crates/auth/src/lib.rs
  • crates/auth/src/middleware.rs
  • crates/data_connector/Cargo.toml
  • crates/data_connector/README.md
  • crates/data_connector/src/common.rs
  • crates/data_connector/src/config.rs
  • crates/data_connector/src/context.rs
  • crates/data_connector/src/core.rs
  • crates/data_connector/src/factory.rs
  • crates/data_connector/src/hooked.rs
  • crates/data_connector/src/hooks.rs
  • crates/data_connector/src/lib.rs
  • crates/data_connector/src/memory.rs
  • crates/data_connector/src/noop.rs
  • crates/data_connector/src/oracle.rs
  • crates/data_connector/src/oracle_migrations.rs
  • crates/data_connector/src/postgres.rs
  • crates/data_connector/src/postgres_migrations.rs
  • crates/data_connector/src/redis.rs
  • crates/data_connector/src/schema.rs
  • crates/data_connector/src/versioning.rs
  • crates/grpc_client/Cargo.toml
  • crates/grpc_client/build.rs
  • crates/grpc_client/proto/common.proto
  • crates/grpc_client/proto/sglang_encoder.proto
  • crates/grpc_client/proto/sglang_scheduler.proto
  • crates/grpc_client/proto/trtllm_service.proto
  • crates/grpc_client/proto/vllm_engine.proto
  • crates/grpc_client/python/.gitignore
  • crates/grpc_client/python/README.md
  • crates/grpc_client/python/pyproject.toml
  • crates/grpc_client/python/setup.py
  • crates/grpc_client/python/smg_grpc_proto/__init__.py
  • crates/grpc_client/python/smg_grpc_proto/proto
  • crates/grpc_client/src/lib.rs
  • crates/grpc_client/src/sglang_scheduler.rs
  • crates/grpc_client/src/tokenizer_bundle.rs
  • crates/grpc_client/src/trtllm_service.rs
  • crates/grpc_client/src/vllm_engine.rs
  • crates/kv_index/Cargo.toml
  • crates/kv_index/benches/throughput_bench.rs
  • crates/kv_index/src/common.rs
  • crates/kv_index/src/event_tree.rs
  • crates/kv_index/src/lib.rs
  • crates/kv_index/src/string_tree.rs
  • crates/kv_index/src/token_tree.rs
  • crates/mcp/Cargo.toml
  • crates/mcp/README.md
  • crates/mcp/src/annotations.rs
  • crates/mcp/src/approval/audit.rs
  • crates/mcp/src/approval/manager.rs
  • crates/mcp/src/approval/mod.rs
  • crates/mcp/src/approval/policy.rs
  • crates/mcp/src/core/config.rs
  • crates/mcp/src/core/handler.rs
  • crates/mcp/src/core/metrics.rs
  • crates/mcp/src/core/mod.rs
  • crates/mcp/src/core/oauth.rs
  • crates/mcp/src/core/orchestrator.rs
  • crates/mcp/src/core/pool.rs
  • crates/mcp/src/core/proxy.rs
  • crates/mcp/src/core/reconnect.rs
  • crates/mcp/src/core/session.rs
  • crates/mcp/src/error.rs
  • crates/mcp/src/inventory/index.rs
  • crates/mcp/src/inventory/mod.rs
  • crates/mcp/src/inventory/types.rs
  • crates/mcp/src/lib.rs
  • crates/mcp/src/responses_bridge.rs
  • crates/mcp/src/tenant.rs
  • crates/mcp/src/transform/mod.rs
  • crates/mcp/src/transform/transformer.rs
  • crates/mcp/src/transform/types.rs
  • crates/mesh/Cargo.toml
  • crates/mesh/build.rs
  • crates/mesh/src/README.md
  • crates/mesh/src/consistent_hash.rs
  • crates/mesh/src/controller.rs
  • crates/mesh/src/crdt_kv/crdt.rs
  • crates/mesh/src/crdt_kv/kv_store.rs
  • crates/mesh/src/crdt_kv/mod.rs
  • crates/mesh/src/crdt_kv/operation.rs
  • crates/mesh/src/crdt_kv/replica.rs
  • crates/mesh/src/crdt_kv/tests.rs
  • crates/mesh/src/flow_control.rs
  • crates/mesh/src/incremental.rs
  • crates/mesh/src/lib.rs
  • crates/mesh/src/metrics.rs
  • crates/mesh/src/mtls.rs
  • crates/mesh/src/node_state_machine.rs
  • crates/mesh/src/partition.rs
  • crates/mesh/src/ping_server.rs
  • crates/mesh/src/proto/gossip.proto
  • crates/mesh/src/rate_limit_window.rs
  • crates/mesh/src/service.rs
  • crates/mesh/src/stores.rs
  • crates/mesh/src/sync.rs
  • crates/mesh/src/tests/comprehensive.rs
  • crates/mesh/src/tests/mod.rs
  • crates/mesh/src/tests/test_utils.rs
  • crates/mesh/src/topology.rs
  • crates/mesh/src/tree_ops.rs
  • crates/multimodal/Cargo.toml
  • crates/multimodal/scripts/generate_vision_golden.py
  • crates/multimodal/src/error.rs
  • crates/multimodal/src/hasher.rs
  • crates/multimodal/src/lib.rs
  • crates/multimodal/src/media.rs
  • crates/multimodal/src/registry/llama4.rs
  • crates/multimodal/src/registry/llava.rs
  • crates/multimodal/src/registry/mod.rs
  • crates/multimodal/src/registry/phi3_v.rs
  • crates/multimodal/src/registry/qwen3_vl.rs
  • crates/multimodal/src/registry/qwen_vl.rs
  • crates/multimodal/src/registry/traits.rs
  • crates/multimodal/src/tracker.rs
  • crates/multimodal/src/types.rs
  • crates/multimodal/src/vision/image_processor.rs
  • crates/multimodal/src/vision/mod.rs
  • crates/multimodal/src/vision/preprocessor_config.rs
  • crates/multimodal/src/vision/processors/llama4_vision.rs
  • crates/multimodal/src/vision/processors/llava.rs
  • crates/multimodal/src/vision/processors/mod.rs
  • crates/multimodal/src/vision/processors/phi3_vision.rs
  • crates/multimodal/src/vision/processors/phi4_vision.rs
  • crates/multimodal/src/vision/processors/pixtral.rs
  • crates/multimodal/src/vision/processors/qwen2_vl.rs
  • crates/multimodal/src/vision/processors/qwen3_vl.rs
  • crates/multimodal/src/vision/processors/qwen_vl_base.rs
  • crates/multimodal/src/vision/transforms.rs
  • crates/multimodal/tests/multimodal_tracker_test.rs
  • crates/multimodal/tests/vision_golden_tests.rs
  • crates/protocols/Cargo.toml
  • crates/protocols/src/builders/chat/mod.rs
  • crates/protocols/src/builders/chat/response.rs
  • crates/protocols/src/builders/chat/stream_response.rs
  • crates/protocols/src/builders/mod.rs
  • crates/protocols/src/builders/realtime/client_event.rs
  • crates/protocols/src/builders/realtime/mod.rs
  • crates/protocols/src/builders/realtime/response.rs
  • crates/protocols/src/builders/realtime/server_event.rs
  • crates/protocols/src/builders/responses/mod.rs
  • crates/protocols/src/builders/responses/response.rs
  • crates/protocols/src/chat.rs
  • crates/protocols/src/classify.rs
  • crates/protocols/src/common.rs
  • crates/protocols/src/completion.rs
  • crates/protocols/src/embedding.rs
  • crates/protocols/src/event_types.rs
  • crates/protocols/src/generate.rs
  • crates/protocols/src/interactions.rs
  • crates/protocols/src/lib.rs
  • crates/protocols/src/messages.rs
  • crates/protocols/src/model_card.rs
  • crates/protocols/src/model_type.rs
  • crates/protocols/src/parser.rs
  • crates/protocols/src/realtime_conversation.rs
  • crates/protocols/src/realtime_events.rs
  • crates/protocols/src/realtime_response.rs
  • crates/protocols/src/realtime_session.rs
  • crates/protocols/src/rerank.rs
  • crates/protocols/src/responses.rs
  • crates/protocols/src/sampling_params.rs
  • crates/protocols/src/tokenize.rs
  • crates/protocols/src/validated.rs
  • crates/protocols/src/worker.rs
  • crates/reasoning_parser/Cargo.toml
  • crates/reasoning_parser/README.md
  • crates/reasoning_parser/src/README.md
  • crates/reasoning_parser/src/factory.rs
  • crates/reasoning_parser/src/lib.rs
  • crates/reasoning_parser/src/parsers/base.rs
  • crates/reasoning_parser/src/parsers/cohere_cmd.rs
  • crates/reasoning_parser/src/parsers/deepseek_r1.rs
  • crates/reasoning_parser/src/parsers/glm45.rs
  • crates/reasoning_parser/src/parsers/kimi.rs
  • crates/reasoning_parser/src/parsers/minimax.rs
  • crates/reasoning_parser/src/parsers/mod.rs
  • crates/reasoning_parser/src/parsers/nano_v3.rs
  • crates/reasoning_parser/src/parsers/qwen3.rs
  • crates/reasoning_parser/src/parsers/step3.rs
  • crates/reasoning_parser/src/traits.rs
  • crates/tokenizer/Cargo.toml
  • crates/tokenizer/README.md
  • crates/tokenizer/benches/stop_sequence_search.rs
  • crates/tokenizer/src/cache/fingerprint.rs
  • crates/tokenizer/src/cache/l0.rs
  • crates/tokenizer/src/cache/l1.rs
  • crates/tokenizer/src/cache/mod.rs
  • crates/tokenizer/src/chat_template.rs
  • crates/tokenizer/src/factory.rs
  • crates/tokenizer/src/hub.rs
  • crates/tokenizer/src/huggingface.rs
  • crates/tokenizer/src/lib.rs
  • crates/tokenizer/src/mock.rs
  • crates/tokenizer/src/registry.rs
  • crates/tokenizer/src/sequence.rs
  • crates/tokenizer/src/stop.rs
  • crates/tokenizer/src/stream.rs
  • crates/tokenizer/src/tests.rs
  • crates/tokenizer/src/tiktoken.rs
  • crates/tokenizer/src/traits.rs
  • crates/tokenizer/tests/chat_template_format_detection.rs
  • crates/tokenizer/tests/chat_template_integration.rs
  • crates/tokenizer/tests/chat_template_loading.rs
  • crates/tokenizer/tests/common/mod.rs
  • crates/tokenizer/tests/tiktoken_integration.rs
  • crates/tokenizer/tests/tokenizer_cache_correctness_test.rs
  • crates/tokenizer/tests/tokenizer_integration.rs
  • crates/tool_parser/Cargo.toml
  • crates/tool_parser/README.md
  • crates/tool_parser/src/errors.rs
  • crates/tool_parser/src/factory.rs
  • crates/tool_parser/src/lib.rs
  • crates/tool_parser/src/parsers/cohere.rs
  • crates/tool_parser/src/parsers/deepseek.rs
  • crates/tool_parser/src/parsers/glm4_moe.rs
  • crates/tool_parser/src/parsers/helpers.rs
  • crates/tool_parser/src/parsers/json.rs
  • crates/tool_parser/src/parsers/kimik2.rs
  • crates/tool_parser/src/parsers/llama.rs
  • crates/tool_parser/src/parsers/minimax_m2.rs
  • crates/tool_parser/src/parsers/mistral.rs
  • crates/tool_parser/src/parsers/mod.rs
  • crates/tool_parser/src/parsers/passthrough.rs
  • crates/tool_parser/src/parsers/pythonic.rs
  • crates/tool_parser/src/parsers/qwen.rs
  • crates/tool_parser/src/parsers/qwen_coder.rs
  • crates/tool_parser/src/parsers/step3.rs
  • crates/tool_parser/src/partial_json.rs
  • crates/tool_parser/src/tests.rs
  • crates/tool_parser/src/traits.rs
  • crates/tool_parser/src/types.rs
  • crates/tool_parser/tests/common/mod.rs
  • crates/tool_parser/tests/tool_parser_cohere.rs
  • crates/tool_parser/tests/tool_parser_deepseek.rs
  • crates/tool_parser/tests/tool_parser_edge_cases.rs
  • crates/tool_parser/tests/tool_parser_fallback.rs
  • crates/tool_parser/tests/tool_parser_glm47_moe.rs
  • crates/tool_parser/tests/tool_parser_glm4_moe.rs
  • crates/tool_parser/tests/tool_parser_json.rs
  • crates/tool_parser/tests/tool_parser_kimik2.rs
  • crates/tool_parser/tests/tool_parser_llama.rs
  • crates/tool_parser/tests/tool_parser_minimax_m2.rs
  • crates/tool_parser/tests/tool_parser_mistral.rs
  • crates/tool_parser/tests/tool_parser_mixed_edge_cases.rs
  • crates/tool_parser/tests/tool_parser_partial_json.rs
  • crates/tool_parser/tests/tool_parser_pythonic.rs
  • crates/tool_parser/tests/tool_parser_qwen.rs
  • crates/tool_parser/tests/tool_parser_qwen_coder.rs
  • crates/tool_parser/tests/tool_parser_step3.rs
  • crates/wasm/Cargo.toml
  • crates/wasm/README.md
  • crates/wasm/src/config.rs
  • crates/wasm/src/errors.rs
  • crates/wasm/src/interface/spec.wit
  • crates/wasm/src/interface/storage/storage-hooks.wit
  • crates/wasm/src/lib.rs
  • crates/wasm/src/module.rs
  • crates/wasm/src/module_manager.rs
  • crates/wasm/src/runtime.rs
  • crates/wasm/src/spec.rs
  • crates/wasm/src/storage_hook.rs
  • crates/wasm/src/storage_spec.rs
  • crates/wasm/src/types.rs
  • crates/wasm/tests/fixtures/build_fixtures.sh
  • crates/wasm/tests/storage_hook_integration.rs
  • crates/workflow/Cargo.toml
  • crates/workflow/README.md
  • crates/workflow/src/definition.rs
  • crates/workflow/src/engine.rs
  • crates/workflow/src/event.rs
  • crates/workflow/src/executor.rs
  • crates/workflow/src/lib.rs

Comment thread .github/workflows/nightly-benchmark.yml

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a463d7dc45

ℹ️ 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: |
source "$HOME/.cargo/env"
bash wasm/tests/fixtures/build_fixtures.sh
bash crates/wasm/tests/fixtures/build_fixtures.sh

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 Update WASM fixture script for new crates/ path

This workflow step now invokes crates/wasm/tests/fixtures/build_fixtures.sh, but that script still computes REPO_ROOT via ../../.. and then reads examples from $REPO_ROOT/examples/wasm; from the new location this resolves to <repo>/crates/examples/wasm, which does not exist. As a result, whenever the wheel cache is cold and this step runs, fixture generation fails and blocks the Rust PR pipeline.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Fixed in 4d44546 — updated REPO_ROOT to use ../../../.. and FIXTURES_DIR to use crates/wasm/tests/fixtures.

"smg-wasm|wasm|smg-wasm"
"smg-mesh|mesh|smg-mesh"
"smg-grpc-client|grpc_client|smg-grpc-client"
"openai-protocol|crates/protocols|openai-protocol"

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 Preserve version checks across pre-move tags

Switching the crate registry entries to crates/... paths causes get_crate_version_at_ref to miss Cargo.toml in tags created before this refactor, so moved crates are misclassified as "new crate" and version-bump enforcement is skipped. In practice, running scripts/check_release_versions.sh against a pre-move ref now reports all moved crates as new and exits cleanly despite code changes, weakening release validation until a new post-move tag exists.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Valid observation. This is a transient issue — git show $TAG:crates/X/Cargo.toml will miss for pre-move tags. In practice this only affects the first release after merge: moved crates would be misclassified as 'new' and skip bump enforcement. Once a post-move tag exists, it resolves itself. Acceptable tradeoff for a structural refactor — no pre-move tags need version checking going forward.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Updated in 963f80f — added fallback logic that tries the legacy path (without crates/ prefix) when git show $TAG:crates/X/Cargo.toml fails. This makes the version checker work correctly against both pre-move and post-move tags.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request refactors the repository structure by moving library crates into a crates/ directory, with correct path updates in the Cargo.toml files. No security vulnerabilities were detected, as the changes are purely structural and do not introduce new risks. For improved maintainability, consider consistently using workspace dependencies to avoid hardcoding relative paths.

Comment thread bindings/golang/Cargo.toml
Comment thread bindings/python/Cargo.toml
Comment thread clients/openapi-gen/Cargo.toml
Signed-off-by: Chang Su <chang.s.su@oracle.com>

@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.

Caution

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

⚠️ Outside diff range comments (1)
crates/wasm/tests/fixtures/build_fixtures.sh (1)

4-5: ⚠️ Potential issue | 🟡 Minor

Update the usage comment to reflect the new path.

The comment still references the old path ./wasm/tests/fixtures/build_fixtures.sh, but the script is now located at crates/wasm/tests/fixtures/build_fixtures.sh.

📝 Proposed fix
 # Run from the repository root:
-#   ./wasm/tests/fixtures/build_fixtures.sh
+#   ./crates/wasm/tests/fixtures/build_fixtures.sh
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@crates/wasm/tests/fixtures/build_fixtures.sh` around lines 4 - 5, Update the
top-of-file usage comment in build_fixtures.sh to point to the script's new
location; replace the old path reference
"./wasm/tests/fixtures/build_fixtures.sh" with the correct
"crates/wasm/tests/fixtures/build_fixtures.sh" in the comment near the file
header so the usage instructions match the current file location.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@crates/wasm/tests/fixtures/build_fixtures.sh`:
- Around line 4-5: Update the top-of-file usage comment in build_fixtures.sh to
point to the script's new location; replace the old path reference
"./wasm/tests/fixtures/build_fixtures.sh" with the correct
"crates/wasm/tests/fixtures/build_fixtures.sh" in the comment near the file
header so the usage instructions match the current file location.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 641196d1-ff65-4949-a80b-dc07864a3106

📥 Commits

Reviewing files that changed from the base of the PR and between a463d7d and 4d44546.

📒 Files selected for processing (1)
  • crates/wasm/tests/fixtures/build_fixtures.sh

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4d44546d37

ℹ️ 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 scripts/check_release_versions.sh
…allback in version checker

Signed-off-by: Chang Su <chang.s.su@oracle.com>

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 963f80fa78

ℹ️ 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 .github/workflows/pr-test-rust.yml
Comment thread .github/workflows/pr-test-rust.yml
…al, pre-commit)

Signed-off-by: Chang Su <chang.s.su@oracle.com>
@CatherineSue
CatherineSue merged commit 38ee0a5 into main Mar 8, 2026
41 of 46 checks passed
@CatherineSue
CatherineSue deleted the chang/crates branch March 8, 2026 18:37
CatherineSue added a commit that referenced this pull request Mar 9, 2026
- Add clients/openapi-gen/src/** to nightly-benchmark cache key so
  changes to the OpenAPI generator invalidate the cached wheel and
  generated types
- Switch llm-tokenizer and tool-parser in bindings/golang to
  workspace = true
- Switch smg-auth and tool-parser in bindings/python to workspace = true
- Switch openai-protocol in clients/openapi-gen to workspace = true

Signed-off-by: Chang Su <chang.s.su@oracle.com>
@CatherineSue CatherineSue mentioned this pull request Mar 9, 2026
2 of 3 tasks
slin1237 pushed a commit that referenced this pull request Mar 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci CI/CD configuration changes dependencies Dependency updates documentation Improvements or additions to documentation python-bindings Python bindings changes tests Test changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant