Establish the apps/dreamverse/ subfolder + monorepo tooling per
.agents/memory/dreamverse-integration/integration-plan.md Phase 1.
No Dreamverse content moved yet — that's Phase 2/3.
* Add apps/dreamverse/{README.md, pyproject.toml, server/__init__.py,
server/tests/__init__.py}.
* Add docs/contributing/dreamverse-development.md with local dev commands.
* Root pyproject.toml: add [tool.uv.workspace] members = ["apps/dreamverse"];
add apps* to setuptools exclude; add gpu pytest marker.
* .pre-commit-config.yaml: exclude ^apps/dreamverse/web/.
* .gitignore: scope Node artifacts + unignore product assets.
* uv.lock: regenerated by `uv lock` to include the new workspace member.
Co-authored-by: Junda (David) Su <90978028+Davids048@users.noreply.github.com>
Co-authored-by: Matthew Noto <99706358+RandNMR73@users.noreply.github.com>
Co-authored-by: XOR-op <17672363+XOR-op@users.noreply.github.com>
Co-authored-by: Zhang Peiyuan <42993249+jzhang38@users.noreply.github.com>
1.8 KiB
Dreamverse Development
Dreamverse lives under apps/dreamverse/ as a product app inside the
FastVideo monorepo. Backend code uses the local FastVideo workspace package;
frontend tooling remains standalone under apps/dreamverse/web/.
Backend tests
Run CPU-safe backend tests from the FastVideo repository root:
uv run --locked --package dreamverse --extra test pytest apps/dreamverse/server/tests/ -m 'not gpu' -q
Frontend build and tests
Run frontend commands from the standalone web app:
cd apps/dreamverse/web
pnpm install --frozen-lockfile
pnpm run build
pnpm run test
Playwright is intentionally run against a live backend as part of the GPU4 manual verification flow, not in the Phase 3 migration gate.
Local GPU4 verification hook
Use physical GPU 4 for migration smoke tests. CUDA_VISIBLE_DEVICES=4 makes
that GPU appear as logical GPU 0 inside the process, preserving the previous
Dreamverse deployment behavior.
CUDA_VISIBLE_DEVICES=4 uv run --locked --package dreamverse \
fastvideo serve --config apps/dreamverse/serve_configs/streaming_demo.yaml \
--host 0.0.0.0 --port 8009
In another shell, verify the service:
curl -s http://localhost:8009/health
Phase 4 adds the public /healthz, /readyz, /status,
/prompt-system-config, and /curated-presets route coverage needed for the
full Playwright suite.
Phase 0 production-equivalent prerequisites
For the production-equivalent NVFP4 path, install these optional dependencies
in the FastVideo .venv before GPU4 smoke tests:
.venv/bin/pip install flashinfer-python flash-attn --no-build-isolation
flashinfer-python is required for NVFP4 quantization. flash-attn is
optional but recommended; without it, attention falls back to Torch SDPA.