mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-08 10:46:06 +00:00
fix(cli,producer): opt-in trial polarity + narrowed-fallback-flag docs (review)
Two non-blocking review notes from Rames, both addressed: 1. Trial polarity inverted to OPT-IN: disableDeParallelRouterTrial → enableDeParallelRouterTrial. renderLocal is exported, so any programmatic consumer (future studio-server path, test harness, distributed runner) previously inherited the trial and its process-wide env-var/module-latch state without knowing to disable it — and concurrent invocation races that state. Now only the CLI's own sequential call sites opt in (the single top-level render, and batch at concurrency 1); everyone else gets no trial by default. The doc comment names the sequential-invocation assumption explicitly. 2. deSelfVerifyFallback semantic narrowing documented at both declarations (RenderCaptureObservability + RenderPerfSummary.drawElement): since the pinned-fallback retry was widened, the flag means verify-triggered SPECIFICALLY — OOM/capture_error fallbacks report false with deFallbackReason carrying the reason. Dashboards keyed on de_self_verify_fallback=true as "any fallback fired" must migrate to de_fallback_reason IS NOT NULL (also called out in the PR body for the observability rebuild to pick up). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
6172d79dc2
commit
b02703b7c9
@@ -539,6 +539,9 @@ describe("renderLocal — DE parallel-router CLI trial", () => {
|
||||
browserGpuMode: "software" as const,
|
||||
hdrMode: "auto" as const,
|
||||
quiet: true,
|
||||
// The trial is OPT-IN (review): only the CLI's own sequential call sites
|
||||
// set this. These tests simulate those call sites.
|
||||
enableDeParallelRouterTrial: true,
|
||||
};
|
||||
|
||||
it("enables the trial (sets the env var) on a fresh install with telemetry on", async () => {
|
||||
@@ -749,21 +752,19 @@ describe("renderLocal — DE parallel-router CLI trial", () => {
|
||||
expect(process.env.HF_DE_PARALLEL_ROUTER).toBeUndefined();
|
||||
});
|
||||
|
||||
it("does not arm the trial when disableDeParallelRouterTrial is set (real batch concurrency, --batch-concurrency N>=2)", async () => {
|
||||
// Concurrent renderLocal calls share one process-wide env var and one
|
||||
// module-level flag — safe for sequential --batch rows (every other
|
||||
// test in this block), not for genuinely concurrent ones (review
|
||||
// finding). render.ts sets this option to true whenever batchConcurrency
|
||||
// > 1; verify that gate actually prevents arming.
|
||||
it("does not arm the trial for programmatic callers that never opted in (opt-in polarity — also covers --batch-concurrency N>=2, which leaves it unset)", async () => {
|
||||
// The trial's process-wide env var and module-level flags are only safe
|
||||
// under sequential invocation, so enableDeParallelRouterTrial is OPT-IN
|
||||
// (review): a programmatic renderLocal consumer that doesn't know about
|
||||
// the trial must get no trial. The CLI's concurrent-batch path relies on
|
||||
// the same default by leaving the option unset.
|
||||
configState.disk = {
|
||||
telemetryEnabled: true,
|
||||
deParallelRouterTrialFired: false,
|
||||
telemetryNoticeShown: true,
|
||||
};
|
||||
await renderLocal("/tmp/project", "/tmp/out.mp4", {
|
||||
...baseOptions,
|
||||
disableDeParallelRouterTrial: true,
|
||||
});
|
||||
const { enableDeParallelRouterTrial: _omitted, ...programmaticOptions } = baseOptions;
|
||||
await renderLocal("/tmp/project", "/tmp/out.mp4", programmaticOptions);
|
||||
expect(process.env.HF_DE_PARALLEL_ROUTER).toBeUndefined();
|
||||
expect(configState.writeConfigCalls).toHaveLength(0);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user