diff --git a/clients/rust/RustClientDesign.md b/clients/rust/RustClientDesign.md index 7b54523..332431a 100644 --- a/clients/rust/RustClientDesign.md +++ b/clients/rust/RustClientDesign.md @@ -11,25 +11,38 @@ generated contract inputs. ## Crate Layout -Recommended layout: +The workspace is rooted at `clients/rust/`. The top-level crate +`zb-mom-ww-mxgateway-client` is declared by `clients/rust/Cargo.toml` itself +(flat layout — its `src/` sits directly under the workspace root, not nested +inside `crates/`). The only `[workspace.members]` entry is the `mxgw-cli` +binary subcrate under `crates/mxgw-cli/`. ```text clients/rust/ - Cargo.toml - build.rs - crates/ - zb-mom-ww-mxgateway-client/ - src/lib.rs - src/client.rs - src/session.rs - src/options.rs - src/auth.rs - src/value.rs - src/error.rs - src/generated/ - mxgw-cli/ - src/main.rs + Cargo.toml # workspace root + top-level crate `zb-mom-ww-mxgateway-client` + Cargo.lock + build.rs # tonic-build proto generation + README.md + RustClientDesign.md + src/ + lib.rs + client.rs + session.rs + galaxy.rs + options.rs + auth.rs + error.rs + value.rs + version.rs + generated.rs # `pub mod` wrappers around files under `src/generated/` + generated/ # tonic-build output (not hand-edited) tests/ + client_behavior.rs + proto_fixtures.rs + crates/ + mxgw-cli/ # sole workspace member — binary `mxgw` + Cargo.toml + src/main.rs ``` Expected dependencies: diff --git a/code-reviews/Client.Rust/findings.md b/code-reviews/Client.Rust/findings.md index e5d5bf3..b74cbec 100644 --- a/code-reviews/Client.Rust/findings.md +++ b/code-reviews/Client.Rust/findings.md @@ -7,7 +7,7 @@ | Review date | 2026-05-24 | | Commit reviewed | `d692232` | | Status | Reviewed | -| Open findings | 1 | +| Open findings | 0 | ## Checklist coverage @@ -420,10 +420,10 @@ The CLI integration in Client.Rust-014 works either way; this is solely about de | Severity | Low | | Category | Design-document adherence | | Location | `clients/rust/RustClientDesign.md:14-33` | -| Status | Open | +| Status | Resolved | **Description:** The crate-name change in commit `397d3c5` (top-level `mxgateway-client` → `zb-mom-ww-mxgateway-client`) is reflected in `Cargo.toml`, `Cargo.lock`, every `use zb_mom_ww_mxgateway_client::` import, and `build.rs`. The "Recommended layout" block in `RustClientDesign.md:21-33` shows a nested structure with a top-level `crates/zb-mom-ww-mxgateway-client/` subdirectory containing `src/lib.rs`, `src/client.rs`, etc. — but the actual layout on disk is flat: the top-level crate lives at `clients/rust/` directly (with `src/`, `Cargo.toml`, and `build.rs` at the workspace root) and `crates/mxgw-cli/` is the only nested member. A reader consulting the design to understand the layout will be misled into looking for `crates/zb-mom-ww-mxgateway-client/` that does not exist. `CLAUDE.md` requires design docs to track code changes. **Recommendation:** Update `RustClientDesign.md:14-33` to describe the actual flat layout: workspace root at `clients/rust/`, top-level crate `zb-mom-ww-mxgateway-client` (declared in `Cargo.toml`) with `src/lib.rs`, `src/client.rs`, etc. directly under it; `crates/mxgw-cli/` is the single member subcrate. Alternatively label the block as "Aspirational nested layout (not currently adopted)" and add a separate "Current layout" section. -**Resolution:** _(empty until closed)_ +**Resolution:** 2026-05-24 — Rewrote the "Crate Layout" section of `clients/rust/RustClientDesign.md` to describe the actual flat layout on disk instead of the aspirational nested form. The section now opens with a short paragraph stating that the workspace is rooted at `clients/rust/`, that `clients/rust/Cargo.toml` declares the top-level crate `zb-mom-ww-mxgateway-client` itself (flat layout — `src/` sits directly under the workspace root, not under `crates/`), and that the only `[workspace.members]` entry is the `mxgw-cli` binary subcrate under `crates/mxgw-cli/`. The accompanying tree replaces the fictitious `crates/zb-mom-ww-mxgateway-client/` subdirectory with the real files: `Cargo.toml`, `Cargo.lock`, `build.rs`, `README.md`, `RustClientDesign.md`, `src/{lib,client,session,galaxy,options,auth,error,value,version,generated}.rs` plus `src/generated/` (tonic-build output), `tests/{client_behavior,proto_fixtures}.rs`, and `crates/mxgw-cli/` annotated as the sole workspace member producing the `mxgw` binary. `cargo build --workspace` and `cargo test --workspace` are clean at HEAD (29 tests pass across the library, integration, and proto-fixture targets). `cargo clippy --workspace --all-targets -- -D warnings` reports three pre-existing errors at HEAD on this dev box (`options.rs:98,143` missing docs, `galaxy.rs:282` `clone_on_copy`, `session.rs:522` `enum_variant_names`) that exist independently of this doc-only change — verified by running clippy with the design-doc edit stashed; tracking those is out of scope for Client.Rust-021.