Skip to content

Commit 60a4779

Browse files
committed
Merge branch 'codex/remove-obs-go-live-streaming-modules'
2 parents 13abb4d + d8a2ce9 commit 60a4779

File tree

3 files changed

+27
-6
lines changed

3 files changed

+27
-6
lines changed

AGENTS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -427,6 +427,7 @@ Ask first:
427427
- progress updates that talk about internal skill routing instead of the concrete repo change
428428
- long exploratory work before producing the concrete vendored files the user explicitly asked for
429429
- unexpected browser debugger pause hooks in the default dev launch profile; browser debugging must stay explicit opt-in
430+
- temporary worktrees or throwaway repo copies for normal repo tasks when the current workspace branch is available; work in the active workspace unless the user explicitly asks for isolation
430431

431432
## Preferred Skills
432433

tests/PrompterOne.App.UITests/Learn/LearnStartupAlignmentTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,13 +101,13 @@ private static string BuildStartupTraceScript()
101101
102102
let animationFramePasses = 0;
103103
const captureOnAnimationFrame = () => {
104+
animationFramePasses += 1;
104105
capture();
105106
106107
if (window.__learnStartupTrace.length >= maxSamples || animationFramePasses >= maxAnimationFramePasses) {
107108
return;
108109
}
109110
110-
animationFramePasses += 1;
111111
window.requestAnimationFrame(captureOnAnimationFrame);
112112
};
113113

tests/PrompterOne.App.UITests/Media/recording-file-harness.js

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -118,12 +118,32 @@
118118
}
119119

120120
async function waitForNextVideoFrame(videoElement) {
121-
if (typeof videoElement.requestVideoFrameCallback === "function") {
122-
await new Promise(resolve => videoElement.requestVideoFrameCallback(() => resolve()));
123-
return;
124-
}
121+
await new Promise(resolve => {
122+
let completed = false;
123+
124+
const finish = () => {
125+
if (completed) {
126+
return;
127+
}
128+
129+
completed = true;
130+
resolve();
131+
};
125132

126-
await new Promise(resolve => window.setTimeout(resolve, visibleVideoPollDelayMs));
133+
const timeoutId = window.setTimeout(finish, visibleVideoPollDelayMs);
134+
const canAwaitVideoFrame = typeof videoElement.requestVideoFrameCallback === "function"
135+
&& !videoElement.paused
136+
&& !videoElement.ended;
137+
138+
if (!canAwaitVideoFrame) {
139+
return;
140+
}
141+
142+
videoElement.requestVideoFrameCallback(() => {
143+
window.clearTimeout(timeoutId);
144+
finish();
145+
});
146+
});
127147
}
128148

129149
async function detectVisibleVideoAcrossFrames(videoElement) {

0 commit comments

Comments
 (0)