makecindy / makecindy/cindy

feat(discord): define mixed-version scheduler capability fallback

Open
#2,110 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.