makecindy / makecindy/cindy

TapDB 同意闸 follow-ups:desktop 会话边界同意语义与若干加固项(源自 #387 review)

Open
#408 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
2.7k
Forks
395
Avg merge
21h 48m
Merged PRs (30d)
776

Description

PR #387 review 第五轮遗留的延期项,均不阻塞该 PR 合入。按优先级:

## 1. desktop 登出/会话边界是否撤销机器级同意(需产品拍板)

desktop 的 privacyConsentAccepted 是机器级事实记录,登出不清除。共享一台电脑的场景下:非 SSO 用户 A 同意 → 登出 → 用户 B 走企业 SSO 登录(协议门豁免,B 从未同意)→ auth 监听把 B 的账号 ID 绑进 TapDB。这与 PR #387 声明的「企业 SSO 用户不会被采集」在共享机器场景下矛盾。

mobile 已按「登出撤销同意、保留 enabled override」处理(理由:登出后设置页不可达)。desktop 有游客模式、登出后设置页仍可达,消费口径不同,是否对齐 mobile 需要产品决定——对齐会同时改变「登出后登录页 device 级统计」的口径。

## 2. desktop opt-out SDK 侧失败后无主动重试

optOutTracking() 抛出(如 localStorage 不可用)时,#387 已保证本模块自发事件立即停(fail closed)+ 同值广播重试;但 SDK 自身 autoTrack 的 page_show 在下一次设置广播或重启前会继续发。可考虑失败后本地定时重试或直接禁用 SDK 侧 page_show 路径。

## 3. desktop init 后置步骤失败不重试

initSdk 成功但 setSuperProperties / 首个 pvEvent / setUser 抛出时,状态已提交为 applied,后续同值广播不再补发,影响该进程的启动/留存指标质量(非隐私问题)。可把后置步骤完成度单独跟踪。

## 4. useAnalyticsSettings 写入响应与广播的竞态(纯显示)

多窗口同时写开关时,先发窗口的 invoke 响应可能晚于更新的广播到达并短暂覆盖显示;下一次广播自愈。可让写入路径不 setState、统一依赖广播。

来源:#387 第五轮 bot review(codex connector / greptile),经人工复核定性。

Contributor guide

Open the contributing guide

Research direction

Start with PR #387's fifth-round review, then trace privacyConsentAccepted, the auth listener, optOutTracking(), initSdk, page_show, and useAnalyticsSettings. The work is not ready for implementation until the product decision on desktop logout semantics is made; done would mean applying the agreed retry, initialization, and broadcast behavior across the listed follow-ups.

Written by the indexing model from the issue text.

Assessment

Tech stack
electron, typescript
Domain
analytics, authentication, desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.