diff --git a/docs/report/2026-10-09-parallel-workdir-read-busy.md b/docs/report/2026-10-09-parallel-workdir-read-busy.md new file mode 100644 index 000000000..25c116f73 --- /dev/null +++ b/docs/report/2026-10-09-parallel-workdir-read-busy.md @@ -0,0 +1,7 @@ +# Parallel Workdir reads return transient provider-busy errors + +During the Workdir cleanup fix, batches of independent `Read` calls against this checkout repeatedly returned `Workdir session is unavailable: filesystem provider busy` for several calls, while one read in the same batch succeeded. Serial retries against the same paths succeeded. No live Runtime or storage repair was attempted. + +This obstructed source inspection and made parallel tool batches less useful. The observations do not establish whether contention is in the filesystem provider, tool broker, or session admission layer. + +Suggested investigation: reproduce two concurrent read-only tool calls on one attachment, inspect the admission/lease boundary, and distinguish ordinary read concurrency from destructive-operation exclusion. If temporary rejection is intentional, document which tool combinations may overlap and give a bounded retryable diagnostic. Do not relax cleanup or scope safety to accommodate parallel reads. diff --git a/docs/report/2026-10-09-runtime-http-only-feature-dependencies.md b/docs/report/2026-10-09-runtime-http-only-feature-dependencies.md new file mode 100644 index 000000000..ea7378d71 --- /dev/null +++ b/docs/report/2026-10-09-runtime-http-only-feature-dependencies.md @@ -0,0 +1,10 @@ +# Runtime HTTP-only production feature dependencies + +While validating the Workdir cleanup fix, `cargo check -p worker-runtime --no-default-features --features http-server` failed on dependencies outside the cleanup diff: + +- `http_server.rs` and `http_server/runtime_management_api.rs` use retention APIs gated by `fs-store`. +- `workspace_request.rs` imports `futures::StreamExt`, and an HTTP-enabled path in `worker_backend.rs` uses `futures::executor::block_on`, but `dep:futures` is activated by `ws-server`, not `http-server`. + +The HTTP-only **test** build with `fs-store,http-server` succeeds because `futures` is also a dev-dependency; it does not prove that configuration's production compile closure. Root `cargo check` and the default Runtime build cover the normal `ws-server,fs-store` configuration. + +This dependency mismatch was not repaired as part of the cleanup concurrency fix. Decide the supported feature surface explicitly, then align dependency ownership and retention route gating with it. Keep a production `cargo check` for each supported non-default configuration so dev-dependencies cannot mask this boundary.