commit aded793b48103864385ee8c72a9ac12ac80dcafb
parent 18b08d1104fb9376c14b5743b3f0a853194be620
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date: Fri, 2 Oct 2026 01:30:49 -0400
editor: a held platform on a paused lane says the lane is paused (re-review R5)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Diffstat:
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/editor/app/operations/components/RunnerOperationView.tsx b/editor/app/operations/components/RunnerOperationView.tsx
@@ -19,6 +19,14 @@ import { SnoozeControl } from "./SnoozeControl";
import { type Channel, formatClock, formatCooldown, leafOrder } from "./dispatch";
import { clearPlatformHoldAction } from "../pacingActions";
+// The idle reasons that mean "paused or gated", not "waiting for work".
+const LANE_PAUSE_REASONS: ReadonlySet<string> = new Set([
+ "lane-held",
+ "downloads-paused",
+ "snoozed",
+ "disk-gate",
+]);
+
// ONE LANE'S RUNNER, IN FULL — any of the four.
//
// Lifted VERBATIM out of AutoQueueView's KindLane when the console became one
@@ -131,6 +139,7 @@ export function RunnerOperationView({
pace={status.pace ?? []}
subtitleDeferred={status.subtitleDeferred ?? []}
laneRunning={status.runner.running}
+ laneHeld={status.held || (status.runner.idleReason !== null && LANE_PAUSE_REASONS.has(status.runner.idleReason))}
onRefresh={onRefresh}
onCleared={setHoldNote}
now={now}
@@ -236,6 +245,7 @@ function CooldownStrip({
pace,
subtitleDeferred,
laneRunning,
+ laneHeld,
onRefresh,
onCleared,
now,
@@ -245,6 +255,9 @@ function CooldownStrip({
pace: PlatformPaceView[];
subtitleDeferred: SubtitleDeferralView[];
laneRunning: boolean;
+ // The lane is up but paused or gated (its own hold, the downloads pause,
+ // a snooze, the disk gate): it is not waiting for a video.
+ laneHeld: boolean;
onRefresh: () => Promise<void>;
onCleared: (message: string) => void;
now: number | null;
@@ -297,11 +310,16 @@ function CooldownStrip({
failures in a row)
{secs !== null &&
(overdue ? (
- laneRunning ? (
+ laneRunning && !laneHeld ? (
<>
, probe due — it waits for a pending video on this
platform; a clean manual Sync also lifts it
</>
+ ) : laneRunning ? (
+ <>
+ , probe overdue — the lane is paused; a clean
+ manual Sync also lifts it
+ </>
) : (
<>
, probe overdue — the lane is off; a clean manual