diff --git a/rust/volume_server/DEV_PLAN.md b/rust/volume_server/DEV_PLAN.md index ad72f98ed..d895e6e34 100644 --- a/rust/volume_server/DEV_PLAN.md +++ b/rust/volume_server/DEV_PLAN.md @@ -22,6 +22,9 @@ Implement a native Rust volume server that replicates Go volume-server behavior - `/favicon.ico` and `/seaweedfsstatic/*` - public non-read methods (`POST`/`PUT`/`DELETE`/unsupported verbs) as `200` no-op passthrough parity - admin unsupported verbs as `400` parity +- Native Rust control-surface parity now also includes: + - `/healthz` status mirroring from backend state transitions (e.g. leave/stopping => `503`) + - absolute-form HTTP request-target normalization before native route matching - Native Rust API/storage handlers are not implemented yet. ## Parity Exit Criteria @@ -192,3 +195,13 @@ Implement a native Rust volume server that replicates Go volume-server behavior - `env VOLUME_SERVER_IMPL=rust VOLUME_SERVER_RUST_MODE=native go test -count=1 ./test/volume_server/http` - `env VOLUME_SERVER_IMPL=rust VOLUME_SERVER_RUST_MODE=native go test -count=1 ./test/volume_server/grpc` - Commits: `23e4497b2` + +- Date: 2026-02-16 +- Change: Hardened native Rust HTTP control-path parity: + - `/healthz` now mirrors backend health status (`200`/`503`) in native mode + - absolute-form request-target parsing (e.g. `GET http://host/path HTTP/1.1`) now normalizes to route path parity +- Validation: + - `env VOLUME_SERVER_IMPL=rust VOLUME_SERVER_RUST_MODE=native go test -count=1 ./test/volume_server/http -run '^TestAdminStatusAndHealthz$'` + - `env VOLUME_SERVER_IMPL=rust VOLUME_SERVER_RUST_MODE=native go test -count=1 ./test/volume_server/http/...` + - `env VOLUME_SERVER_IMPL=rust VOLUME_SERVER_RUST_MODE=native go test -count=1 ./test/volume_server/grpc/...` +- Commits: `d6ff6ed6d` diff --git a/test/volume_server/DEV_PLAN.md b/test/volume_server/DEV_PLAN.md index e4a2a7ded..f06a1205f 100644 --- a/test/volume_server/DEV_PLAN.md +++ b/test/volume_server/DEV_PLAN.md @@ -1304,3 +1304,10 @@ Update this section during implementation: - Profiles covered: P1/P2/P3 variants touched by UI/static/CORS/method behavior, plus full matrix in native mode. - Gaps introduced/remaining: HTTP data-path handlers and all gRPC handlers remain delegated and still require native replacement. - Commit: `23e4497b2` + +- Date: 2026-02-16 +- Change: Improved native Rust control-path parity for health/status and request-target parsing. +- APIs covered: native `/healthz` now mirrors backend service health transitions (`200`/`503`) and native route matching now handles absolute-form HTTP request targets before path dispatch. +- Profiles covered: full existing HTTP/gRPC integration matrix in native mode (`VOLUME_SERVER_IMPL=rust`, `VOLUME_SERVER_RUST_MODE=native`). +- Gaps introduced/remaining: core HTTP data handlers and all gRPC RPC handlers are still delegated and remain the primary native implementation gap. +- Commit: `d6ff6ed6d`