Implemented a four-file surgical fix in the isolated /tmp/mono-vxdata-event-loop worktree without committing or pushing application code.
Converted four storage handlers with synchronous MinIO or Polars work to plain FastAPI def routes so Starlette runs them in its worker pool.
Converted the /query/parquet route and its two thin CRUD helpers to synchronous functions. Removed the unused AsyncSession dependency and parameter from that chain.
Validated the changed files with direct Ruff format and lint checks, the full app typecheck, 15 storage service tests, and the scoped-access test that exercises /query/parquet.
Lessons Learned: Pitfalls
The configured vxData API Ruff tasks reported No Python files found because [tool.ruff] include = ["src"] did not match source files with the installed Ruff version. Explicit changed-file checks with --isolated were needed for meaningful validation.
Pixi refreshed unrelated local path-package metadata in pixi.lock even during frozen validation. The unrelated lockfile change had to be detected and reverted.
Lessons Learned: Improvements
Document a reliable changed-file Ruff command for the vxData API until its include pattern is corrected.
Note that Pixi validation can touch local dependency metadata and always check the final working-tree diff after running it.