Files
José Almeida 4757fffdea docs: reframe feature guides and mark experimental surfaces (#1760)
* docs: reframe feature guides and mark experimental surfaces

* fix: tighten task demo framing

* fix: validate experimental page status

* docs: anchor experimental office status

* fix(ci): isolate Wrangler preview install

* docs: complete focused camera example

* fix(ci): use valid Wrangler package name
2026-07-17 16:45:10 +01:00

69 lines
4.4 KiB
Plaintext

# Kandev feature-guide media capture notes
Reviewed delivery generated from disposable captures and cursor-tracked again on 2026-07-17.
## Provenance and isolation
- Capture root: `$CAPTURE_ROOT` (disposable; absolute host path omitted).
- Source: current shared Kandev checkout, exercised through a worker-scoped E2E backend and real browser controls.
- Data: fresh temporary HOME, KANDEV_HOME_DIR, SQLite database, repository, worktree roots, browser profile, and non-production ports.
- Providers/agent: mock-only. No real provider call, production credential, shared user database, or existing task workspace.
- Encoding metadata: `metadata/capture.json`
- Source bundle: `source/capture.spec.ts`, `source/encode.mjs`, `source/product-loop-camera-compact.mjs`, `source/qa.mjs`, `source/smoke.spec.ts`
- Reframe source: full 3840x2400 masters, never the previously cropped delivery files.
- Reframe profile: Landing `scripts/product-loop-camera.mjs` docs profile, 1.50x maximum zoom, cosine easing, and frame-by-frame pointer containment. The two task clips use identical focused start/end crops to keep the feature legible while excluding the fixture-only Files toolbar and host path.
## Commands
- Capture/encoding source and per-clip camera values are retained in the disposable source and metadata bundle listed above.
- Camera validation: `createCameraTrack({ pointerTrack, pointerSafeMargin, ... })` checks every 25fps output frame and blocks a crop that loses the pointer.
- Long pointer journeys widen before travel and ease back into the destination instead of panning a tight crop after the pointer has left it.
- QA: `node "$CAPTURE_ROOT/source/qa.mjs" --visual-pass --teardown-confirmed`
- Probe template: `ffprobe -v error -show_streams -show_format -of json <file>`
- Cadence template: `ffprobe -v error -select_streams v:0 -show_entries frame=best_effort_timestamp_time,pkt_duration_time -of json <video>`
- Frame sampling: FFmpeg at opening, 10%, 25%, 50%, 75%, 90%, and ending timestamps; ImageMagick montage for contact sheets.
- Browser smoke: Chromium loaded each WebM, MP4, and WebP through a loopback HTTP server with byte-range support; both videos played and sought to 50%.
## Toolchain
- ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers
- ffprobe version 6.1.1-3ubuntu5 Copyright (c) 2007-2023 the FFmpeg developers
- Browser: 149.0.7827.55
## Delivery inventory
| Clip | Duration | WebM | MP4 | Poster |
| --- | ---: | ---: | ---: | ---: |
| task-create | 6.80s | 120.0 KiB | 225.4 KiB | 10.2 KiB |
| task-start-agent | 8.80s | 72.8 KiB | 136.6 KiB | 3.2 KiB |
| plan-review-implement | 8.64s | 233.1 KiB | 273.2 KiB | 12.6 KiB |
| parallel-named-sessions | 8.80s | 265.6 KiB | 281.8 KiB | 10.1 KiB |
| diff-line-feedback | 12.80s | 540.1 KiB | 840.0 KiB | 17.1 KiB |
| code-walkthrough | 8.80s | 478.1 KiB | 504.2 KiB | 19.5 KiB |
| profile-executor-selection | 8.80s | 216.7 KiB | 294.1 KiB | 7.7 KiB |
| scheduled-workflow-automation | 13.60s | 432.4 KiB | 438.7 KiB | 9.5 KiB |
- Total docs payload: 5.32 MiB.
## QA
- Technical result: PASS (0 failure(s), 0 warning(s)).
- Stream checks: codec, 960x600 decoded dimensions, exact 25fps rate metadata, continuous 0.040s decoded timestamps, 6-15s duration, and no audio.
- Visual samples: PASS — human-reviewed full-resolution samples and mosaics.
- Cursor containment: PASS — semantic journeys remain inside an edge-aware safe frame at every encoded frame; long-distance movements widen before travel. The task clips' matched focused loops were also reviewed at full resolution to confirm `/tmp`, host paths, and the Files toolbar never enter the delivery frame.
- Automated blank-frame screening: sampled frames require non-trivial standard deviation/entropy.
- Browser playback: PASS for WebM, MP4, and WebP.
- Inspect mosaics for clipping, duplicated cursor, browser chrome, fixture/debug text, local paths, private data, unreadable text, and misleading states.
## Teardown
- CONFIRMED: capture owner stopped recorder, browser, backend/frontend, agent processes, and Xvfb; released capture ports/display; removed disposable runtime state. Delivery/proof bundle remains only for handoff.
## Generated proof
- Per-clip full-resolution frames: `frames/<slug>/`
- Per-clip contact sheets: `mosaics/<slug>.png`
- Browser playback contact sheet: `mosaics/browser-playback.png`
- Machine-readable QA: `metadata/qa-report.json`
- Published manifest: `manifest.json`