Skip to content

feat: preview linked MP4 videos inside Codeman #45

Open

Description

@johoja12

Generated videos shared as HTTPS MP4 links currently open outside Codeman. Reuse the existing file-preview modal and native video controls for direct HTTP(S) video links, including signed query strings, from terminal links and rendered responses. Preserve existing local/remote workspace video previews, seeking/fullscreen/inline mobile playback, and pause/unload on close or replacement. Keep ordinary links opening normally and offer an external-open fallback for unsupported or unavailable video.

The browser should load the external video directly; do not introduce a server-side URL fetch proxy. Validate URL protocols and credentials, and narrowly enable external media in CSP without widening script or frame permissions.

Verify desktop and mobile interaction, URL routing and media cleanup, playback with a real video fixture, error handling and existing preview behavior. Preserve shared assistant WIP.

Activity

  1. johoja12 commented on Nov 4, 2026

    @johoja12
    OwnerAuthor

    Implemented on branch feat/45-video-url-preview, commits 12fcc1b6341515a75b8c265ee560f515b79b2516 and 799b1e897251b97f69d6afd977061a2145e5d172, PR #46.

    Direct video URLs and labelled terminal hyperlinks open the existing in-app player. This includes phone touch activation of native OSC 8 links and generated video file-URI links using the existing guarded attachment routes. Plain web links and loopback proxy routing are preserved. External media stays browser-fetched; CSP allows media without relaxing script/frame policies. Service-worker caching bypasses media and range requests.

    Final validation: 333 tests across 12 unit/regression suites pass; six real Chromium cases pass on desktop/mobile with an active service worker, real MP4 playback and seeking, labelled/plain terminal links, response links, stream teardown and error fallback. Isolated Codex/shell smoke passes 106 checks with no browser page/serious console errors. Claude was not authenticated, and no remote smoke host was configured, so those environments were not exercised. All temporary sessions and the temporary server were cleaned up. Both pushes passed static checks.

    PR includes screenshots and a tiny generated MP4 fixture. Shared production checkout and its five pre-existing assistant WIP files were preserved. This feature has not been merged or deployed to production yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions