[docs] dreamverse-integration: D-20 broken-pipe root cause + 4-commit fix

* Add D-20 entry to decisions-log.md documenting the segment-2
  BrokenPipe root cause: a TWO-direction silent drop of LTX-2 audio
  kwargs in public `VideoGenerator`. Inbound, `SamplingParam.update()`
  rejected `audio_num_frames` / `ltx2_audio_clean_latent` / etc. as
  unknown fields and `logger.error`'d-and-continued; outbound, the
  result dict didn't surface `ltx2_audio_latents` from
  `output_batch.extra`. The two directions hid each other — even
  after the inbound block was ported, segment 2 still broke until
  the outbound surface was added.

* Document the resolution: 4 commits on `will/dreamverse-monorepo`
  (`1b686f4e`..`5eaf0a13`) covering ffmpeg toolchain pin, public-API
  audio kwarg routing + strict `update()`, native-ffmpeg + compile-off
  deploy defaults, and `--warmup` / `--torch-compile` CLI flags. End-
  to-end verified on GPU4 with `Cached audio latents shape=(1, 8,
  126, 16) for segment 2` and `Segment 2: relayed av chunks=22,
  bytes=3.8MB`, no BrokenPipeError.

* Cross-reference D-11 (Apr 26 cosmetic note about ffmpeg broken
  pipe on intentional client disconnect) — different code path; both
  resolved.

* Update state.md: `will/dreamverse-monorepo` tip moves to `5eaf0a13`
  (11 commits ahead of `fbd823df`); refresh live-services PIDs to
  the post-D-20 deploy (BE 705513, FE 707746, both with native ffmpeg
  + `ENABLE_TORCH_COMPILE=0`); refresh test-status to include the
  new `test_extra_overrides_routing.py` (7/7 pass) and the live
  segment-1→2 audio continuation evidence.

* Add D-20-CP follow-up to open-threads.md: cherry-pick `265ce1a6`
  onto `will/ltx2_sr_port` so the public-API fix lands in PR #1288
  rather than waiting for `will/dreamverse-monorepo` to fold in.

* Bump README.md "Last reconciled" header to mention D-20.

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>
This commit is contained in:
SolitaryThinker
2026-05-07 13:37:26 -07:00
co-authored by Junda Su Matthew Noto XOR-op Zhang Peiyuan
parent f62c66916e
commit 6c62b1d0e5
4 changed files with 120 additions and 23 deletions
@@ -5,17 +5,31 @@ Tracks the public API refactor (PRs 0-17), the LTX-2 streaming server
upstream, the Dreamverse switch from `FastVideo-internal` to public
`FastVideo`, and the NVFP4 quantization landing.
**Last reconciled:** 2026-05-05 (**D-19** EXECUTED — Dreamverse migration
landed on `will/dreamverse-monorepo` @ `c1fe5d4c` (5 commits ahead of
`will/ltx2_sr_port` HEAD `fbd823df`). 164 files, 53,294 LOC, 31,725 files
under `apps/dreamverse/`. e2e PASSES against migrated code (8/8 Playwright
in 5.1s, `/proc/$PID/cwd` verified). Significant deviation from
[integration-plan.md](integration-plan.md): the plan's "DELETE
**Last reconciled:** 2026-05-05 (**D-20** EXECUTED — segment-2 BrokenPipe
root cause was a TWO-direction silent drop of LTX-2 audio kwargs in
public `VideoGenerator` (inbound `SamplingParam.update()` rejected
`audio_num_frames`/`ltx2_audio_clean_latent`/etc. as unknown fields and
`logger.error`'d, outbound result dict didn't surface
`ltx2_audio_latents` from `output_batch.extra`). Ported the
FastVideo-internal extra-overrides routing block + made `update()`
strict + added regression test (7 tests, all pass) + landed 4 commits
on `will/dreamverse-monorepo` @ `5eaf0a13` (11 commits ahead of
`fbd823df`). End-to-end verified on GPU4: `Cached audio latents shape
=(1, 8, 126, 16) for segment 2`, `Segment 2: relayed av chunks=22,
bytes=3.8MB`, no BrokenPipeError. Public-API fix needs cherry-pick to
`will/ltx2_sr_port` for PR #1288 — see open-threads.md item D-20-CP.
**D-19** EXECUTED previously: Dreamverse migration landed on
`will/dreamverse-monorepo` @ `c1fe5d4c` (5 commits ahead of
`will/ltx2_sr_port` HEAD `fbd823df`). 164 files, 53,294 LOC, 31,725
files under `apps/dreamverse/`. e2e PASSES against migrated code (8/8
Playwright in 5.1s, `/proc/$PID/cwd` verified). Significant deviation
from [integration-plan.md](integration-plan.md): the plan's "DELETE
generic-merged from Dreamverse, import public substitutes" assumption
was invalid (public APIs aren't drop-ins) — generic-merged files now
carried PRODUCT-LOCAL inside `apps/dreamverse/server/`. Public
`fastvideo.entrypoints.streaming.*` reverts to `fbd823df` state. See
[decisions-log.md D-19](decisions-log.md#d-19) for full context.).
[decisions-log.md D-19](decisions-log.md#d-19) +
[D-20](decisions-log.md#d-20) for full context.).
FastVideo `will/ltx2_sr_port` @ HEAD (post-D-17 STACK.md removal +
integration-review.md addition + integration-plan.md addition + D-18
reconciliation). Dreamverse `will/integrate-public-fastvideo` @ `ec8ef92`.
@@ -6,7 +6,7 @@ question/decision, rationale, current status.
For implementation status see [pr-roadmap.md](pr-roadmap.md). For
follow-up actions see [open-threads.md](open-threads.md).
**Last updated:** 2026-05-05 (added D-12 — GpuPool layer separation, Oracle review post-#1257-merge; added D-13 — prompt enhancer / LLMProvider abstraction shape, Oracle review pre-#1258-merge; added D-14 — streaming auxiliaries cohesion, Oracle review during #1284 review cycle; added D-15 — streaming router placement + sticky/active-active deferral, Oracle review during #1286 review cycle; added D-16 — streaming router polish round 2, second-pass review on top of D-15 covering bridge cancellation hygiene, registry state machine, httpx hard-fail, replica YAML parsing, and `websockets` dep; added D-17 — strategy reversal: abandon 6-PR split in favor of single mega-PR #1288 on `will/ltx2_sr_port`; added D-18 — Option B+ chosen: Dreamverse FE+product-server move into FastVideo as `apps/dreamverse/` subfolder while generic backend stays at `fastvideo.entrypoints.streaming.*`; integration-review.md deprecated, integration-plan.md is the executable migration plan; added D-19 — D-18 executed: 5 commits land on `will/dreamverse-monorepo`, fix-up commits corrected the integration-plan's invalid "delete generic-merged, import public substitutes" assumption — generic-merged files carried product-local instead, e2e passes against migrated code with /proc-verified evidence).
**Last updated:** 2026-05-05 (added D-12 — GpuPool layer separation, Oracle review post-#1257-merge; added D-13 — prompt enhancer / LLMProvider abstraction shape, Oracle review pre-#1258-merge; added D-14 — streaming auxiliaries cohesion, Oracle review during #1284 review cycle; added D-15 — streaming router placement + sticky/active-active deferral, Oracle review during #1286 review cycle; added D-16 — streaming router polish round 2, second-pass review on top of D-15 covering bridge cancellation hygiene, registry state machine, httpx hard-fail, replica YAML parsing, and `websockets` dep; added D-17 — strategy reversal: abandon 6-PR split in favor of single mega-PR #1288 on `will/ltx2_sr_port`; added D-18 — Option B+ chosen: Dreamverse FE+product-server move into FastVideo as `apps/dreamverse/` subfolder while generic backend stays at `fastvideo.entrypoints.streaming.*`; integration-review.md deprecated, integration-plan.md is the executable migration plan; added D-19 — D-18 executed: 5 commits land on `will/dreamverse-monorepo`, fix-up commits corrected the integration-plan's invalid "delete generic-merged, import public substitutes" assumption — generic-merged files carried product-local instead, e2e passes against migrated code with /proc-verified evidence; added D-20 — segment-2 BrokenPipe root cause was a TWO-direction silent drop of LTX-2 audio kwargs in public `VideoGenerator` (inbound: `SamplingParam.update()` rejected `audio_num_frames`/`ltx2_audio_clean_latent`/etc. as unknown fields and `logger.error`'d, outbound: result dict didn't surface `ltx2_audio_latents` from `output_batch.extra`); ported the FastVideo-internal extra-overrides routing block + made `update()` strict + added regression test + landed 4 commits on `will/dreamverse-monorepo`).
## Status legend
@@ -16,6 +16,60 @@ follow-up actions see [open-threads.md](open-threads.md).
## Post-merge architecture decisions
### D-20: Segment-2 BrokenPipe root cause — two-direction silent drop of LTX-2 audio kwargs in public `VideoGenerator`
**Status:** ✅ Resolved 2026-05-05. 4 commits on `will/dreamverse-monorepo` (`1b686f4e`..`5eaf0a13`); pushed to origin. End-to-end verified on GPU4 (`/proc/$BE_PID/environ` + `Cached audio latents shape=(1, 8, 126, 16) for segment 2` log line + `Segment 2: relayed av chunks=22, bytes=3.8MB`).
**Source:** Live debugging session triggered by recurring `RuntimeError: ffmpeg frame writer failed: [Errno 32] Broken pipe` on segment 2 in `/tmp/opencode/dreamverse-deploy/backend-gpu4.log`.
**Question:** Why does segment 2 of every Dreamverse session crash with a writer-side EPIPE, while segment 1 streams fine?
**Symptom chain decoded:**
1. ffmpeg writer thread in `apps/dreamverse/server/av_streaming.py:307-317` raises `BrokenPipeError` mid-frame.
2. ffmpeg's exit code is `0` — the `if rc != 0` branch of `stream_fmp4` never fires; only `if writer_error[0] is not None` does.
3. `rc=0 + BrokenPipeError` means ffmpeg exited cleanly *before* the writer finished pushing all frames → ffmpeg closed stdin early due to `-shortest` + audio shorter than video.
4. Manual repro confirmed: with audio 71240 samples (~2.97s) and video 112 frames (~4.67s), ffmpeg `-shortest` + 1MB pipe + 1920x1088x3 frames produces exactly this signature (`rc=0 out_bytes=751028 writer_error=BrokenPipeError(32)`).
5. The 1.7s audio undershoot is suspicious because Dreamverse's `apply_audio()` in `apps/dreamverse/server/video_generation.py:132-186` explicitly extends `audio_num_frames = NUM_FRAMES + audio_extra` (=`121 + 40 = 161`) for continuation segments. Audio should be 6.71s, not 5.01s. The kwarg was being silently dropped.
**Root cause (TWO directions):**
| Direction | Where | What was missing | What it broke |
|---|---|---|---|
| **Inbound** (kwargs → `batch.extra`) | `fastvideo/entrypoints/video_generator.py::_generate_video_impl` | The 5-key extraction block (`ltx2_audio_latents`, `ltx2_audio_clean_latent`, `ltx2_audio_denoise_mask`, `audio_num_frames`, `video_position_offset_sec`) that FastVideo-internal has at lines 168-183. Without it, `apply_audio`'s kwargs landed in `sampling_param.update(kwargs)` which `logger.error`'d "%s has no field %s" and dropped them. | `audio_num_frames` never reached `batch.extra` → `ltx2_denoising.py:325` fell back to `batch.num_frames=121` → audio generated for 5.01s instead of 6.71s. After `head_trim_audio_frames=49` removed the leading 2.04s, only 2.97s of audio remained for 4.67s of video. |
| **Outbound** (`batch.extra` → result dict) | `fastvideo/entrypoints/video_generator.py::_generate_single_video` | `"ltx2_audio_latents": output_batch.extra.get("ltx2_audio_latents")` in the result dict. Internal exposes it at line 556; public didn't expose it at all. | `Dreamverse._derive_next_audio_latents()` always saw `None` → `self.continuation.audio_latents` was never set → segment 2's `apply_audio` short-circuited (`if not (… and self.audio_latents is not None): return`) → no audio continuation, no `audio_num_frames` extension, no `ltx2_audio_clean_latent` carry-over. |
The two directions hid each other: even after the inbound block was ported, segment 2 still broke until the outbound surface was added. Both must be present for audio continuation to round-trip.
**Resolution — 4 commits on `will/dreamverse-monorepo`:**
| SHA | Subject |
|---|---|
| `1b686f4e` | `[fix] dreamverse: pin ffmpeg native build toolchain by uname -m` |
| `265ce1a6` | `[fix] api: route LTX-2 audio kwargs through batch.extra; strict update` |
| `dab9499c` | `[feat] dreamverse-deploy: native ffmpeg + compile-off defaults` |
| `5eaf0a13` | `[feat] dreamverse-deploy: --warmup / --torch-compile CLI flags` |
`265ce1a6` is the substantive public-API fix: ports `_BATCH_EXTRA_PASSTHROUGH_KEYS` extraction in `_generate_video_impl`, ports `_extra_overrides` consumption in `_generate_single_video` (writes into `batch.extra`), surfaces `ltx2_audio_latents` in the result dict, and converts `SamplingParam.update()` from `logger.error`-and-drop to `raise ValueError` on unknown keys so the next contributor who adds an unrecognized kwarg hits a loud failure pointing at `_BATCH_EXTRA_PASSTHROUGH_KEYS` instead of debugging a broken-pipe-shaped symptom hours later. Adds `fastvideo/tests/api/test_extra_overrides_routing.py` (7 tests pinning the contract).
**Why the strict-update is non-negotiable:** the `logger.error`-and-continue pattern is the exact mechanism that hid this bug for the entire Dreamverse-monorepo migration window. It silently traded loud-failure-now for silent-corruption-later. Strict raise + a clear "route via `_BATCH_EXTRA_PASSTHROUGH_KEYS`" hint converts the next regression of this shape from "broken pipe in production" to "ValueError at first call".
**Cross-references:**
- [D-11](decisions-log.md#d-11) (Apr 26) noted "ffmpeg fragment write Broken pipe" but framed it as cosmetic (client-disconnect race). Today's was a different code path: server-side EPIPE caused by a server-internal A/V duration mismatch. Both are now resolved; D-11's fix domain (swallow on intentional disconnect) remains unchanged but lower priority.
- The `[fix] api: route LTX-2 audio kwargs ...` commit (`265ce1a6`) is on `will/dreamverse-monorepo` only. Cherry-picking onto `will/ltx2_sr_port` so it lands as part of PR #1288's mega-PR is a deferred follow-up — see open-threads.md "Cherry-pick API audio routing fix to PR #1288".
**Side effects of the fix:**
- `[feat] dreamverse-deploy: native ffmpeg + compile-off defaults` (`dab9499c`) wires the native LTO+libx264+native-arch ffmpeg the team playbook mandates into every deploy via `FASTVIDEO_FFMPEG_BIN=$HOME/opt/ffmpeg-native/bin/ffmpeg` and disables `torch.compile` by default (`ENABLE_TORCH_COMPILE=0`) so segment-1 cold start drops from ~3-4min (max-autotune) to ~45s (pure inference) — required for any iterative debugging cycle to fit inside the 300s session timeout.
- `[fix] dreamverse: pin ffmpeg native build toolchain by uname -m` (`1b686f4e`) makes `apps/dreamverse/scripts/install_native_ffmpeg.sh` immune to conda envs that activate both `gcc_linux-64` and `gcc_linux-aarch64` (the aarch64 activation script sorts later and wins, so the inherited `CC=aarch64-conda-linux-gnu-cc` defeated the script's `: "${CC:=...}"` deferred default and tripped x264's compiler probe with "unknown value 'native' for '-march'").
- `[feat] dreamverse-deploy: --warmup / --torch-compile CLI flags` (`5eaf0a13`) adds `--warmup`/`--no-warmup` and `--torch-compile`/`--no-torch-compile` flags that override the env-var defaults and accept any position relative to the positional GPU/port args (verified across 13 parser permutations).
**Watch-outs for downstream contributors:**
- Adding a new pipeline-specific kwarg now requires either making it a `SamplingParam` field OR adding it to `_BATCH_EXTRA_PASSTHROUGH_KEYS` in `fastvideo/entrypoints/video_generator.py`. Strict `update()` will raise `ValueError` on unknown kwargs that aren't routed through one of those paths.
- The `[fix] api:` commit (`265ce1a6`) is BACKWARD-INCOMPATIBLE for any caller that was relying on `SamplingParam.update()` to silently swallow unknown keys. If pre-existing CI breaks elsewhere on this surface, the fix is to add the legitimate kwarg to `SamplingParam` or `_BATCH_EXTRA_PASSTHROUGH_KEYS` (not to revert the strict mode).
### D-19: D-18 executed — Dreamverse migration on `will/dreamverse-monorepo`, generic-merged files carried product-local
**Status:** ✅ Resolved 2026-05-05. 5 commits on top of `will/ltx2_sr_port` HEAD `fbd823df`. Branch pushed to origin at `c1fe5d4c`. e2e definitively passes.
@@ -6,9 +6,12 @@ recommended next action.
For why each item is open see [decisions-log.md](decisions-log.md). For
PR-level context see [pr-roadmap.md](pr-roadmap.md).
**Last updated:** 2026-05-05 (strategy reversal — PR #1287 CLOSED, replaced
by mega-PR #1288 on `will/ltx2_sr_port` @ `b36bdbc9` covering the full
6-layer stack at once. See [decisions-log.md D-17](decisions-log.md#d-17).
**Last updated:** 2026-05-05 (D-20 broken-pipe root cause + fix landed on
`will/dreamverse-monorepo` @ `5eaf0a13`; added new thread D-20-CP for
cherry-picking the public-API audio routing fix to `will/ltx2_sr_port`
so it lands in PR #1288. Earlier: strategy reversal — PR #1287 CLOSED,
replaced by mega-PR #1288 on `will/ltx2_sr_port` @ `b36bdbc9` covering
the full 6-layer stack at once. See [decisions-log.md D-17](decisions-log.md#d-17).
Item D resolution gate is now #1288 merge instead of #1287; same content,
different vehicle.).
@@ -16,6 +19,7 @@ different vehicle.).
| # | Pri | Item | Effort | Unblocks |
|---|---|---|---|---|
| **D-20-CP** | High | Cherry-pick `[fix] api: route LTX-2 audio kwargs through batch.extra; strict update` (`265ce1a6`) onto `will/ltx2_sr_port` so it lands in PR #1288 | 15 min | Surfaces the public-API audio-conditioning fix in the mega-PR rather than waiting for `will/dreamverse-monorepo` to fold in. Tests already pass (185/185 api). |
| **D-8** | High | Verify `ltx2_image_crf` post-`d80c2a8` | 10 min | Confirms typed stage-override path actually flows; closes a latent silent-drop bug |
| **1** | High | Migrate `/healthz`+`/readyz`+`/status` into FastVideo `build_app` | M-L | Closes BE_FLAVOR=fastvideo FE-compatibility; closes streaming-upstream contract debt |
| **2** | High | Fix pre-existing AbsMaxFP8 test failure | S | Self-contained quantization tech debt |
@@ -48,6 +52,31 @@ different vehicle.).
## High priority
### D-20-CP: Cherry-pick public-API audio routing fix to `will/ltx2_sr_port`
**Why:** Commit `265ce1a6` (`[fix] api: route LTX-2 audio kwargs through batch.extra; strict update`) lives only on `will/dreamverse-monorepo` today. It touches public FastVideo surface (`fastvideo/entrypoints/video_generator.py`, `fastvideo/api/sampling_param.py`, plus a new regression test). For PR #1288 to ship a coherent public API — including the strict `SamplingParam.update()` — this commit needs to also land on `will/ltx2_sr_port`.
**Action:**
1. `git checkout will/ltx2_sr_port`
2. `git cherry-pick 265ce1a6` (clean; only touches `fastvideo/` paths that exist on both branches)
3. `pre-commit run --files fastvideo/entrypoints/video_generator.py fastvideo/api/sampling_param.py fastvideo/tests/api/test_extra_overrides_routing.py`
4. `pytest fastvideo/tests/api/ -q` (expect 185 passed)
5. `git push origin will/ltx2_sr_port` (fast-forward, no force)
6. `git checkout will/dreamverse-monorepo` (return to default working branch per runbook)
**Outcome:** PR #1288 picks up the fix automatically (its head IS `will/ltx2_sr_port`). The cherry-pick lives on both branches as separate SHAs; they'll dedupe naturally on any future rebase.
**Effort:** 15 minutes (cherry-pick + lint + test + push).
**Dependencies:** None. Tests already pass; no rebase conflicts expected.
**Files touched (same on both branches):**
- `fastvideo/entrypoints/video_generator.py`
- `fastvideo/api/sampling_param.py`
- `fastvideo/tests/api/test_extra_overrides_routing.py` (new file)
### D-8: Verify `ltx2_image_crf` typed flow post-`d80c2a8`
**Why:** Apr 26 dreamverse_review documented this field getting silently
+12 -12
View File
@@ -1,4 +1,4 @@
# Current State — 2026-05-05 (strategy reversal — single mega-PR #1288)
# Current State — 2026-05-05 (D-20 broken-pipe fix landed)
Point-in-time snapshot of branches, commits, and live infrastructure.
Update whenever commits land or services restart.
@@ -12,7 +12,7 @@ roster of co-authors to credit on every commit see
| Repo | Branch | Tip | Distance |
|---|---|---|---|
| FastVideo | `will/ltx2_sr_port` (**PR #1288 head**) | `fbd823df` | merged-into-main pending; latest tip post-D-16 + integration-review + integration-plan + GPU4 smoke validation |
| FastVideo | **`will/dreamverse-monorepo`** (**MIGRATION** — forked from `will/ltx2_sr_port`) | `c1fe5d4c` | 5 commits ahead of `fbd823df`. Phases 1+2+3 + 2 fix-up commits. apps/dreamverse/ holds full migrated Dreamverse (server/, web/, prompts/, scripts/, serve_configs/, AGENTS.md, etc.). 8/8 Playwright e2e PASSED against migrated backend (verified via `/proc/$PID/cwd = apps/dreamverse/server`). See [decisions-log.md D-19](decisions-log.md#d-19). |
| FastVideo | **`will/dreamverse-monorepo`** (**MIGRATION** — forked from `will/ltx2_sr_port`) | `5eaf0a13` | 11 commits ahead of `fbd823df`. Phases 1+2+3 + 2 fix-up commits + 4 D-20 commits (broken-pipe root cause fix: ffmpeg toolchain pin, public-API audio kwarg routing, native-ffmpeg + compile-off deploy defaults, --warmup/--torch-compile CLI flags). apps/dreamverse/ holds full migrated Dreamverse (server/, web/, prompts/, scripts/, serve_configs/, AGENTS.md, etc.). End-to-end verified on GPU4 with audio continuation across segments 1→2 (`Cached audio latents shape=(1, 8, 126, 16) for segment 2`, `Segment 2: relayed av chunks=22, bytes=3.8MB`, no BrokenPipeError). See [decisions-log.md D-19](decisions-log.md#d-19) + [D-20](decisions-log.md#d-20). |
| FastVideo | `will/api_7.10` | `6ae7a99f` | **deprecated** — PR #1287 closed in favor of #1288. Branch can be deleted on origin and locally; kept for now as historical reference. |
| FastVideo | `will/api_8`, `will/ltx2_sr_runtime`, `will/ltx2_nvfp4`, `will/ltx2_post_fixes`, `will/agents_cleanup` | (various) | **deprecated** split bookmarks. Strategy reversed to single mega-PR (D-17). Safe to delete locally; not pushed to origin. |
| FastVideo | `will/ltx2_sr_port-pre-1286-rebase` | `1baa60bb` | **local-only safety backup** of pre-rebase chain (37 commits); keep until next slice merges |
@@ -129,8 +129,8 @@ worker-death detection.
| Port | Service | PID | Status |
|---|---|---|---|
| 8009 | `dreamverse-server` | 2453227 | `/readyz` returns 200, 1 warmed GPU worker, queue 0 |
| 5274 | `next-server` (dev) | 2399103 | 200, ~13.6 KB shell |
| 8009 | `dreamverse-server` | 705513 | `/readyz` returns 200, 1 GPU worker on GPU 4, NVFP4 (50.9 GiB), `ENABLE_TORCH_COMPILE=0`, `FASTVIDEO_FFMPEG_BIN=$HOME/opt/ffmpeg-native/bin/ffmpeg`, `FASTVIDEO_VIDEO_CODEC=libx264` (post-D-20 deploy at 2026-05-05 14:??) |
| 5274 | `next-server` (dev) | 707746 | 200 |
| 8000 | unknown FastAPI | — | **Not in handoff.** Probably stray `fastvideo serve`. Verify with `lsof -i :8000` before launching a new BE on the default port. |
## Stashes — DO NOT POP
@@ -140,17 +140,17 @@ worker-death detection.
| FastVideo | `stash@{0}: WIP on main: 71bfc13d HunyuanVideo plugin` | Pre-existing, unrelated to integration work |
| Dreamverse | `stash@{0}: wip: server modular refactor (split config/prompting/runtime/session)` | 3867-line orphan modular split, **not part of `will/integrate-public-fastvideo`**. Recover on a separate branch if needed. |
## Test status (from May 2 handoff, not re-verified post-Layer-3)
## Test status
| Suite | Status |
|---|---|
| FastVideo `fastvideo/tests/api/` + `contract/` + `nvfp4_*` + `ltx2_pipeline_smoke` | 222 passed, 1 skipped |
| Playwright e2e against live BE+FE | 8 passed (5 backend-health + 2 frontend-shell + 1 preset-prompt-generation) |
| `fastvideo serve --config streaming_demo.yaml` validation | parses cleanly; dotted overrides work |
| `bash -n` on launch-demo skill scripts | clean across all 4 |
The 3 post-handoff commits are small parity fixes; full re-verification is
recommended but not required to read this state.
| FastVideo `fastvideo/tests/api/` (post-D-20) | 185 passed (was 222 before some tests moved; new `test_extra_overrides_routing.py` adds 7) |
| FastVideo `contract/` + `nvfp4_*` + `ltx2_pipeline_smoke` (May 2 handoff) | 222 passed, 1 skipped |
| Playwright e2e against live BE+FE (D-19) | 8 passed (5 backend-health + 2 frontend-shell + 1 preset-prompt-generation) |
| Live segment-1→segment-2 audio continuation (D-20) | passes — `Cached audio latents shape=(1, 8, 126, 16) for segment 2` + `Segment 2: relayed av chunks=22, bytes=3.8MB`, no BrokenPipeError |
| `dreamverse-deploy.sh` flag parser standalone test (D-20) | 13/13 permutations pass + bad-flag rejection (defaults / single flags / both flags / `--no-*` overrides / env-only / flag-overrides-env / both-env+both-no-flags / flags interleaved with positional args) |
| `fastvideo serve --config streaming_demo.yaml` validation (May 2 handoff) | parses cleanly; dotted overrides work |
| `bash -n` on `apps/dreamverse/scripts/install_native_ffmpeg.sh` + `dreamverse-deploy.sh` (D-20) | clean |
## Pre-existing failures (NOT caused by this work)