Skip to content

refactor: reorganize workspace into core/ and infra/ directories - #642

Closed
slin1237 wants to merge 3 commits into
mainfrom
slin/crate-extraction
Closed

slin1237 wants to merge 3 commits into
mainfrom
slin/crate-extraction

Conversation

@slin1237

@slin1237 slin1237 commented Mar 5, 2026 •

Copy link
Copy Markdown
Member

Summary

Reorganize 13 Rust crates into core/ (8) and infra/ (5) group directories to reduce root-level clutter (22 → 14 directories) and make the architectural hierarchy visible from the directory tree.

What changed

Directory moves (via git mv — history preserved)

Core (8 crates) — foundational libraries:

  • protocols/ → core/protocols/
  • reasoning_parser/ → core/reasoning_parser/
  • tool_parser/ → core/tool_parser/
  • tokenizer/ → core/tokenizer/
  • multimodal/ → core/multimodal/
  • kv_index/ → core/kv_index/
  • mcp/ → core/mcp/
  • grpc_client/ → core/grpc_client/

Infra (5 crates) — service-layer infrastructure:

  • auth/ → infra/auth/
  • mesh/ → infra/mesh/
  • data_connector/ → infra/data_connector/
  • wasm/ → infra/wasm/
  • workflow/ → infra/workflow/

Unchanged: model_gateway/ stays at root as the main application.

Path updates

  • Root Cargo.toml: workspace members and [workspace.dependencies] paths
  • Inter-crate Cargo.toml: relative paths in bindings/python, bindings/golang, clients/openapi-gen
  • CI workflows: benchmark-*.yml, nightly-benchmark.yml, pr-test-rust.yml, release-crates.yml, release-grpc.yml
  • GitHub labeler: .github/labeler.yml path globs
  • Shell scripts: scripts/ci_install_vllm.sh, scripts/check_release_versions.sh

What does NOT change

  • Package names (smg-mcp, openai-protocol, etc.) — unchanged
  • Rust source code — zero .rs file modifications
  • bindings/, clients/, docker/, docs/, examples/, scripts/, e2e_test/, grpc_servicer/ — unchanged

Why

22 top-level directories created visual clutter and obscured the architectural hierarchy between core libraries, infrastructure services, and the main application. Grouping by role makes the codebase navigable at a glance.

Test plan

  • cargo check --workspace passes
  • cargo test --workspace --lib — all tests pass
  • Grepped for stale path references — none remaining
  • Git tracks all moves as renames (history preserved)

Refs: docs/plans/2026-03-05-workspace-reorganization-design.md

Summary by CodeRabbit

  • Chores

    • Reorganized workspace structure to reflect internal component grouping.
    • Updated build configurations and dependency paths across project files.
    • Adjusted CI/CD workflows, cache keys, and artifact references.
    • Updated release pipeline configurations to align with structural changes.
  • Documentation

    • Added workspace reorganization design and implementation documentation.

slin1237 added 3 commits March 5, 2026 06:22
Add approved design for reorganizing the repository's 13 Rust crates
into core/ and infra/ group directories to reduce top-level clutter
(22 → 14 dirs) and make the architectural hierarchy visible from the
directory tree.

Core (8): protocols, reasoning_parser, tool_parser, tokenizer,
multimodal, kv_index, mcp, grpc_client
Infra (5): auth, mesh, data_connector, wasm, workflow
App: model_gateway stays at root

Migration strategy: single atomic PR with git mv + path updates.

Signed-off-by: Simo Lin <linsimo.mark@gmail.com>
Detailed 9-task plan covering git mv, Cargo.toml path updates,
CI workflow changes, release config updates, and shell script fixes.

All file paths and line numbers audited against current main.

Signed-off-by: Simo Lin <linsimo.mark@gmail.com>
Move 13 Rust crates into architectural group directories:

Core (8): protocols, reasoning_parser, tool_parser, tokenizer,
multimodal, kv_index, mcp, grpc_client

Infra (5): auth, mesh, data_connector, wasm, workflow

model_gateway stays at root as the main application.

What changed:
- git mv 13 crate directories into core/ and infra/
- Root Cargo.toml: workspace members and dependency paths updated
- Inter-crate Cargo.toml: relative paths in bindings/python,
  bindings/golang, clients/openapi-gen updated
- CI workflows: benchmark-*.yml, nightly-benchmark.yml,
  pr-test-rust.yml, release-crates.yml, release-grpc.yml updated
- Shell scripts: ci_install_vllm.sh, check_release_versions.sh updated
- GitHub labeler: .github/labeler.yml paths updated

Why: 22 top-level directories created visual clutter and obscured
the architectural hierarchy. Grouping by role (core libs vs infra
services vs application) makes the codebase navigable at a glance.

No package name changes. No Rust source code changes.
Zero functional impact — only directory layout and path references.

Refs: docs/plans/2026-03-05-workspace-reorganization-design.md
Signed-off-by: Simo Lin <linsimo.mark@gmail.com>
@coderabbitai

coderabbitai Bot commented Mar 5, 2026 •

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This PR reorganizes the workspace by moving 13 Rust crates into core/ (8 crates) and infra/ (5 crates) subdirectories, keeping model_gateway at root. Updates corresponding Cargo.toml workspace members, inter-crate dependency paths, GitHub Actions workflows, and CI configuration to reflect the new directory structure without modifying package names or APIs.

Changes

Cohort / File(s) Summary
GitHub Actions Workflows
.github/workflows/benchmark-radix-tree.yml, .github/workflows/benchmark-tokenizer.yml, .github/workflows/benchmark-tool-parser.yml
Updated path filters from kv_index/**, tokenizer/**, tool_parser/** to core/kv_index/**, core/tokenizer/**, core/tool_parser/** in push and pull_request triggers, including exclusion patterns for tests.
Nightly & PR Test Workflows
.github/workflows/nightly-benchmark.yml, .github/workflows/pr-test-rust.yml
Updated hashFiles cache keys and path globs to prefix crate paths with core/ or infra/ (e.g., auth/src/** → infra/auth/src/**, protocols/src/** → core/protocols/src/**). Also updated fixture paths, test script references, and artifact handling.
Release Workflows
.github/workflows/release-crates.yml, .github/workflows/release-grpc.yml
Refactored crate path mappings and file references from flat structure to core/infra layout (e.g., protocols → core/protocols, wasm → infra/wasm, grpc_client/python/... → core/grpc_client/python/...).
Labeler Configuration
.github/labeler.yml
Updated file glob patterns for labels to reflect new core/infra directory structure (e.g., grpc_client/**/* → core/grpc_client/**/*, auth → infra/auth).
Root & Binding Cargo.toml Files
Cargo.toml, bindings/golang/Cargo.toml, bindings/python/Cargo.toml, clients/openapi-gen/Cargo.toml
Updated workspace members and internal dependency paths to new core/infra locations (e.g., protocols → core/protocols, tokenizer → core/tokenizer, auth → infra/auth, wasm → infra/wasm).
Documentation Plans
docs/plans/2026-03-05-workspace-reorganization-design.md, docs/plans/2026-03-05-workspace-reorganization.md
Added comprehensive design and implementation documentation outlining problem statement, goals, target layout, migration strategy, change scope, and risk considerations for workspace reorganization.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested labels

ci, refactor, workspace, dependencies, python-bindings, golang-bindings

Suggested reviewers

  • tonyluj
  • CatherineSue
  • key4ng
  • XinyueZhang369
  • whybeyoung

Poem

🐰 The warren grows with organized care,
Crates nested in core and infra's lair,
Paths now prefixed with structure and grace,
Each workflow and manifest finds its right place,
No code breaks, just homes rearranged fair! ✨

🚥 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 pull request title accurately and concisely summarizes the main change: reorganizing the workspace into core/ and infra/ directories, which is the primary objective of this changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch slin/crate-extraction

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

@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 5, 2026

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

🤖 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/benchmark-radix-tree.yml:
- Line 5: Replace the spaced bracket list for the YAML key "branches" with
compact bracket syntax: change occurrences of branches: [ main ] to branches:
[main] (also update the second occurrence noted) so the YAMLlint "brackets" rule
is satisfied.

In @.github/workflows/benchmark-tool-parser.yml:
- Line 13: Update the branches entry so bracket spacing follows YAMLlint rules:
locate the workflow key where the value is written as "branches: [ main ]" and
remove the extra spaces inside the square brackets (or switch to a multi-line
list) so it becomes "branches: [main]" (or a proper YAML list), ensuring the
brackets rule is satisfied; change the occurrence in the workflow definition
where "branches" is defined.

In `@docs/plans/2026-03-05-workspace-reorganization-design.md`:
- Around line 19-46: The fenced code block that shows the project tree (the
triple-backtick block beginning with "smg/") is missing a language identifier;
update the opening fence to include a language tag (e.g., use ```text) so
markdownlint is satisfied by modifying that specific fenced block in
docs/plans/2026-03-05-workspace-reorganization-design.md.

In `@docs/plans/2026-03-05-workspace-reorganization.md`:
- Line 63: Several fenced code blocks use "```toml" without surrounding blank
lines causing MD031 failures; for each fenced block (opening marker "```toml"
and its closing "```") add a blank line immediately before the opening fence and
a blank line immediately after the closing fence so the block is separated from
surrounding text—apply this change to every flagged block (e.g., the occurrences
starting with "```toml" and their matching "```" markers throughout the
document).
- Around line 129-131: Replace lowercase "github" with "GitHub" in the prose of
this document: update the three workflow path mentions
(.github/workflows/benchmark-tool-parser.yml,
.github/workflows/benchmark-tokenizer.yml,
.github/workflows/benchmark-radix-tree.yml) and any other occurrences in this
file (the additional instances noted in the review). Search the file for the
token "github" (case-sensitive) and change it to "GitHub" so capitalization is
consistent across the document.
- Line 13: The first task heading "Task 1: Move crate directories with git mv"
is using ### while the document's top-level is #, causing a heading level jump;
update that heading from "### Task 1: Move crate directories with git mv" to "##
Task 1: Move crate directories with git mv" (and verify subsequent task headings
use consistent levels) so heading increments follow the expected hierarchy.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: dec287d9-2def-435f-a641-74c3f3bfe294

📥 Commits

Reviewing files that changed from the base of the PR and between 1190b5a and 75e9825.

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

@@ -5,18 +5,18 @@ on:
branches: [ main ]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Fix YAML list bracket spacing to satisfy YAMLlint.

branches: [ main ] violates the brackets rule (reported on Line 13). Use compact list syntax.

Proposed lint fix
-    branches: [ main ]
+    branches: [main]
...
-    branches: [ main ]
+    branches: [main]

Also applies to: 13-13

🧰 Tools
🪛 YAMLlint (1.38.0)

[error] 5-5: too many spaces inside brackets

(brackets)


[error] 5-5: too many spaces inside brackets

(brackets)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/benchmark-radix-tree.yml at line 5, Replace the spaced
bracket list for the YAML key "branches" with compact bracket syntax: change
occurrences of branches: [ main ] to branches: [main] (also update the second
occurrence noted) so the YAMLlint "brackets" rule is satisfied.

- '!core/tool_parser/**/*_test.rs'
- '!core/tool_parser/**/test_*.rs'
pull_request:
branches: [ main ]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Fix bracket spacing on branches to satisfy YAMLlint.

Line 13 currently uses [ main ], which violates the brackets rule.

Proposed fix
-    branches: [ main ]
+    branches: [main]
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
branches: [ main ]
branches: [main]
🧰 Tools
🪛 YAMLlint (1.38.0)

[error] 13-13: too many spaces inside brackets

(brackets)


[error] 13-13: too many spaces inside brackets

(brackets)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/benchmark-tool-parser.yml at line 13, Update the branches
entry so bracket spacing follows YAMLlint rules: locate the workflow key where
the value is written as "branches: [ main ]" and remove the extra spaces inside
the square brackets (or switch to a multi-line list) so it becomes "branches:
[main]" (or a proper YAML list), ensuring the brackets rule is satisfied; change
the occurrence in the workflow definition where "branches" is defined.

Comment on lines +19 to +46
```
smg/
├── core/ # Core library crates (8)
│ ├── protocols/ # openai-protocol
│ ├── reasoning_parser/ # reasoning-parser
│ ├── tool_parser/ # tool-parser
│ ├── tokenizer/ # llm-tokenizer
│ ├── multimodal/ # llm-multimodal
│ ├── kv_index/ # kv-index
│ ├── mcp/ # smg-mcp
│ └── grpc_client/ # smg-grpc-client
├── infra/ # Infrastructure/service crates (5)
│ ├── auth/ # smg-auth
│ ├── mesh/ # smg-mesh
│ ├── data_connector/ # data-connector
│ ├── wasm/ # smg-wasm
│ └── workflow/ # wfaas
├── model_gateway/ # Main application (stays at root)
├── bindings/ # Language bindings (unchanged)
├── clients/ # Client libraries (unchanged)
├── e2e_test/ # E2E tests (unchanged)
├── grpc_servicer/ # gRPC servicer (unchanged)
├── docker/ # Docker configs (unchanged)
├── docs/ # Documentation (unchanged)
├── examples/ # Examples (unchanged)
├── scripts/ # Scripts (unchanged)
└── Cargo.toml # Workspace root
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Add a language identifier to the fenced code block.

Line 19 uses a plain triple-backtick fence; markdownlint expects a language tag.

Proposed fix
-```
+```text
 smg/
 ├── core/                          # Core library crates (8)
 │   ├── protocols/                 # openai-protocol
 │   ├── reasoning_parser/          # reasoning-parser
 │   ├── tool_parser/               # tool-parser
 │   ├── tokenizer/                 # llm-tokenizer
 │   ├── multimodal/                # llm-multimodal
 │   ├── kv_index/                  # kv-index
 │   ├── mcp/                       # smg-mcp
 │   └── grpc_client/               # smg-grpc-client
 ├── infra/                         # Infrastructure/service crates (5)
 │   ├── auth/                      # smg-auth
 │   ├── mesh/                      # smg-mesh
 │   ├── data_connector/            # data-connector
 │   ├── wasm/                      # smg-wasm
 │   └── workflow/                  # wfaas
 ├── model_gateway/                 # Main application (stays at root)
 ├── bindings/                      # Language bindings (unchanged)
 ├── clients/                       # Client libraries (unchanged)
 ├── e2e_test/                      # E2E tests (unchanged)
 ├── grpc_servicer/                 # gRPC servicer (unchanged)
 ├── docker/                        # Docker configs (unchanged)
 ├── docs/                          # Documentation (unchanged)
 ├── examples/                      # Examples (unchanged)
 ├── scripts/                       # Scripts (unchanged)
 └── Cargo.toml                     # Workspace root
</details>

<!-- suggestion_start -->

<details>
<summary>📝 Committable suggestion</summary>

> ‼️ **IMPORTANT**
> Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

```suggestion

🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 19-19: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/plans/2026-03-05-workspace-reorganization-design.md` around lines 19 -
46, The fenced code block that shows the project tree (the triple-backtick block
beginning with "smg/") is missing a language identifier; update the opening
fence to include a language tag (e.g., use ```text) so markdownlint is satisfied
by modifying that specific fenced block in
docs/plans/2026-03-05-workspace-reorganization-design.md.


---

### Task 1: Move crate directories with git mv

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Fix heading level jump at the first task heading.

The file goes from # to ### directly, which violates markdown heading increment rules.

Suggested fix
-### Task 1: Move crate directories with git mv
+## Task 1: Move crate directories with git mv
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
### Task 1: Move crate directories with git mv
## Task 1: Move crate directories with git mv
🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 13-13: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/plans/2026-03-05-workspace-reorganization.md` at line 13, The first task
heading "Task 1: Move crate directories with git mv" is using ### while the
document's top-level is #, causing a heading level jump; update that heading
from "### Task 1: Move crate directories with git mv" to "## Task 1: Move crate
directories with git mv" (and verify subsequent task headings use consistent
levels) so heading increments follow the expected hierarchy.

**Step 1: Update workspace members (line 2)**

Change:
```toml

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Add blank lines around fenced code blocks.

Multiple fenced blocks are missing required surrounding blank lines and trigger MD031.

Suggested pattern
 Change:
+
 ```toml
 members = ["model_gateway", ...]

To:


Apply this same pattern to each flagged fenced block.
</details>




Also applies to: 68-68, 75-75, 136-136, 147-147, 157-157, 200-200, 212-212, 237-237, 259-259, 289-289, 322-322

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 markdownlint-cli2 (0.21.0)</summary>

[warning] 63-63: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)

</details>

</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @docs/plans/2026-03-05-workspace-reorganization.md at line 63, Several fenced
code blocks use "toml" without surrounding blank lines causing MD031 failures; for each fenced block (opening marker "toml" and its closing "") add a blank line immediately before the opening fence and a blank line immediately after the closing fence so the block is separated from surrounding text—apply this change to every flagged block (e.g., the occurrences starting with "toml" and their matching "```" markers throughout the document).


</details>

<!-- fingerprinting:phantom:poseidon:hawk -->

<!-- This is an auto-generated comment by CodeRabbit -->

Comment on lines +129 to +131
- Modify: `.github/workflows/benchmark-tool-parser.yml` (lines 8-11, 16-19)
- Modify: `.github/workflows/benchmark-tokenizer.yml` (lines 8-11, 16-19)
- Modify: `.github/workflows/benchmark-radix-tree.yml` (lines 8-11, 16-19)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Use “GitHub” capitalization consistently in prose.

These references use lowercase “github” in descriptive text; update to “GitHub” for correctness/style consistency.

Also applies to: 169-169, 195-195, 253-254, 355-355

🧰 Tools
🪛 LanguageTool

[uncategorized] ~129-~129: The official name of this software platform is spelled with a capital “H”.
Context: ...— benchmark files Files: - Modify: .github/workflows/benchmark-tool-parser.yml (l...

(GITHUB)


[uncategorized] ~130-~130: The official name of this software platform is spelled with a capital “H”.
Context: ...rser.yml(lines 8-11, 16-19) - Modify:.github/workflows/benchmark-tokenizer.yml` (lin...

(GITHUB)


[uncategorized] ~131-~131: The official name of this software platform is spelled with a capital “H”.
Context: ...izer.yml(lines 8-11, 16-19) - Modify:.github/workflows/benchmark-radix-tree.yml` (li...

(GITHUB)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/plans/2026-03-05-workspace-reorganization.md` around lines 129 - 131,
Replace lowercase "github" with "GitHub" in the prose of this document: update
the three workflow path mentions (.github/workflows/benchmark-tool-parser.yml,
.github/workflows/benchmark-tokenizer.yml,
.github/workflows/benchmark-radix-tree.yml) and any other occurrences in this
file (the additional instances noted in the review). Search the file for the
token "github" (case-sensitive) and change it to "GitHub" so capitalization is
consistent across the document.

@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: 75e9825d20

ℹ️ 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 infra/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 Fix fixture builder path assumptions after moving wasm crate

This step now runs infra/wasm/tests/fixtures/build_fixtures.sh, but that script still computes REPO_ROOT with ../../.. and then builds guests from $REPO_ROOT/examples/wasm/...; after the move, ../../.. resolves to <repo>/infra, so it looks for infra/examples/wasm/* (which does not exist). On cache misses this causes fixture generation to fail, which blocks the wheel job and downstream E2E jobs that depend on the fixture artifact.

Useful? React with 👍 / 👎.

with:
name: wasm-test-fixtures
path: wasm/tests/fixtures/
path: infra/wasm/tests/fixtures/

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 Align agentic E2E fixture download path with test hook path

Agentic responses tests still launch the gateway with --storage-hook-wasm-path wasm/tests/fixtures/storage_hook_passthrough.wasm (e2e_test/responses/test_storage_hooks.py), but this workflow now places the fixture under infra/wasm/tests/fixtures/. Since wasm/ no longer exists at repo root after this refactor, those storage-hook tests will fail to load the module unless the test path or download destination is updated.

Useful? React with 👍 / 👎.

@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 significantly refactors the project's directory structure by grouping Rust crates into core/ and infra/ categories. This change aims to enhance the navigability and understanding of the codebase's architectural hierarchy by reducing the number of top-level directories. The refactor involved extensive path updates across various configuration and script files, ensuring that all internal references correctly point to the new locations without altering any functional code or package names.

Highlights

  • Workspace Reorganization: Thirteen Rust crates were moved into new core/ and infra/ top-level directories to improve architectural clarity and reduce root-level clutter. Eight crates were moved to core/ (protocols, reasoning_parser, tool_parser, tokenizer, multimodal, kv_index, mcp, grpc_client) and five to infra/ (auth, mesh, data_connector, wasm, workflow).
  • Path Updates: All internal path references across the workspace were updated to reflect the new directory structure. This includes the root Cargo.toml workspace members and dependencies, inter-crate Cargo.toml files, CI workflows, GitHub labeler configurations, and shell scripts.
  • No Functional Changes: This refactor is purely organizational; no package names were changed, and no Rust source code (.rs files) was modified. The change preserves git history for all moved files.
  • Documentation Added: New documentation files were added outlining the design and implementation plan for this workspace reorganization.
Changelog
  • .github/labeler.yml
    • Updated file path globs for various components to reflect their new locations under core/ or infra/.
  • Cargo.toml
    • Updated [workspace].members to include the new core/ and infra/ prefixes for moved crates.
    • Adjusted [workspace.dependencies] paths for internal crates to reflect their new directory structure.
  • 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.
  • core/grpc_client/Cargo.toml
    • Renamed from grpc_client/Cargo.toml to core/grpc_client/Cargo.toml.
  • core/grpc_client/build.rs
    • Renamed from grpc_client/build.rs to core/grpc_client/build.rs.
  • core/grpc_client/proto/common.proto
    • Renamed from grpc_client/proto/common.proto to core/grpc_client/proto/common.proto.
  • core/grpc_client/proto/sglang_encoder.proto
    • Renamed from grpc_client/proto/sglang_encoder.proto to core/grpc_client/proto/sglang_encoder.proto.
  • core/grpc_client/proto/sglang_scheduler.proto
    • Renamed from grpc_client/proto/sglang_scheduler.proto to core/grpc_client/proto/sglang_scheduler.proto.
  • core/grpc_client/proto/trtllm_service.proto
    • Renamed from grpc_client/proto/trtllm_service.proto to core/grpc_client/proto/trtllm_service.proto.
  • core/grpc_client/proto/vllm_engine.proto
    • Renamed from grpc_client/proto/vllm_engine.proto to core/grpc_client/proto/vllm_engine.proto.
  • core/grpc_client/python/.gitignore
    • Renamed from grpc_client/python/.gitignore to core/grpc_client/python/.gitignore.
  • core/grpc_client/python/README.md
    • Renamed from grpc_client/python/README.md to core/grpc_client/python/README.md.
  • core/grpc_client/python/pyproject.toml
    • Renamed from grpc_client/python/pyproject.toml to core/grpc_client/python/pyproject.toml.
  • core/grpc_client/python/setup.py
    • Renamed from grpc_client/python/setup.py to core/grpc_client/python/setup.py.
  • core/grpc_client/python/smg_grpc_proto/init.py
    • Renamed from grpc_client/python/smg_grpc_proto/__init__.py to core/grpc_client/python/smg_grpc_proto/__init__.py.
  • core/grpc_client/python/smg_grpc_proto/proto
    • Renamed from grpc_client/python/smg_grpc_proto/proto to core/grpc_client/python/smg_grpc_proto/proto.
  • core/grpc_client/src/lib.rs
    • Renamed from grpc_client/src/lib.rs to core/grpc_client/src/lib.rs.
  • core/grpc_client/src/sglang_scheduler.rs
    • Renamed from grpc_client/src/sglang_scheduler.rs to core/grpc_client/src/sglang_scheduler.rs.
  • core/grpc_client/src/tokenizer_bundle.rs
    • Renamed from grpc_client/src/tokenizer_bundle.rs to core/grpc_client/src/tokenizer_bundle.rs.
  • core/grpc_client/src/trtllm_service.rs
    • Renamed from grpc_client/src/trtllm_service.rs to core/grpc_client/src/trtllm_service.rs.
  • core/grpc_client/src/vllm_engine.rs
    • Renamed from grpc_client/src/vllm_engine.rs to core/grpc_client/src/vllm_engine.rs.
  • core/kv_index/Cargo.toml
    • Renamed from kv_index/Cargo.toml to core/kv_index/Cargo.toml.
  • core/kv_index/benches/throughput_bench.rs
    • Renamed from kv_index/benches/throughput_bench.rs to core/kv_index/benches/throughput_bench.rs.
  • core/kv_index/src/common.rs
    • Renamed from kv_index/src/common.rs to core/kv_index/src/common.rs.
  • core/kv_index/src/event_tree.rs
    • Renamed from kv_index/src/event_tree.rs to core/kv_index/src/event_tree.rs.
  • core/kv_index/src/lib.rs
    • Renamed from kv_index/src/lib.rs to core/kv_index/src/lib.rs.
  • core/kv_index/src/string_tree.rs
    • Renamed from kv_index/src/string_tree.rs to core/kv_index/src/string_tree.rs.
  • core/kv_index/src/token_tree.rs
    • Renamed from kv_index/src/token_tree.rs to core/kv_index/src/token_tree.rs.
  • core/mcp/Cargo.toml
    • Renamed from mcp/Cargo.toml to core/mcp/Cargo.toml.
  • core/mcp/README.md
    • Renamed from mcp/README.md to core/mcp/README.md.
  • core/mcp/src/annotations.rs
    • Renamed from mcp/src/annotations.rs to core/mcp/src/annotations.rs.
  • core/mcp/src/approval/audit.rs
    • Renamed from mcp/src/approval/audit.rs to core/mcp/src/approval/audit.rs.
  • core/mcp/src/approval/manager.rs
    • Renamed from mcp/src/approval/manager.rs to core/mcp/src/approval/manager.rs.
  • core/mcp/src/approval/mod.rs
    • Renamed from mcp/src/approval/mod.rs to core/mcp/src/approval/mod.rs.
  • core/mcp/src/approval/policy.rs
    • Renamed from mcp/src/approval/policy.rs to core/mcp/src/approval/policy.rs.
  • core/mcp/src/core/config.rs
    • Renamed from mcp/src/core/config.rs to core/mcp/src/core/config.rs.
  • core/mcp/src/core/handler.rs
    • Renamed from mcp/src/core/handler.rs to core/mcp/src/core/handler.rs.
  • core/mcp/src/core/metrics.rs
    • Renamed from mcp/src/core/metrics.rs to core/mcp/src/core/metrics.rs.
  • core/mcp/src/core/mod.rs
    • Renamed from mcp/src/core/mod.rs to core/mcp/src/core/mod.rs.
  • core/mcp/src/core/oauth.rs
    • Renamed from mcp/src/core/oauth.rs to core/mcp/src/core/oauth.rs.
  • core/mcp/src/core/orchestrator.rs
    • Renamed from mcp/src/core/orchestrator.rs to core/mcp/src/core/orchestrator.rs.
  • core/mcp/src/core/pool.rs
    • Renamed from mcp/src/core/pool.rs to core/mcp/src/core/pool.rs.
  • core/mcp/src/core/proxy.rs
    • Renamed from mcp/src/core/proxy.rs to core/mcp/src/core/proxy.rs.
  • core/mcp/src/core/reconnect.rs
    • Renamed from mcp/src/core/reconnect.rs to core/mcp/src/core/reconnect.rs.
  • core/mcp/src/core/session.rs
    • Renamed from mcp/src/core/session.rs to core/mcp/src/core/session.rs.
  • core/mcp/src/error.rs
    • Renamed from mcp/src/error.rs to core/mcp/src/error.rs.
  • core/mcp/src/inventory/index.rs
    • Renamed from mcp/src/inventory/index.rs to core/mcp/src/inventory/index.rs.
  • core/mcp/src/inventory/mod.rs
    • Renamed from mcp/src/inventory/mod.rs to core/mcp/src/inventory/mod.rs.
  • core/mcp/src/inventory/types.rs
    • Renamed from mcp/src/inventory/types.rs to core/mcp/src/inventory/types.rs.
  • core/mcp/src/lib.rs
    • Renamed from mcp/src/lib.rs to core/mcp/src/lib.rs.
  • core/mcp/src/responses_bridge.rs
    • Renamed from mcp/src/responses_bridge.rs to core/mcp/src/responses_bridge.rs.
  • core/mcp/src/tenant.rs
    • Renamed from mcp/src/tenant.rs to core/mcp/src/tenant.rs.
  • core/mcp/src/transform/mod.rs
    • Renamed from mcp/src/transform/mod.rs to core/mcp/src/transform/mod.rs.
  • core/mcp/src/transform/transformer.rs
    • Renamed from mcp/src/transform/transformer.rs to core/mcp/src/transform/transformer.rs.
  • core/mcp/src/transform/types.rs
    • Renamed from mcp/src/transform/types.rs to core/mcp/src/transform/types.rs.
  • core/multimodal/Cargo.toml
    • Renamed from multimodal/Cargo.toml to core/multimodal/Cargo.toml.
  • core/multimodal/scripts/generate_vision_golden.py
    • Renamed from multimodal/scripts/generate_vision_golden.py to core/multimodal/scripts/generate_vision_golden.py.
  • core/multimodal/src/error.rs
    • Renamed from multimodal/src/error.rs to core/multimodal/src/error.rs.
  • core/multimodal/src/hasher.rs
    • Renamed from multimodal/src/hasher.rs to core/multimodal/src/hasher.rs.
  • core/multimodal/src/lib.rs
    • Renamed from multimodal/src/lib.rs to core/multimodal/src/lib.rs.
  • core/multimodal/src/media.rs
    • Renamed from multimodal/src/media.rs to core/multimodal/src/media.rs.
  • core/multimodal/src/registry/llama4.rs
    • Renamed from multimodal/src/registry/llama4.rs to core/multimodal/src/registry/llama4.rs.
  • core/multimodal/src/registry/llava.rs
    • Renamed from multimodal/src/registry/llava.rs to core/multimodal/src/registry/llava.rs.
  • core/multimodal/src/registry/mod.rs
    • Renamed from multimodal/src/registry/mod.rs to core/multimodal/src/registry/mod.rs.
  • core/multimodal/src/registry/phi3_v.rs
    • Renamed from multimodal/src/registry/phi3_v.rs to core/multimodal/src/registry/phi3_v.rs.
  • core/multimodal/src/registry/qwen3_vl.rs
    • Renamed from multimodal/src/registry/qwen3_vl.rs to core/multimodal/src/registry/qwen3_vl.rs.
  • core/multimodal/src/registry/qwen_vl.rs
    • Renamed from multimodal/src/registry/qwen_vl.rs to core/multimodal/src/registry/qwen_vl.rs.
  • core/multimodal/src/registry/traits.rs
    • Renamed from multimodal/src/registry/traits.rs to core/multimodal/src/registry/traits.rs.
  • core/multimodal/src/tracker.rs
    • Renamed from multimodal/src/tracker.rs to core/multimodal/src/tracker.rs.
  • core/multimodal/src/types.rs
    • Renamed from multimodal/src/types.rs to core/multimodal/src/types.rs.
  • core/multimodal/src/vision/image_processor.rs
    • Renamed from multimodal/src/vision/image_processor.rs to core/multimodal/src/vision/image_processor.rs.
  • core/multimodal/src/vision/mod.rs
    • Renamed from multimodal/src/vision/mod.rs to core/multimodal/src/vision/mod.rs.
  • core/multimodal/src/vision/preprocessor_config.rs
    • Renamed from multimodal/src/vision/preprocessor_config.rs to core/multimodal/src/vision/preprocessor_config.rs.
  • core/multimodal/src/vision/processors/llama4_vision.rs
    • Renamed from multimodal/src/vision/processors/llama4_vision.rs to core/multimodal/src/vision/processors/llama4_vision.rs.
  • core/multimodal/src/vision/processors/llava.rs
    • Renamed from multimodal/src/vision/processors/llava.rs to core/multimodal/src/vision/processors/llava.rs.
  • core/multimodal/src/vision/processors/mod.rs
    • Renamed from multimodal/src/vision/processors/mod.rs to core/multimodal/src/vision/processors/mod.rs.
  • core/multimodal/src/vision/processors/phi3_vision.rs
    • Renamed from multimodal/src/vision/processors/phi3_vision.rs to core/multimodal/src/vision/processors/phi3_vision.rs.
  • core/multimodal/src/vision/processors/phi4_vision.rs
    • Renamed from multimodal/src/vision/processors/phi4_vision.rs to core/multimodal/src/vision/processors/phi4_vision.rs.
  • core/multimodal/src/vision/processors/pixtral.rs
    • Renamed from multimodal/src/vision/processors/pixtral.rs to core/multimodal/src/vision/processors/pixtral.rs.
  • core/multimodal/src/vision/processors/qwen2_vl.rs
    • Renamed from multimodal/src/vision/processors/qwen2_vl.rs to core/multimodal/src/vision/processors/qwen2_vl.rs.
  • core/multimodal/src/vision/processors/qwen3_vl.rs
    • Renamed from multimodal/src/vision/processors/qwen3_vl.rs to core/multimodal/src/vision/processors/qwen3_vl.rs.
  • core/multimodal/src/vision/processors/qwen_vl_base.rs
    • Renamed from multimodal/src/vision/processors/qwen_vl_base.rs to core/multimodal/src/vision/processors/qwen_vl_base.rs.
  • core/multimodal/src/vision/transforms.rs
    • Renamed from multimodal/src/vision/transforms.rs to core/multimodal/src/vision/transforms.rs.
  • core/multimodal/tests/multimodal_tracker_test.rs
    • Renamed from multimodal/tests/multimodal_tracker_test.rs to core/multimodal/tests/multimodal_tracker_test.rs.
  • core/multimodal/tests/vision_golden_tests.rs
    • Renamed from multimodal/tests/vision_golden_tests.rs to core/multimodal/tests/vision_golden_tests.rs.
  • core/protocols/Cargo.toml
    • Renamed from protocols/Cargo.toml to core/protocols/Cargo.toml.
  • core/protocols/src/builders/chat/mod.rs
    • Renamed from protocols/src/builders/chat/mod.rs to core/protocols/src/builders/chat/mod.rs.
  • core/protocols/src/builders/chat/response.rs
    • Renamed from protocols/src/builders/chat/response.rs to core/protocols/src/builders/chat/response.rs.
  • core/protocols/src/builders/chat/stream_response.rs
    • Renamed from protocols/src/builders/chat/stream_response.rs to core/protocols/src/builders/chat/stream_response.rs.
  • core/protocols/src/builders/mod.rs
    • Renamed from protocols/src/builders/mod.rs to core/protocols/src/builders/mod.rs.
  • core/protocols/src/builders/realtime/client_event.rs
    • Renamed from protocols/src/builders/realtime/client_event.rs to core/protocols/src/builders/realtime/client_event.rs.
  • core/protocols/src/builders/realtime/mod.rs
    • Renamed from protocols/src/builders/realtime/mod.rs to core/protocols/src/builders/realtime/mod.rs.
  • core/protocols/src/builders/realtime/response.rs
    • Renamed from protocols/src/builders/realtime/response.rs to core/protocols/src/builders/realtime/response.rs.
  • core/protocols/src/builders/realtime/server_event.rs
    • Renamed from protocols/src/builders/realtime/server_event.rs to core/protocols/src/builders/realtime/server_event.rs.
  • core/protocols/src/builders/responses/mod.rs
    • Renamed from protocols/src/builders/responses/mod.rs to core/protocols/src/builders/responses/mod.rs.
  • core/protocols/src/builders/responses/response.rs
    • Renamed from protocols/src/builders/responses/response.rs to core/protocols/src/builders/responses/response.rs.
  • core/protocols/src/chat.rs
    • Renamed from protocols/src/chat.rs to core/protocols/src/chat.rs.
  • core/protocols/src/classify.rs
    • Renamed from protocols/src/classify.rs to core/protocols/src/classify.rs.
  • core/protocols/src/common.rs
    • Renamed from protocols/src/common.rs to core/protocols/src/common.rs.
  • core/protocols/src/completion.rs
    • Renamed from protocols/src/completion.rs to core/protocols/src/completion.rs.
  • core/protocols/src/embedding.rs
    • Renamed from protocols/src/embedding.rs to core/protocols/src/embedding.rs.
  • core/protocols/src/event_types.rs
    • Renamed from protocols/src/event_types.rs to core/protocols/src/event_types.rs.
  • core/protocols/src/generate.rs
    • Renamed from protocols/src/generate.rs to core/protocols/src/generate.rs.
  • core/protocols/src/interactions.rs
    • Renamed from protocols/src/interactions.rs to core/protocols/src/interactions.rs.
  • core/protocols/src/lib.rs
    • Renamed from protocols/src/lib.rs to core/protocols/src/lib.rs.
  • core/protocols/src/messages.rs
    • Renamed from protocols/src/messages.rs to core/protocols/src/messages.rs.
  • core/protocols/src/model_card.rs
    • Renamed from protocols/src/model_card.rs to core/protocols/src/model_card.rs.
  • core/protocols/src/model_type.rs
    • Renamed from protocols/src/model_type.rs to core/protocols/src/model_type.rs.
  • core/protocols/src/parser.rs
    • Renamed from protocols/src/parser.rs to core/protocols/src/parser.rs.
  • core/protocols/src/realtime_conversation.rs
    • Renamed from protocols/src/realtime_conversation.rs to core/protocols/src/realtime_conversation.rs.
  • core/protocols/src/realtime_events.rs
    • Renamed from protocols/src/realtime_events.rs to core/protocols/src/realtime_events.rs.
  • core/protocols/src/realtime_response.rs
    • Renamed from protocols/src/realtime_response.rs to core/protocols/src/realtime_response.rs.
  • core/protocols/src/realtime_session.rs
    • Renamed from protocols/src/realtime_session.rs to core/protocols/src/realtime_session.rs.
  • core/protocols/src/rerank.rs
    • Renamed from protocols/src/rerank.rs to core/protocols/src/rerank.rs.
  • core/protocols/src/responses.rs
    • Renamed from protocols/src/responses.rs to core/protocols/src/responses.rs.
  • core/protocols/src/sampling_params.rs
    • Renamed from protocols/src/sampling_params.rs to core/protocols/src/sampling_params.rs.
  • core/protocols/src/tokenize.rs
    • Renamed from protocols/src/tokenize.rs to core/protocols/src/tokenize.rs.
  • core/protocols/src/validated.rs
    • Renamed from protocols/src/validated.rs to core/protocols/src/validated.rs.
  • core/protocols/src/worker.rs
    • Renamed from protocols/src/worker.rs to core/protocols/src/worker.rs.
  • core/reasoning_parser/Cargo.toml
    • Renamed from reasoning_parser/Cargo.toml to core/reasoning_parser/Cargo.toml.
  • core/reasoning_parser/README.md
    • Renamed from reasoning_parser/README.md to core/reasoning_parser/README.md.
  • core/reasoning_parser/src/README.md
    • Renamed from reasoning_parser/src/README.md to core/reasoning_parser/src/README.md.
  • core/reasoning_parser/src/factory.rs
    • Renamed from reasoning_parser/src/factory.rs to core/reasoning_parser/src/factory.rs.
  • core/reasoning_parser/src/lib.rs
    • Renamed from reasoning_parser/src/lib.rs to core/reasoning_parser/src/lib.rs.
  • core/reasoning_parser/src/parsers/base.rs
    • Renamed from reasoning_parser/src/parsers/base.rs to core/reasoning_parser/src/parsers/base.rs.
  • core/reasoning_parser/src/parsers/cohere_cmd.rs
    • Renamed from reasoning_parser/src/parsers/cohere_cmd.rs to core/reasoning_parser/src/parsers/cohere_cmd.rs.
  • core/reasoning_parser/src/parsers/deepseek_r1.rs
    • Renamed from reasoning_parser/src/parsers/deepseek_r1.rs to core/reasoning_parser/src/parsers/deepseek_r1.rs.
  • core/reasoning_parser/src/parsers/glm45.rs
    • Renamed from reasoning_parser/src/parsers/glm45.rs to core/reasoning_parser/src/parsers/glm45.rs.
  • core/reasoning_parser/src/parsers/kimi.rs
    • Renamed from reasoning_parser/src/parsers/kimi.rs to core/reasoning_parser/src/parsers/kimi.rs.
  • core/reasoning_parser/src/parsers/minimax.rs
    • Renamed from reasoning_parser/src/parsers/minimax.rs to core/reasoning_parser/src/parsers/minimax.rs.
  • core/reasoning_parser/src/parsers/mod.rs
    • Renamed from reasoning_parser/src/parsers/mod.rs to core/reasoning_parser/src/parsers/mod.rs.
  • core/reasoning_parser/src/parsers/nano_v3.rs
    • Renamed from reasoning_parser/src/parsers/nano_v3.rs to core/reasoning_parser/src/parsers/nano_v3.rs.
  • core/reasoning_parser/src/parsers/qwen3.rs
    • Renamed from reasoning_parser/src/parsers/qwen3.rs to core/reasoning_parser/src/parsers/qwen3.rs.
  • core/reasoning_parser/src/parsers/step3.rs
    • Renamed from reasoning_parser/src/parsers/step3.rs to core/reasoning_parser/src/parsers/step3.rs.
  • core/reasoning_parser/src/traits.rs
    • Renamed from reasoning_parser/src/traits.rs to core/reasoning_parser/src/traits.rs.
  • core/tokenizer/Cargo.toml
    • Renamed from tokenizer/Cargo.toml to core/tokenizer/Cargo.toml.
  • core/tokenizer/README.md
    • Renamed from tokenizer/README.md to core/tokenizer/README.md.
  • core/tokenizer/benches/stop_sequence_search.rs
    • Renamed from tokenizer/benches/stop_sequence_search.rs to core/tokenizer/benches/stop_sequence_search.rs.
  • core/tokenizer/src/cache/fingerprint.rs
    • Renamed from tokenizer/src/cache/fingerprint.rs to core/tokenizer/src/cache/fingerprint.rs.
  • core/tokenizer/src/cache/l0.rs
    • Renamed from tokenizer/src/cache/l0.rs to core/tokenizer/src/cache/l0.rs.
  • core/tokenizer/src/cache/l1.rs
    • Renamed from tokenizer/src/cache/l1.rs to core/tokenizer/src/cache/l1.rs.
  • core/tokenizer/src/cache/mod.rs
    • Renamed from tokenizer/src/cache/mod.rs to core/tokenizer/src/cache/mod.rs.
  • core/tokenizer/src/chat_template.rs
    • Renamed from tokenizer/src/chat_template.rs to core/tokenizer/src/chat_template.rs.
  • core/tokenizer/src/factory.rs
    • Renamed from tokenizer/src/factory.rs to core/tokenizer/src/factory.rs.
  • core/tokenizer/src/hub.rs
    • Renamed from tokenizer/src/hub.rs to core/tokenizer/src/hub.rs.
  • core/tokenizer/src/huggingface.rs
    • Renamed from tokenizer/src/huggingface.rs to core/tokenizer/src/huggingface.rs.
  • core/tokenizer/src/lib.rs
    • Renamed from tokenizer/src/lib.rs to core/tokenizer/src/lib.rs.
  • core/tokenizer/src/mock.rs
    • Renamed from tokenizer/src/mock.rs to core/tokenizer/src/mock.rs.
  • core/tokenizer/src/registry.rs
    • Renamed from tokenizer/src/registry.rs to core/tokenizer/src/registry.rs.
  • core/tokenizer/src/sequence.rs
    • Renamed from tokenizer/src/sequence.rs to core/tokenizer/src/sequence.rs.
  • core/tokenizer/src/stop.rs
    • Renamed from tokenizer/src/stop.rs to core/tokenizer/src/stop.rs.
  • core/tokenizer/src/stream.rs
    • Renamed from tokenizer/src/stream.rs to core/tokenizer/src/stream.rs.
  • core/tokenizer/src/tests.rs
    • Renamed from tokenizer/src/tests.rs to core/tokenizer/src/tests.rs.
  • core/tokenizer/src/tiktoken.rs
    • Renamed from tokenizer/src/tiktoken.rs to core/tokenizer/src/tiktoken.rs.
  • core/tokenizer/src/traits.rs
    • Renamed from tokenizer/src/traits.rs to core/tokenizer/src/traits.rs.
  • core/tokenizer/tests/chat_template_format_detection.rs
    • Renamed from tokenizer/tests/chat_template_format_detection.rs to core/tokenizer/tests/chat_template_format_detection.rs.
  • core/tokenizer/tests/chat_template_integration.rs
    • Renamed from tokenizer/tests/chat_template_integration.rs to core/tokenizer/tests/chat_template_integration.rs.
  • core/tokenizer/tests/chat_template_loading.rs
    • Renamed from tokenizer/tests/chat_template_loading.rs to core/tokenizer/tests/chat_template_loading.rs.
  • core/tokenizer/tests/common/mod.rs
    • Renamed from tokenizer/tests/common/mod.rs to core/tokenizer/tests/common/mod.rs.
  • core/tokenizer/tests/tiktoken_integration.rs
    • Renamed from tokenizer/tests/tiktoken_integration.rs to core/tokenizer/tests/tiktoken_integration.rs.
  • core/tokenizer/tests/tokenizer_cache_correctness_test.rs
    • Renamed from tokenizer/tests/tokenizer_cache_correctness_test.rs to core/tokenizer/tests/tokenizer_cache_correctness_test.rs.
  • core/tokenizer/tests/tokenizer_integration.rs
    • Renamed from tokenizer/tests/tokenizer_integration.rs to core/tokenizer/tests/tokenizer_integration.rs.
  • core/tool_parser/Cargo.toml
    • Renamed from tool_parser/Cargo.toml to core/tool_parser/Cargo.toml.
  • core/tool_parser/README.md
    • Renamed from tool_parser/README.md to core/tool_parser/README.md.
  • core/tool_parser/src/errors.rs
    • Renamed from tool_parser/src/errors.rs to core/tool_parser/src/errors.rs.
  • core/tool_parser/src/factory.rs
    • Renamed from tool_parser/src/factory.rs to core/tool_parser/src/factory.rs.
  • core/tool_parser/src/lib.rs
    • Renamed from tool_parser/src/lib.rs to core/tool_parser/src/lib.rs.
  • core/tool_parser/src/parsers/cohere.rs
    • Renamed from tool_parser/src/parsers/cohere.rs to core/tool_parser/src/parsers/cohere.rs.
  • core/tool_parser/src/parsers/deepseek.rs
    • Renamed from tool_parser/src/parsers/deepseek.rs to core/tool_parser/src/parsers/deepseek.rs.
  • core/tool_parser/src/parsers/glm4_moe.rs
    • Renamed from tool_parser/src/parsers/glm4_moe.rs to core/tool_parser/src/parsers/glm4_moe.rs.
  • core/tool_parser/src/parsers/helpers.rs
    • Renamed from tool_parser/src/parsers/helpers.rs to core/tool_parser/src/parsers/helpers.rs.
  • core/tool_parser/src/parsers/json.rs
    • Renamed from tool_parser/src/parsers/json.rs to core/tool_parser/src/parsers/json.rs.
  • core/tool_parser/src/parsers/kimik2.rs
    • Renamed from tool_parser/src/parsers/kimik2.rs to core/tool_parser/src/parsers/kimik2.rs.
  • core/tool_parser/src/parsers/llama.rs
    • Renamed from tool_parser/src/parsers/llama.rs to core/tool_parser/src/parsers/llama.rs.
  • core/tool_parser/src/parsers/minimax_m2.rs
    • Renamed from tool_parser/src/parsers/minimax_m2.rs to core/tool_parser/src/parsers/minimax_m2.rs.
  • core/tool_parser/src/parsers/mistral.rs
    • Renamed from tool_parser/src/parsers/mistral.rs to core/tool_parser/src/parsers/mistral.rs.
  • core/tool_parser/src/parsers/mod.rs
    • Renamed from tool_parser/src/parsers/mod.rs to core/tool_parser/src/parsers/mod.rs.
  • core/tool_parser/src/parsers/passthrough.rs
    • Renamed from tool_parser/src/parsers/passthrough.rs to core/tool_parser/src/parsers/passthrough.rs.
  • core/tool_parser/src/parsers/pythonic.rs
    • Renamed from tool_parser/src/parsers/pythonic.rs to core/tool_parser/src/parsers/pythonic.rs.
  • core/tool_parser/src/parsers/qwen.rs
    • Renamed from tool_parser/src/parsers/qwen.rs to core/tool_parser/src/parsers/qwen.rs.
  • core/tool_parser/src/parsers/qwen_coder.rs
    • Renamed from tool_parser/src/parsers/qwen_coder.rs to core/tool_parser/src/parsers/qwen_coder.rs.
  • core/tool_parser/src/parsers/step3.rs
    • Renamed from tool_parser/src/parsers/step3.rs to core/tool_parser/src/parsers/step3.rs.
  • core/tool_parser/src/partial_json.rs
    • Renamed from tool_parser/src/partial_json.rs to core/tool_parser/src/partial_json.rs.
  • core/tool_parser/src/tests.rs
    • Renamed from tool_parser/src/tests.rs to core/tool_parser/src/tests.rs.
  • core/tool_parser/src/traits.rs
    • Renamed from tool_parser/src/traits.rs to core/tool_parser/src/traits.rs.
  • core/tool_parser/src/types.rs
    • Renamed from tool_parser/src/types.rs to core/tool_parser/src/types.rs.
  • core/tool_parser/tests/common/mod.rs
    • Renamed from tool_parser/tests/common/mod.rs to core/tool_parser/tests/common/mod.rs.
  • core/tool_parser/tests/tool_parser_cohere.rs
    • Renamed from tool_parser/tests/tool_parser_cohere.rs to core/tool_parser/tests/tool_parser_cohere.rs.
  • core/tool_parser/tests/tool_parser_deepseek.rs
    • Renamed from tool_parser/tests/tool_parser_deepseek.rs to core/tool_parser/tests/tool_parser_deepseek.rs.
  • core/tool_parser/tests/tool_parser_edge_cases.rs
    • Renamed from tool_parser/tests/tool_parser_edge_cases.rs to core/tool_parser/tests/tool_parser_edge_cases.rs.
  • core/tool_parser/tests/tool_parser_fallback.rs
    • Renamed from tool_parser/tests/tool_parser_fallback.rs to core/tool_parser/tests/tool_parser_fallback.rs.
  • core/tool_parser/tests/tool_parser_glm47_moe.rs
    • Renamed from tool_parser/tests/tool_parser_glm47_moe.rs to core/tool_parser/tests/tool_parser_glm47_moe.rs.
  • core/tool_parser/tests/tool_parser_glm4_moe.rs
    • Renamed from tool_parser/tests/tool_parser_glm4_moe.rs to core/tool_parser/tests/tool_parser_glm4_moe.rs.
  • core/tool_parser/tests/tool_parser_json.rs
    • Renamed from tool_parser/tests/tool_parser_json.rs to core/tool_parser/tests/tool_parser_json.rs.
  • core/tool_parser/tests/tool_parser_kimik2.rs
    • Renamed from tool_parser/tests/tool_parser_kimik2.rs to core/tool_parser/tests/tool_parser_kimik2.rs.
  • core/tool_parser/tests/tool_parser_llama.rs
    • Renamed from tool_parser/tests/tool_parser_llama.rs to core/tool_parser/tests/tool_parser_llama.rs.
  • core/tool_parser/tests/tool_parser_minimax_m2.rs
    • Renamed from tool_parser/tests/tool_parser_minimax_m2.rs to core/tool_parser/tests/tool_parser_minimax_m2.rs.
  • core/tool_parser/tests/tool_parser_mistral.rs
    • Renamed from tool_parser/tests/tool_parser_mistral.rs to core/tool_parser/tests/tool_parser_mistral.rs.
  • core/tool_parser/tests/tool_parser_mixed_edge_cases.rs
    • Renamed from tool_parser/tests/tool_parser_mixed_edge_cases.rs to core/tool_parser/tests/tool_parser_mixed_edge_cases.rs.
  • core/tool_parser/tests/tool_parser_partial_json.rs
    • Renamed from tool_parser/tests/tool_parser_partial_json.rs to core/tool_parser/tests/tool_parser_partial_json.rs.
  • core/tool_parser/tests/tool_parser_pythonic.rs
    • Renamed from tool_parser/tests/tool_parser_pythonic.rs to core/tool_parser/tests/tool_parser_pythonic.rs.
  • core/tool_parser/tests/tool_parser_qwen.rs
    • Renamed from tool_parser/tests/tool_parser_qwen.rs to core/tool_parser/tests/tool_parser_qwen.rs.
  • core/tool_parser/tests/tool_parser_qwen_coder.rs
    • Renamed from tool_parser/tests/tool_parser_qwen_coder.rs to core/tool_parser/tests/tool_parser_qwen_coder.rs.
  • core/tool_parser/tests/tool_parser_step3.rs
    • Renamed from tool_parser/tests/tool_parser_step3.rs to core/tool_parser/tests/tool_parser_step3.rs.
  • docs/plans/2026-03-05-workspace-reorganization-design.md
    • Added a new design document detailing the rationale and goals for the workspace reorganization.
  • docs/plans/2026-03-05-workspace-reorganization.md
    • Added a new implementation plan document outlining the step-by-step process for the workspace reorganization.
  • infra/auth/Cargo.toml
    • Renamed from auth/Cargo.toml to infra/auth/Cargo.toml.
  • infra/auth/src/audit.rs
    • Renamed from auth/src/audit.rs to infra/auth/src/audit.rs.
  • infra/auth/src/config.rs
    • Renamed from auth/src/config.rs to infra/auth/src/config.rs.
  • infra/auth/src/jwks.rs
    • Renamed from auth/src/jwks.rs to infra/auth/src/jwks.rs.
  • infra/auth/src/jwt.rs
    • Renamed from auth/src/jwt.rs to infra/auth/src/jwt.rs.
  • infra/auth/src/lib.rs
    • Renamed from auth/src/lib.rs to infra/auth/src/lib.rs.
  • infra/auth/src/middleware.rs
    • Renamed from auth/src/middleware.rs to infra/auth/src/middleware.rs.
  • infra/data_connector/Cargo.toml
    • Renamed from data_connector/Cargo.toml to infra/data_connector/Cargo.toml.
  • infra/data_connector/README.md
    • Renamed from data_connector/README.md to infra/data_connector/README.md.
  • infra/data_connector/src/common.rs
    • Renamed from data_connector/src/common.rs to infra/data_connector/src/common.rs.
  • infra/data_connector/src/config.rs
    • Renamed from data_connector/src/config.rs to infra/data_connector/src/config.rs.
  • infra/data_connector/src/context.rs
    • Renamed from data_connector/src/context.rs to infra/data_connector/src/context.rs.
  • infra/data_connector/src/core.rs
    • Renamed from data_connector/src/core.rs to infra/data_connector/src/core.rs.
  • infra/data_connector/src/factory.rs
    • Renamed from data_connector/src/factory.rs to infra/data_connector/src/factory.rs.
  • infra/data_connector/src/hooked.rs
    • Renamed from data_connector/src/hooked.rs to infra/data_connector/src/hooked.rs.
  • infra/data_connector/src/hooks.rs
    • Renamed from data_connector/src/hooks.rs to infra/data_connector/src/hooks.rs.
  • infra/data_connector/src/lib.rs
    • Renamed from data_connector/src/lib.rs to infra/data_connector/src/lib.rs.
  • infra/data_connector/src/memory.rs
    • Renamed from data_connector/src/memory.rs to infra/data_connector/src/memory.rs.
  • infra/data_connector/src/noop.rs
    • Renamed from data_connector/src/noop.rs to infra/data_connector/src/noop.rs.
  • infra/data_connector/src/oracle.rs
    • Renamed from data_connector/src/oracle.rs to infra/data_connector/src/oracle.rs.
  • infra/data_connector/src/oracle_migrations.rs
    • Renamed from data_connector/src/oracle_migrations.rs to infra/data_connector/src/oracle_migrations.rs.
  • infra/data_connector/src/postgres.rs
    • Renamed from data_connector/src/postgres.rs to infra/data_connector/src/postgres.rs.
  • infra/data_connector/src/postgres_migrations.rs
    • Renamed from data_connector/src/postgres_migrations.rs to infra/data_connector/src/postgres_migrations.rs.
  • infra/data_connector/src/redis.rs
    • Renamed from data_connector/src/redis.rs to infra/data_connector/src/redis.rs.
  • infra/data_connector/src/schema.rs
    • Renamed from data_connector/src/schema.rs to infra/data_connector/src/schema.rs.
  • infra/data_connector/src/versioning.rs
    • Renamed from data_connector/src/versioning.rs to infra/data_connector/src/versioning.rs.
  • infra/mesh/Cargo.toml
    • Renamed from mesh/Cargo.toml to infra/mesh/Cargo.toml.
  • infra/mesh/build.rs
    • Renamed from mesh/build.rs to infra/mesh/build.rs.
  • infra/mesh/src/README.md
    • Renamed from mesh/src/README.md to infra/mesh/src/README.md.
  • infra/mesh/src/consistent_hash.rs
    • Renamed from mesh/src/consistent_hash.rs to infra/mesh/src/consistent_hash.rs.
  • infra/mesh/src/controller.rs
    • Renamed from mesh/src/controller.rs to infra/mesh/src/controller.rs.
  • infra/mesh/src/crdt_kv/crdt.rs
    • Renamed from mesh/src/crdt_kv/crdt.rs to infra/mesh/src/crdt_kv/crdt.rs.
  • infra/mesh/src/crdt_kv/kv_store.rs
    • Renamed from mesh/src/crdt_kv/kv_store.rs to infra/mesh/src/crdt_kv/kv_store.rs.
  • infra/mesh/src/crdt_kv/mod.rs
    • Renamed from mesh/src/crdt_kv/mod.rs to infra/mesh/src/crdt_kv/mod.rs.
  • infra/mesh/src/crdt_kv/operation.rs
    • Renamed from mesh/src/crdt_kv/operation.rs to infra/mesh/src/crdt_kv/operation.rs.
  • infra/mesh/src/crdt_kv/replica.rs
    • Renamed from mesh/src/crdt_kv/replica.rs to infra/mesh/src/crdt_kv/replica.rs.
  • infra/mesh/src/crdt_kv/tests.rs
    • Renamed from mesh/src/crdt_kv/tests.rs to infra/mesh/src/crdt_kv/tests.rs.
  • infra/mesh/src/flow_control.rs
    • Renamed from mesh/src/flow_control.rs to infra/mesh/src/flow_control.rs.
  • infra/mesh/src/incremental.rs
    • Renamed from mesh/src/incremental.rs to infra/mesh/src/incremental.rs.
  • infra/mesh/src/lib.rs
    • Renamed from mesh/src/lib.rs to infra/mesh/src/lib.rs.
  • infra/mesh/src/metrics.rs
    • Renamed from mesh/src/metrics.rs to infra/mesh/src/metrics.rs.
  • infra/mesh/src/mtls.rs
    • Renamed from mesh/src/mtls.rs to infra/mesh/src/mtls.rs.
  • infra/mesh/src/node_state_machine.rs
    • Renamed from mesh/src/node_state_machine.rs to infra/mesh/src/node_state_machine.rs.
  • infra/mesh/src/partition.rs
    • Renamed from mesh/src/partition.rs to infra/mesh/src/partition.rs.
  • infra/mesh/src/ping_server.rs
    • Renamed from mesh/src/ping_server.rs to infra/mesh/src/ping_server.rs.
  • infra/mesh/src/proto/gossip.proto
    • Renamed from mesh/src/proto/gossip.proto to infra/mesh/src/proto/gossip.proto.
  • infra/mesh/src/rate_limit_window.rs
    • Renamed from mesh/src/rate_limit_window.rs to infra/mesh/src/rate_limit_window.rs.
  • infra/mesh/src/service.rs
    • Renamed from mesh/src/service.rs to infra/mesh/src/service.rs.
  • infra/mesh/src/stores.rs
    • Renamed from mesh/src/stores.rs to infra/mesh/src/stores.rs.
  • infra/mesh/src/sync.rs
    • Renamed from mesh/src/sync.rs to infra/mesh/src/sync.rs.
  • infra/mesh/src/tests/comprehensive.rs
    • Renamed from mesh/src/tests/comprehensive.rs to infra/mesh/src/tests/comprehensive.rs.
  • infra/mesh/src/tests/mod.rs
    • Renamed from mesh/src/tests/mod.rs to infra/mesh/src/tests/mod.rs.
  • infra/mesh/src/tests/test_utils.rs
    • Renamed from mesh/src/tests/test_utils.rs to infra/mesh/src/tests/test_utils.rs.
  • infra/mesh/src/topology.rs
    • Renamed from mesh/src/topology.rs to infra/mesh/src/topology.rs.
  • infra/mesh/src/tree_ops.rs
    • Renamed from mesh/src/tree_ops.rs to infra/mesh/src/tree_ops.rs.
  • infra/wasm/Cargo.toml
    • Renamed from wasm/Cargo.toml to infra/wasm/Cargo.toml.
  • infra/wasm/README.md
    • Renamed from wasm/README.md to infra/wasm/README.md.
  • infra/wasm/src/config.rs
    • Renamed from wasm/src/config.rs to infra/wasm/src/config.rs.
  • infra/wasm/src/errors.rs
    • Renamed from wasm/src/errors.rs to infra/wasm/src/errors.rs.
  • infra/wasm/src/interface/spec.wit
    • Renamed from wasm/src/interface/spec.wit to infra/wasm/src/interface/spec.wit.
  • infra/wasm/src/interface/storage/storage-hooks.wit
    • Renamed from wasm/src/interface/storage/storage-hooks.wit to infra/wasm/src/interface/storage/storage-hooks.wit.
  • infra/wasm/src/lib.rs
    • Renamed from wasm/src/lib.rs to infra/wasm/src/lib.rs.
  • infra/wasm/src/module.rs
    • Renamed from wasm/src/module.rs to infra/wasm/src/module.rs.
  • infra/wasm/src/module_manager.rs
    • Renamed from wasm/src/module_manager.rs to infra/wasm/src/module_manager.rs.
  • infra/wasm/src/runtime.rs
    • Renamed from wasm/src/runtime.rs to infra/wasm/src/runtime.rs.
  • infra/wasm/src/spec.rs
    • Renamed from wasm/src/spec.rs to infra/wasm/src/spec.rs.
  • infra/wasm/src/storage_hook.rs
    • Renamed from wasm/src/storage_hook.rs to infra/wasm/src/storage_hook.rs.
  • infra/wasm/src/storage_spec.rs
    • Renamed from wasm/src/storage_spec.rs to infra/wasm/src/storage_spec.rs.
  • infra/wasm/src/types.rs
    • Renamed from wasm/src/types.rs to infra/wasm/src/types.rs.
  • infra/wasm/tests/fixtures/build_fixtures.sh
    • Renamed from wasm/tests/fixtures/build_fixtures.sh to infra/wasm/tests/fixtures/build_fixtures.sh.
  • infra/wasm/tests/storage_hook_integration.rs
    • Renamed from wasm/tests/storage_hook_integration.rs to infra/wasm/tests/storage_hook_integration.rs.
  • infra/workflow/Cargo.toml
    • Renamed from workflow/Cargo.toml to infra/workflow/Cargo.toml.
  • infra/workflow/README.md
    • Renamed from workflow/README.md to infra/workflow/README.md.
  • infra/workflow/src/definition.rs
    • Renamed from workflow/src/definition.rs to infra/workflow/src/definition.rs.
  • infra/workflow/src/engine.rs
    • Renamed from workflow/src/engine.rs to infra/workflow/src/engine.rs.
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
  • The pull request author provided a detailed summary of the changes, including directory moves, path updates, and unchanged components.
  • A comprehensive test plan was outlined and executed, confirming that cargo check --workspace and cargo test --workspace --lib passed, no stale path references remained, and Git correctly tracked all renames.
  • A design document (docs/plans/2026-03-05-workspace-reorganization-design.md) and an implementation plan (docs/plans/2026-03-05-workspace-reorganization.md) were created and added to the repository.
  • An automated summary by CodeRabbit highlighted the chore-related aspects of the reorganization, including workspace structure, build configurations, CI/CD workflows, and release pipeline updates.
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. ↩

@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 is a large but well-executed refactoring that significantly improves the workspace organization by grouping crates into core/ and infra/ directories. The changes are consistent, and all path updates in configuration files and scripts appear correct. I have one suggestion regarding a newly added documentation file.

Comment thread docs/plans/2026-03-05-workspace-reorganization.md
@slin1237 slin1237 closed this Mar 5, 2026
@slin1237
slin1237 deleted the slin/crate-extraction branch March 5, 2026 15:12
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