Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

One capture per lease, shared by every viewer of its screen

未关闭
#602 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 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 内容生成。

描述

feature:spec

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,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

callstackincubator/simlock 的其他 Issue

查看 callstackincubator/simlock 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。