Skip to content

feat: prototype manual local title and progress handoff - #3295

Closed
SonAndE14 wants to merge 1 commit into
recloudstream:masterfrom
SonAndE14:contrib/manual-local-handoff
Closed

SonAndE14 wants to merge 1 commit into
recloudstream:masterfrom
SonAndE14:contrib/manual-local-handoff

Conversation

@SonAndE14

Copy link
Copy Markdown

Prototype explicit title/episode/progress sharing between two installations on a local network. Receive mode lasts two minutes for one transfer, displays a twelve-character temporary code, supports DNS-SD discovery or manual local IP/port, and requires receiver confirmation before opening a title. A receiver may search for the title instead. No whole-history synchronization, background receiver or automatic playback is added.

Validate a bounded, flat JSON schema without polymorphic deserialization. Limit pending progress to the receiving account, exact source/URL and a ten-minute window, and apply it only after real episodes have loaded. Close receiving sockets/discovery when leaving the screen. Guard future local-network permission requests by runtime and target SDK.

The experimental transport uses ephemeral P-256 ECDH and AES-GCM with the displayed code in key derivation. It is a custom, unaudited protocol; do not treat it as production-ready pairing. Two-Android-device interoperability, cancellation/lifecycle behavior, Android37 permissions, provider compatibility and protocol/security review are still required before merging. Both devices need this variant. Tests cover transport delivery/rejection/closure and invalid payloads, not those physical scenarios.

Validation: :library:checkKotlinAbi, :app:testPrereleaseDebugUnitTest, and :app:assemblePrereleaseDebug passed locally. 18 JVM tests passed without failures or errors. Lint is left to this PR's GitHub workflow; the complete integration branch previously passed Lint. These results are not physical-device validation.

AI disclosure: implementation, code review and automated test execution used OpenAI Codex assistance, as required by AI-POLICY.md. This draft submits the implemented work for human review; pending physical checks and limitations above are not claimed complete. No changes to provider source code or the projector launcher are included.

@fire-light42

Copy link
Copy Markdown
Collaborator

This is not how we want to solve this problem, it is simply unnecessarily complex. Full data syncing should be generic to support a full cloud sync solution. Handing off current progress should use the official android API.

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.

3 participants