From d6b4dccffe086092c6ab9847cfc9990c1237b429 Mon Sep 17 00:00:00 2001 From: "staging-devin-ai-integration[bot]" <166158716+staging-devin-ai-integration[bot]@users.noreply.github.com> Date: Sun, 26 Jul 2026 16:19:27 +0000 Subject: [PATCH 1/3] Update testing-web-capture skill: live-cast URL tuning and WebM frame extraction Co-authored-by: Claudio Costa --- .agents/skills/testing-web-capture/SKILL.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.agents/skills/testing-web-capture/SKILL.md b/.agents/skills/testing-web-capture/SKILL.md index 62e521d8..87f14f1a 100644 --- a/.agents/skills/testing-web-capture/SKILL.md +++ b/.agents/skills/testing-web-capture/SKILL.md @@ -28,6 +28,8 @@ license: MPL-2.0 ## Verifying frames (don't trust playback alone) - Extract frames: `ffmpeg -i clip.mp4 -vf "select='eq(n,30)+eq(n,300)'" -vsync 0 f_%d.png` +- Live cast WebM files have no cues — `ffmpeg -ss`/`-sseof` seeking silently returns the first frame. Extract frames + with `select='eq(n,N)'` full decodes instead, and beware lexicographic sorting of `%d`-numbered frame files. - Pixel stats with PIL: min/max grey and dark-pixel fraction distinguish blank white (min≈255), blank black/pre-paint (max≈0), and real content. - Since the first-load gate (plugin >= 0.2.2), clips/casts should show page content from frame 0 (the node holds emission until the page is ready, capped by `load_timeout_secs`, default 30s). Pre-0.2.2 builds may show all-black cold-start clips or blank lead-ins. - Since plugin >= 0.2.3, "ready" is load-complete OR ~2s after first paint — ad-heavy pages that never fire their load event no longer stall the full timeout. The gateway also caps `load_timeout_secs` at 5s (GATEWAY_LOAD_TIMEOUT_SECS), so worst-case time-to-first-byte through the gateway is ~5s plus one GOP (~1s). @@ -55,6 +57,11 @@ license: MPL-2.0 - Autoplay may land paused in this environment: click the play control, then compare `currentTime` across two views. - A cast joined mid-session starts at a non-zero `currentTime` (live stream) — not a defect. +## Tuning a live cast's URL +- Build the CLI with `cargo build --release -p streamkit-client` (the package is `streamkit-client`, not `skit-cli`), then + `target/release/skit-cli tune web url `. The embedded MCP endpoint is disabled by default, so + REST/MCP tuning is not available out of the box. + ## Cross-session leak checks - Sequential: capture page A then page B; sampled B frames must contain no A pixels (use dark/light pages so pixel stats catch leaks). - Concurrent: run a cast of A and a clip of B simultaneously (two curls with `&`); sample start/middle/end frames of both. From b7c24c21899c3e0abf9677a1d7986d9e367cf7b4 Mon Sep 17 00:00:00 2001 From: streamkit-devin Date: Sun, 26 Jul 2026 16:21:35 +0000 Subject: [PATCH 2/3] docs(skills): clarify that skit-cli tuning uses the REST/WS control plane Signed-off-by: streamkit-devin --- .agents/skills/testing-web-capture/SKILL.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.agents/skills/testing-web-capture/SKILL.md b/.agents/skills/testing-web-capture/SKILL.md index 87f14f1a..55b49bf3 100644 --- a/.agents/skills/testing-web-capture/SKILL.md +++ b/.agents/skills/testing-web-capture/SKILL.md @@ -59,8 +59,8 @@ license: MPL-2.0 ## Tuning a live cast's URL - Build the CLI with `cargo build --release -p streamkit-client` (the package is `streamkit-client`, not `skit-cli`), then - `target/release/skit-cli tune web url `. The embedded MCP endpoint is disabled by default, so - REST/MCP tuning is not available out of the box. + `target/release/skit-cli tune web url ` (uses the REST/WS control plane under the hood). + The embedded MCP endpoint is disabled by default (`[mcp]` in `skit.toml`), so MCP tuning is not available out of the box. ## Cross-session leak checks - Sequential: capture page A then page B; sampled B frames must contain no A pixels (use dark/light pages so pixel stats catch leaks). From 67e18f8b9a6155ba4e38bbc67dc2109a16df3385 Mon Sep 17 00:00:00 2001 From: streamkit-devin Date: Sun, 26 Jul 2026 16:23:20 +0000 Subject: [PATCH 3/3] docs(skills): tune goes over WebSocket only; note YAML parsing of tune values Signed-off-by: streamkit-devin --- .agents/skills/testing-web-capture/SKILL.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.agents/skills/testing-web-capture/SKILL.md b/.agents/skills/testing-web-capture/SKILL.md index 55b49bf3..1bef9044 100644 --- a/.agents/skills/testing-web-capture/SKILL.md +++ b/.agents/skills/testing-web-capture/SKILL.md @@ -59,8 +59,9 @@ license: MPL-2.0 ## Tuning a live cast's URL - Build the CLI with `cargo build --release -p streamkit-client` (the package is `streamkit-client`, not `skit-cli`), then - `target/release/skit-cli tune web url ` (uses the REST/WS control plane under the hood). - The embedded MCP endpoint is disabled by default (`[mcp]` in `skit.toml`), so MCP tuning is not available out of the box. + `target/release/skit-cli tune web url ` (sends a `TuneNode` request over the WebSocket + control plane; the value is parsed as YAML, so quote URLs with YAML-special characters). The embedded MCP endpoint is + disabled by default (`[mcp]` in `skit.toml`), so MCP tuning is not available out of the box. ## Cross-session leak checks - Sequential: capture page A then page B; sampled B frames must contain no A pixels (use dark/light pages so pixel stats catch leaks).