feat(discord): define mixed-version scheduler capability fallback
- Dominant language
- TypeScript
- Stars
- 2.7k
- Forks
- 401
- Avg merge
- 21h 48m
- Merged PRs (30d)
- 776
Description
## 背景
PR #2099 只沉淀 dormant Discord 单-ingress scheduler foundation,尚未接入现有 Device Link / Discord Gateway 运行路径。后续接入 PR-B 时,同一 Cindy 账号可能同时存在新旧 Desktop:旧版本不识别 `cindy:discord-scheduler:v1`,不会回复 discovery probe。
## 问题
如果新客户端把权威快照中的所有 Desktop 都视为必须确认的 scheduler peer,混合版本环境会永久停在 `incomplete-peer-view`;如果直接忽略旧客户端,又可能在旧客户端仍连接同一 Discord Bot 时出现双 ingress。
## 需要在 PR-B / rollout 前确定
- 在 Device Link presence 或 Discord scheduler adapter 中暴露明确的 capability / protocol version;
- 定义“设备未全部支持 v1”时的兼容策略,保持旧版本现有行为且不制造双 ingress;
- 覆盖新旧 Desktop 混合、旧设备未配置 Bot、旧设备仍配置同 Bot 三类测试;
- 不把该兼容接线回流到 dormant PR-A,也不扩展到其他 IM、服务端 registry/CAS。
Related to #187 and #2099.
Contributor guide
Research direction
No file or test path is named. Start at the Device Link presence and Discord scheduler adapter entry points, then define the capability/protocol-version fallback for PR-B and cover mixed-version desktops, an old device without a Bot, and an old device sharing the Bot. Done means old behavior is preserved without double ingress, without changing dormant PR-A or other services.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- backend-api-design, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100