Repository navigation
feat(mobile): 支持群邀请预览与确认加入 - #7930
Conversation
Signed-off-by: nana <823073145@qq.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
[Medium impact] 当前未发现阻止合并的问题。
|
|
@nanaco666 👋 这个 PR 目前与 请在本地 merge 最新的 |
Signed-off-by: nana <823073145@qq.com>
|
已合并 @greptileai Please review the latest changes at commit 51eca5b. |
Signed-off-by: nana <823073145@qq.com>
|
已处理主干再次更新产生的测试、五语言与台账冲突并推送 @greptileai Please review the latest changes at commit 69af80d. |
Signed-off-by: nana <823073145@qq.com>
|
@greptileai Please review the latest changes at commit 9623d2a. |
Signed-off-by: nana <823073145@qq.com>
|
@greptileai Please review the latest changes at commit b6b10ea. |
Signed-off-by: nana <823073145@qq.com>
Signed-off-by: nana <823073145@qq.com>
|
@greptileai Please review the latest changes at commit a83d3e6. |
Signed-off-by: nana <823073145@qq.com>
|
@greptileai Please review the latest changes at commit ad10e4e. |
PR #7930 独立代码审查报告(standard 档)
Findings没有 P0/P1。(P2 级风格建议按规则不列不阻断。) 安全软命中定性: Rule coverage按 rule-map 读取并逐项核对(只审本次新增/修改代码):
Verification实际执行(worktree 内,完整日志落盘,退出码取命令自身):
未执行:Android 原生 UI 实机、微信唤起/安装续接、生产区域端到端(PR 正文已声明未验证,非本 PR 范围);security-scan.mjs(standard 档不执行)。UI 证据为 PR 正文内嵌 Light/Dark 完整截图(804×1748,含加入后 3 人/已加入状态),与 diff 的身份区/操作区一致,未做下载渲染逐项对照。 Intent alignment
Overallpass —— 没有 P0/P1。 可进入受保护 Approve 与合并。 |
|
@nanaco666 👋 这个 PR 目前与 请在本地 merge 最新的 |
Signed-off-by: nana <823073145@qq.com>
|
已在 Mobile 433 项与 Desktop 邀请 50 项定向测试、两端类型检查和适用检查通过。新 head CI 已启动;旧 head 的 5/5 不沿用。 @greptileai Please review the latest changes at commit 16137ae. |
PR #7930 独立代码审查报告(head 16137ae)审查分档:standard(独立审查 agent,rule-map 逐项对照)。结论:pass,没有 P0/P1。 Findings
Rule coverage — 读取的规则文件及逐项结论
Verification — 实际运行的命令、结果、未执行项及原因(worktree = PR head 16137ae,
未执行:iOS/Android 真机原生验收(PR 正文已声明原生验收由主控统一完成、微信点击唤起未验收);heavy 档 security-scan(本 PR 为 standard 档,不适用)。CI Intent alignment描述来源:PR 正文(当前版,2026-10-30 随提交更新)+
结论:一致,无确认偏离。多轮修复未改变用户原目标;核心目标(预览不入群、显式确认、账号隔离、去重、关闭后导航)均可在当前 head 代码与测试中核实。 Overallpass(明确:没有 P0/P1)。零 P0/P1、原意一致性复核完成、无待裁定核心方向问题;合并前提(CI 全绿、thread 全 Resolve、维护者确认门 released、无冲突、无受保护路径、无冷更)均已核验。备注:机器人静默期按超时放行,copilot-pull-request-reviewer / chatgpt-codex-connector 的意见可能在合并后到达。 |
这次改了什么
摘要
手机收到群邀请链接后,现在可以先查看真实群身份,再明确确认加入。首页手动粘贴、App 收到的邀请深链和前台剪贴板识别共用一个邀请面板;取消、换账号和重复打开不会留下错误提示或错误导航。客户端收到深链的验证,不代表微信等宿主已能将
cindy://显示为可点击链接。变更类型
feat新功能fix缺陷修复refactor/perf重构或性能优化docs/test/chore文档、测试或工程维护范围
docs/product-rules/bot-group-chat.md§8.4;服务端配套 xindong/cindy-server#1131 已合并。尚无对应独立客户端 Issue,不借用其他需求编号。design-group-invite-landing-phase2,未发布)、微信点击唤起与安装后续接的完整验收;以及话题、附件上传、推送身份、建群表单、服务端代码、数据库、原生配置、依赖或 lockfile 变更。不依赖未合并的 feat(bots): 简化私聊建群并统一邀请弹窗 #7902。cindy://chat-invite/...是 App 协议地址,不能当作 HTTP 网页;微信等宿主可能不识别或拦截。此时可复制完整邀请,在 Cindy 手动粘贴或由已有剪贴板入口继续。Global / 中国大陆的 HTTPS 生成逻辑只有加载本 PR 的 Desktop 才会生效,使用的是现有公共页;Dev 与回环地址仍生成 scheme。尚未以真实微信点击、Safari 接力及首次安装流程验收,不能宣称完整站外入群链路已交付。UI 变化
iOS 26.5 / iPhone 17 Pro,截图来自业务提交
b6b10eac35,真实 Dev 群;本轮仅同步主干修复,邀请 UI 未变,未重拍截图。以下为完整 App 截图(804×1748),保留邀请面板全部内容、关闭按钮与底部操作,展示加入后的 3 人 / 已加入状态。截图前仅在模拟器内存中将邀请人显示名替换为示例名
QA User,截图后已恢复;未修改服务端账号或源码,群头像、人数和状态仍来自真实 Dev。背景为空白新建页面,不含账号或电脑信息。浅色:
深色:
docs/design-rules/DESIGN.md§3 Typography Rules、§4 Inputs & Forms / Dialog & Modal、§5 Layout Principles、§15 Mobile;用户批准的邀请细则登记于apps/mobile/docs/mobile-design-guide.md「群邀请 V9」。颜色与图标均用语义 token;iOS 复用 Expo 原生 BottomSheet 和原生 TextInput;Android 复用现有 CompanionSheet;无原生指纹变动。怎么验证的
自动验证
当前提交
16137ae2d8fc8c4c3b86bb173d715552a0bd32f1同步main@4146107162e2a78a84b4972e06ed9ef98fa4429a,解决 3 文件的真实冲突:MobilechatServerClient.ts、对应测试和自动生成的设计台账。保留邀请预览/接受,以及主干新增的话题失败缓存清除;两边既有测试全部保留。台账从 main 原文按合并树重新生成,人工区与 surface IDs 保留。相对新 main 仍为原 36 文件;其中 35 个业务、测试及文档文件的增删内容与同步前邀请补丁完全一致,台账统计随合并源码更新。未扩需求、未混入二期网页、未修改服务端、依赖或原生输入。此次是 base sync,不增加业务修复轮。
本轮实际验证:Mobile 13 文件 / 433 项通过(13.09s,含邀请、Chat Server client、手机话题/群入口回归);Desktop 邀请 50 项通过(4.39s)。Mobile typecheck 通过(24.71s),Desktop typecheck 通过(139.86s)。设计台账、dev-docs、术语、test-hygiene、diff 与 DCO 检查通过。未重做模拟器、物理设备或生产验收;历史截图和运行证据继续保留各自提交标识。本地全量门禁未执行,等待 PR CI。
上一 head
ad10e4e7f7397169c84a1c7af6f13bba6b0a29fe的完整 CI 已通过,Greptile reviewed SHA 匹配并为 5/5(check-run123918957028),无剩余实际 finding;这些结果不替代当前 head 的 CI/评分。新 head 的检查与审查单独核对,不复用旧分。新版群邀请网页设计保留在独立本地分支
design-group-invite-landing-phase2,未发布、未部署,也不在本 PR。上一业务修复提交
b6b10eac35修复手动粘贴cindycn:///cindydev://邀请误报不完整的问题:复用现有链接归一化,保留裸邀请码、手动编辑和当前账号的服务端选择。两个回归修复前失败,修复后与截断链接负例通过。此前9623d2a7a5已同步main@1dbff37a89并保留首页双方测试;本次仅修改邀请 hook 与其回归,相对 main 仍为 36 文件。以下为初始提交
43579ceb的全量验证记录;此次主干同步按当前仓库影响面规则执行上面的定向回归,未重跑整仓。最新 head 的完整门禁继续由 PR CI 执行,历史结果不冒充新 head CI。新增/改写测试均通过生产入口验证可观察结果,tier 为 unit;请求、原生关闭和账号交叉使用进程内集成 fixture,不依赖真实网络或登录。下表说明覆盖缺口与最小输入;逐文件耗时为 43579ce / 51eca5b 阶段的历史实测,仅供量级参考。本轮实际结果以上述合计和墙钟时间为准。
chatServerInvitations.test.ts(Desktop)BotGroupAvatars.test.tsxChatInviteHost.test.tsxChatInviteView.ios.test.tsxHomeTeammatesSection.test.tsxTeammateCreateController.test.tsxchatInviteIntegration.test.tsxchatServerClient.test.tsnativeIntent.test.tsthemeTokens.test.tsuseChatInvite.test.tsxuseClipboardChatInvite.test.tsx初始独立审查、修复复核与 PR 范围核对已完成;本次主干同步由 owner 核对全部邀请增量,保留主干的自建中转入口、群活动排序和本地化入群摘要。无用
onClosedprop、未使用导出、历史注释及三项旧有效期文案已清理;实际model.closed()保留。手工验证
b6b10eac35b5588a9b8ad9234d6899f2c86c5860:分支feat-mobile-group-invites、worktreeCindy-feat-mobile-group-invites,本任务 Metro 8084。身份 healthy / native-matched / target-fresh;实际页面标识feat-mobile-group-invites@b6b10eac3 · v0.1.0 (2026072301)。574cfd3a9e369a2652988e1a82be132e8472e943,未重建;邀请人示例名仅截图时在内存替换,已恢复。cindydev://与cindycn://均已在真实 Dev iOS 读取同一测试群的头像、3 人和已加入状态,保留 Edit Link。行为验证源码的 SHA256 与最终提交一致;提交后已刷新本 head 的页面标识、预览及双主题截图。未执行的验证
ad10e4e7f7397169c84a1c7af6f13bba6b0a29fe的完整 CI 和 Greptile 5/5 已核实;新 head 的完整 CI、评分仍单独跟进,旧结果不沿用。手动 scheme 的唯一 finding 已修复、回复并 Resolve。辅助 Codex 在初始旧 head 未完成审查。EPERM已在主干a1532bf1c1的同一用例复现;browserExtensionSlot 的桥接启动断言在 25ms 等待后未就绪,归因尚未确认。保留原失败证据,本轮新 CI 重新验证,不将历史失败写为通过。风险
风险分类
影响与回滚
574cfd3a9e369a2652988e1a82be132e8472e943;该包最初已按干净 PR 工作树安装,并在b6b10eac35的业务验收时原生匹配;本轮未重新执行原生身份核对或安装。提交前检查
git commit -s,见 DCO)