Warchief.dev War Suite Directory Field Guide / Launcher Hall

Roadmap file / preserved structure

WarCam Screen Capture · Engine Building Roadmap

WarCam Screen Capture is a browser-first recorder: choose a tab / window / screen , preview it live, record locally via MediaRecorder , and optionally transcode to MP4/H.264 (or burn overlays) with ffmpeg.wasm (same-origin). This roadmap stays honest about permission gating , browser limits, and export reality.

Done In progress / partly live Planned / not started
One row = one build slice Viewport-safe: no page overflow

Phase map

Build sequence

Original roadmap content, family shell styling.

Phase 0 Warchief Shell + Capture Permissions
Branded frame, permission-gated capture, and a safe session lifecycle.
In Progress v0A
  • 0.A — App Frame + Viewport RulesUI
    Reuse WarCam chrome unchanged; lock preview/canvas to viewport; keep panels scroll-safe (no page overflow).
    Done · shell reuse
  • 0.B — Screen Capture Permission FlowCore
    Implement navigator.mediaDevices.getDisplayMedia() behind a user gesture with clear UX copy; handle cancel cleanly.
    Planned · permission-gated
  • 0.C — Source Selection GuardrailsQA
    Detect tab/window/screen selection; prevent silent re-capture; enforce re-prompt on stream end; report constraints.
    Planned
  • 0.D — Capture Session LifecycleUX
    State machine: Idle → Armed → Capturing → Stopped; listen for stream ended; UI lockout + safe reset.
    Planned
Phase 1 Live Preview + Canvas Bridge
Make the captured screen visible, stable, and measurable.
Planned v0A
  • 1.A — MediaStream → <video> PreviewPreview
    Attach captured MediaStream to <video>; obey autoplay rules (muted); preserve aspect ratio; show share target hint.
    Planned
  • 1.B — Video → Canvas MirrorCore
    Mirror preview frames to a canvas via requestAnimationFrame; normalize resolution (720p/1080p baseline); time-stable loop.
    Planned
  • 1.C — FPS + Resolution ProbingQA
    Live stats panel: actual FPS, captured resolution, dropped-frame hints; warn on throttling/downscale.
    Planned
Phase 2 Recording Pipeline (Browser-First)
Record usable video locally with minimal moving parts.
Planned v0A
  • 2.A — MediaRecorder HarnessCore
    Record via MediaRecorder; probe supported MIME types (vp8/vp9); buffer chunks safely.
    Planned
  • 2.B — Start / Stop / Pause SemanticsUX
    Record / Pause / Resume controls, keyboard shortcuts, recording indicator; guard against double-start.
    Planned
  • 2.C — Blob Assembly + Local DownloadI/O
    Assemble chunks into a Blob; generate download URL; filename + timestamp scheme; keep it local-first.
    Planned
Phase 3 Timeline Intake (Warcut Integration)
Make recordings behave like standard clips (bin + timeline).
Planned v0A
  • 3.A — Recorded Clip Import AdapterData
    Treat recordings like any other media asset: inject into bin, probe duration/dimensions, enable add-to-timeline.
    Planned
  • 3.B — Live-Capture → Timeline Bridge (Optional)Advanced
    Stretch goal: segment capture into timeline-ready chunks; keep a safe fallback to offline import if sync gets hairy.
    Planned · stretch
Phase 4 FFmpeg Processing (Optional / Power Path)
Transcode and burn-in overlays using ffmpeg.wasm when needed.
Planned v0B
  • 4.A — ffmpeg.wasm Ingest (WebM → MP4)WASM
    Write recorded Blob into FFmpeg FS; transcode to MP4/H.264; surface progress and estimated time; handle big files.
    Planned
  • 4.B — Overlay Burn-In SupportGFX
    Optional: rasterize overlays and burn into the captured export for pixel parity; reuse overlay ordering rules.
    Planned
  • 4.C — Export Presets + WarningsUX
    “Fast / Balanced / Heavy” presets; explicit “export is slow” messaging; cancel support; consistent naming.
    Planned
Phase 5 Hardening + Reality Guards
Prevent browser foot-guns: limits, diagnostics, and honest UX.
Planned v0B
  • 5.A — Memory & Duration LimitsQA
    Duration guardrails, memory pressure messaging, graceful abort; keep the UI responsive under load.
    Planned
  • 5.B — Browser Capability ReportQA
    Codec support panel, MediaRecorder MIME matrix, recommendations by browser; known-issues list.
    Planned
Phase 6 Optional Server Assist (Future)
Escape hatch for heavy renders when browser limits are hit.
Planned v0C
  • 6.A — Upload-Only Server Render (Escape Hatch)Pro
    Optional future: upload capture → server FFmpeg transcode/render; asynchronous completion; keep browser MVP intact.
    Planned · non-blocking