Is 画面共有 part of v1, and does Android MediaProjection block it? #45
Labels
No labels
needs-info
needs-triage
ready-for-agent
ready-for-human
v2
wayfinder:grilling
wayfinder:map
wayfinder:prototype
wayfinder:research
wayfinder:task
wayfinder:ticket
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
aiko/denpa#45
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Question
denpa#31shipped screen sharing on desktop throughgetDisplayMedia.denpa#36moves acquisition into Rust because ADR-0002 requires it and becauseAndroid has no usable
getDisplayMedia— capture there isMediaProjection,which needs a system consent dialog and a foreground service, alongside the one
denpa#23's overlay already runs.v1's destination is the conversation works. Screen sharing is not obviously
part of a conversation, but
#31is already built and its renderer path calls abrowser media API that ADR-0002 forbids — so leaving it alone is not free either.
Decide:
#31'sgetDisplayMediacall stay in the tree as a knownADR-0002 violation, get disabled, or get removed?
MediaProjectionhalf have to land for v1, or isdesktop-only capture acceptable given
#36explicitly rejects"a capture path that only exists on desktop"?
Related
denpa#36,denpa#31,denpa#23denpa/docs/adr/0002-hardware-goes-through-rust.mdMap:
aiko/denpa#41Resolution
画面共有 is in v1. Moving it into Rust is not.
The question this ticket was filed with turned out to be the wrong one. It asked whether screen sharing belongs in v1 at all; the answer arrived by observation on 2026-07-30 — it already works on Windows, through
#31's shipped path, and it is wanted.So the real question was whether
#36's migration has to happen in v1. It does not.Why deferring is defensible
screen-capture-context.tsx:32callsgetDisplayMediaand captures.#35proved the pattern. The Rust boundary — a command surface, a worker, events — is now built and running for the microphone. Migrating capture is a well-understood repeat rather than an unknown, which is exactly what makes it safe to schedule later.What deferring costs, stated rather than glossed
getDisplayMedia, so the grant surface#31built is desktop-only until#36lands.NotAllowedErroron Android withRECORD_AUDIOalready granted. Screen capture has not hit that yet on Windows; it has not been proven immune to it either.Sequencing
#36is labelledv2and travels with the Android capture work — theMediaProjectionconsent dialog and its foreground service, which #47 established cannot lean on the overlay's service because the overlay is out of v1.