One capture per lease, shared by every viewer of its screen
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 8/100
- Issue 类型
- 功能
- 描述清晰度
- 需要澄清
- 活跃度
- 活跃
- 技术栈
- android, ios, typescript
- 领域
- backend
调研方向
Start with src/stream/AGENTS.md, especially the Known gaps entry "Each viewer is its own capture", and read the per-lease capture tracking in the stream module. Issue #593 explains why each viewer currently starts its own capture. Nothing is decided yet: the four open questions (where fan-out lives, key-frame handling for late joiners, slow-viewer policy, viewer limits) need a maintainer decision before any code. Done means those answers are recorded in the issue or the AGENTS.md file.
由索引模型根据 Issue 内容生成。
描述
Request: none
Problem
Every viewer of a lease's screen starts its own capture on the worker (#593). Two people watching one device cost two capture programs on iOS, about 66–78 MB each and a second encoder, or two scrcpy servers on an Android emulator. Through a gateway each viewer also holds its own relay channel, and a worker link carries at most 64, so many viewers crowd out agent-device calls to that worker.
Who it is for
Operators and agents who watch the same device at once: a team following one agent's run, or a dashboard beside a person's console tab.
Outcome
Any number of viewers of one lease share one capture on the worker. A viewer that joins late sees a picture within one key frame. A slow viewer misses frames instead of slowing the others. The capture stops when the last viewer leaves or the lease ends. A gateway sends one relayed stream per lease to a worker, however many viewers it has.
Open questions
- Where the fan-out lives: on the worker only, or on the gateway too.
- How a late joiner gets a key frame: wait for the next one (Android sends one every 10 s), or ask the encoder for one.
- What a slow viewer gets: frames dropped until its next key frame, or a cap after which it is cut off.
- Whether viewers per lease need a limit even when they share one capture.
Notes
Today's design and its trade-offs are in src/stream/AGENTS.md (Known gaps: "Each viewer is its own capture"). The stream module is platform-agnostic and already tracks captures per lease, so a fan-out would sit there.
Written by an agent.
- 主要语言
- TypeScript
- 星标
- 19
- 派生
- 1
- 平均合并
- 7 小时 49 分钟
- 30 天内合并 PR
- 228
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
callstackincubator/simlock 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 70/100
callstackincubator/simlock#639 ·
维护者通常 1 天内回复
-
Lint does not enforce index.ts boundaries for cleanup/, routing/, warm-pool/ and contract/ helpers可能已有人在做 @V3RON 今天认领。 未关闭bug:ready
难度 2/5 1-3 小时 新手友好度 70/100
callstackincubator/simlock#445 · 1 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
-
daemon-lifecycle e2e: the it.fails status test passes for the wrong reason可能已有人在做 @V3RON 于 8 天前认领。 未关闭bug:triage
难度 2/5 1-3 小时 新手友好度 84/100
callstackincubator/simlock#422 · 1 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
-
task:ready
难度 5/5 一周以上 新手友好度 8/100
callstackincubator/simlock#637 ·
维护者通常 1 天内回复
-
task:ready
难度 5/5 一周以上 新手友好度 12/100
callstackincubator/simlock#636 ·
维护者通常 1 天内回复
查看 callstackincubator/simlock 的全部 Issue
相似的 Issue
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
难度 1/5 1 小时以内 新手友好度 70/100
lingdojo/kana-dojo#32590 · 1 条评论 · 5 个 reaction ·
维护者通常 1 天内回复
-
bug p2
难度 2/5 1-3 小时 新手友好度 72/100
bastani-inc/atomic#3703 ·
维护者通常 1 天内回复
-
backend bug difficulty: medium priority: medium reliability
难度 2/5 1-3 小时 新手友好度 76/100
trustflow-protocol/trustflow-backend#730 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 74/100
firecrawl/firecrawl-mcp-server#548 ·
维护者通常 1 天内回复
-
bug
难度 1/5 1 小时以内 新手友好度 90/100
维护者通常 1 天内回复