Open
Labels
area:ciContinuous integration and checksContinuous integration and checkspriority:p0Blocks the agreed release scopeBlocks the agreed release scopetype:ciBuild, test and release automationBuild, test and release automation
Description
Goal
Daily small releases (v0.1.x) need a nightly test plan beyond PR/main Release checks. Today only .github/workflows/ci.yml runs on pull_request / push to main / workflow_dispatch — no schedule nightly.
Room context (2026-11-07 Asia/Shanghai): Hongsheng wants daily patch releases; Coordinator cuts v0.1.x when main advanced that day and Release checks are green.
Proposed nightly scope (v1)
Schedule: 0 18 * * * UTC ≈ 02:00 Asia/Shanghai next day (adjust if preferred).
On main HEAD:
- Re-run the full Release checks job (same as PR gate).
- Publish a short summary to the OpenDirector room / Actions summary (pass/fail + SHA).
- On failure: do not auto-tag; page Coordinator + Dev with failing job URL.
- On success and if that calendar day (Asia/Shanghai) already has unreleased merges since last tag: Coordinator may cut the daily
v0.1.x(or cut earlier after last merge — same bar).
Out of scope for v1 nightly (track separately):
- Paid / real-provider generation ([release] Validate real-model video creation and MP4 export #19 / [roadmap] Q4 2026: Next-generation video creation workflow #107)
- Multi-OS matrix installers
- Full #7 G0–G7 gate
Deliverables
- Document the nightly matrix and pass/fail policy in-repo (short
docs/or workflow comment) - Add
schedule(+ keepworkflow_dispatch) workflow or extendci.yml - Failure notification path agreed with OpenDirector monitor
- Link related: #17, #135, #7
Owner
Implementation: OpenDirector Dev after #175 tip lands (or parallel if capacity). Policy/tag: OpenDirector Coordinator.
Metadata
Metadata
Assignees
Labels
area:ciContinuous integration and checksContinuous integration and checkspriority:p0Blocks the agreed release scopeBlocks the agreed release scopetype:ciBuild, test and release automationBuild, test and release automation
Activity
hsliuustc0106 commentedon Nov 7, 2026
Nightly plan, updated per discussion — e2e scenarios and perf/output verification are part of the nightly, and implemented in #203.
The design principle: the nightly catches what the PR gate structurally cannot — a possibly-red
main, a changed environment, and what a 30-minute PR budget must skip. Five lanes onmainHEAD, cron0 18 * * *UTC (02:00 Asia/Shanghai):main— the timing-sensitive pytest batch already failed onmainitself (run 42212456290, 2026-11-06) with no code cause — plus environment driftpass/flaky/fail; 3× probe of a watchlist file for the 9 known timing-sensitive testsflaky), never silent (#17); the watchlist (scripts/nightly/flaky-watchlist.txt) measures flake rate so the tests get fixedtests/browser/*.mjsthat the PR gate does not run, per-script results, one failure doesn't stop the restnode_versions,multi_selection_references,paste_undo,subject_library,reference_parity,first_last_frame_connections, …vite previewofdist): locale switch (zh↔en), full timeline creation, assistant sessions/navigation, paste/undo, provider settings, cross-canvas paste/src/*.tsin-page stay dev-only by designmp4_render_probe.mjsrenders through the app's own WebCodecs pipeline, writes the MP4 to disk, ffprobe-verifies duration (~2 s), h264/aac streams, 640×360, ~48 frames. Perf (diagnostic):reference_drag_performance.mjssamples frame p95 / long tasks + CPU profilesnightly-perf.json— no invented thresholds, regressions become visible over timePolicy:
v0.1.xonly when gate parity is green on the candidate SHA. Lanes 2–5 are advisory in v1 — failures are reported and tracked, they don't auto-block.Release checksmoves to one reusable workflow (release-checks.yml) shared byci.ymland the nightly — a single implementation, no drifting copy. Side benefit: its check steps now run independently, so a Python-test failure no longer short-circuits contracts/build/browser results.nightly-summary.json(lane results + SHA) andnightly-perf.json; the failure-notification path to the OpenDirector room hooks onto those and stays with the Coordinator as in the deliverables.docs/development/validation.md.Follow-ups after this lands: stabilize or explicitly quarantine the 9 watchlist tests before the first scheduled run so nightly doesn't open red; grow the production lane as more scripts are made preview-safe; lane regression thresholds for perf once we have a baseline series.
Implementation: #203 (includes workflow, probe script, watchlist, docs). Out of scope unchanged: paid/real-provider generation, multi-OS installers, full #7 G0–G7.
[ci] Add nightly test plan and reusable release checks
[ci] Adopt five-level test taxonomy with manifest-driven lanes
hsliuustc0106 commentedon Nov 7, 2026
Follow-up on the plan above: the nightly is now framed as a five-level test system (adopting the L1–L5 pattern from the vLLM-Omni testing docs — scope/cadence/budget per level), in the same PR:
Key mechanics borrowed and adapted:
workflow_dispatchdoes the same).tests/browser/manifest.jsonnow declares every browser script's lane (gate/extended/extendedFixture/production/perf) and requirements (fixture,previewSafe, args); the nightly derives its lists from it, and a new Release checks step (npm run check:browser-manifest) enforces disk↔manifest↔workflow consistency. New scripts register in one place.docs/development/ci-failures.mddocuments the 9 known timing-sensitive tests with triage steps, replacing tribal knowledge.One correctness finding while building the manifest: main's recent
timeline_workflow.mjsupdate added an in-page/srcimport, so it no longer runs undervite preview— the production lane dropped it automatically via the manifest check rather than failing at runtime.Commit 2 of PR #203; Release checks re-running on it now.
[ci] Add nightly test plan and reusable release checks
[ci] Adopt five-level test taxonomy with manifest-driven lanes
[ci] Add nightly test plan and reusable release checks
[ci] Adopt five-level test taxonomy with manifest-driven lanes
[ci] Nightly test plan and scheduled workflow (#203)
[ci] browser: harden nightly advisory lanes
[ci] browser: harden nightly advisory lanes
Harden nightly advisory browser and perf lanes (#249)