From b0447d2479e56e310c7728e5ad6e31c78e077d0a Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Mon, 16 Feb 2026 01:52:46 -0800 Subject: [PATCH] docs(volume-server): track native rust options parity milestone --- rust/volume_server/DEV_PLAN.md | 10 ++++++++++ test/volume_server/DEV_PLAN.md | 7 +++++++ 2 files changed, 17 insertions(+) diff --git a/rust/volume_server/DEV_PLAN.md b/rust/volume_server/DEV_PLAN.md index 116d18106..2d29d0a7c 100644 --- a/rust/volume_server/DEV_PLAN.md +++ b/rust/volume_server/DEV_PLAN.md @@ -16,6 +16,7 @@ Implement a native Rust volume server that replicates Go volume-server behavior - Rust launcher `proxy` mode has full-suite integration pass while delegating backend handlers to Go. - Rust launcher `native` mode is wired as the default Rust entrypoint and currently bootstraps via supervised Go backend delegation. - Native Rust HTTP control handlers now serve `/status` and `/healthz` directly in `native` mode. +- Native Rust HTTP control handlers now serve `/status`, `/healthz`, and `OPTIONS` (admin/public method+CORS behavior) in `native` mode. - Native Rust API/storage handlers are not implemented yet. ## Parity Exit Criteria @@ -40,6 +41,7 @@ Implement a native Rust volume server that replicates Go volume-server behavior - [ ] Admin/control endpoints: - [x] `GET /status` (native Rust in `native` mode) - [x] `GET /healthz` (native Rust in `native` mode) + - [x] `OPTIONS` admin/public method+CORS control behavior (native Rust in `native` mode) - [ ] static/UI endpoints currently exercised - [ ] Data read path parity: - [ ] fid parsing/path variants @@ -164,3 +166,11 @@ 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: `7e6e0261a` + +- Date: 2026-02-16 +- Change: Implemented native Rust `OPTIONS` handling for admin and public listeners in `native` mode, including method allow-list and origin-driven CORS response parity used by integration tests. +- Validation: + - `env VOLUME_SERVER_IMPL=rust VOLUME_SERVER_RUST_MODE=native go test -count=1 ./test/volume_server/http -run '^TestOptionsMethodsByPort$|^TestOptionsWithOriginIncludesCorsHeaders$'` + - `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: `fbff2cb39` diff --git a/test/volume_server/DEV_PLAN.md b/test/volume_server/DEV_PLAN.md index 494ee3f0f..5c05d15f7 100644 --- a/test/volume_server/DEV_PLAN.md +++ b/test/volume_server/DEV_PLAN.md @@ -1287,3 +1287,10 @@ Update this section during implementation: - Profiles covered: full existing HTTP/gRPC matrix under native mode. - Gaps introduced/remaining: gRPC control/data APIs and most HTTP data/static/auth paths remain delegated and require incremental native replacement. - Commit: `7e6e0261a` + +- Date: 2026-02-16 +- Change: Implemented native Rust HTTP `OPTIONS` handling for admin/public listeners in `VOLUME_SERVER_RUST_MODE=native`. +- APIs covered: admin/public `OPTIONS` method allow-list and CORS origin handling now served from Rust-native path; full HTTP and gRPC packages re-validated. +- Profiles covered: P2 split-port CORS/OPTIONS profiles plus full existing matrix in native mode. +- Gaps introduced/remaining: static/UI/auth and data-path HTTP handlers, plus gRPC control/data/stream handlers, remain delegated and pending native replacement. +- Commit: `fbff2cb39`