Skip to content

refactor: introduce generic video sessions - #53

Draft
chanderlud wants to merge 38 commits into
masterfrom
feature/generic-video-sessions
Draft

refactor: introduce generic video sessions#53
chanderlud wants to merge 38 commits into
masterfrom
feature/generic-video-sessions

Conversation

@chanderlud

@chanderlud chanderlud commented Jul 25, 2026

Copy link
Copy Markdown
Owner

Summary

Replaces the screenshare-specific lifecycle with a generic, typed video-session contract. Video start/stop now has a single per-peer owner that retains adapter and Iroh worker resources until cancellation, I/O closure, and joins complete, preventing stale work from clearing a newer session.

Desktop FFmpeg behavior and persisted configuration remain compatible, while unsupported targets return typed availability outcomes. Flutter now consumes identity-aware lifecycle events without changing the existing desktop screenshare control or UI states.

Design Decisions

  • Video offer, ready, reject, stop, and stream preambles are versioned, identity-checked, and separately bounded before delivery.
  • open_uni and accept_uni are slot-owned workers; teardown reaches idle only after joined cleanup.
  • FFmpeg remains behind cfg-selected platform adapters; generic coordinator and wire types contain no device or process details.
  • Lifecycle callbacks are post-cleanup observations, so Flutter cannot own or race resource cleanup.

@chanderlud chanderlud mentioned this pull request Jul 28, 2026
…eo-sessions

# Conflicts:
#	docs/CONCEPTS.md
#	rust/telepathy-core/src/internal/core.rs
#	rust/telepathy-core/src/internal/messages.rs
#	rust/telepathy-core/src/internal/state.rs
…eneric-video-sessions

# Conflicts:
#	rust/telepathy-core/src/internal/video/platform/desktop_ffmpeg.rs
chanderlud and others added 9 commits July 31, 2026 05:42
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…eo-sessions

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
- cli: inject mock audio host into NativeTelepathy via new with_host
  constructor, restoring --system-test-audio and drain_audio_frame_indices
- core: gate VideoMediaDescriptor::display and VideoCapabilities::formats
  to desktop platforms, fixing iOS -D warnings dead-code errors
- core: send oversized video-control frame concurrently with receive in
  read_message test, fixing QUIC flow-control deadlock
…tations

Cfg-gating the methods orphaned platform imports (unused import errors on
iOS). Expecting dead_code keeps items compiled on all targets, self-checks
if a platform starts using them, and covers Android/wasm for free.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant