Skip to content

fix(pi): align session tree indentation - #3459

Open
JeromeLee-ljl wants to merge 1 commit into
makecindy:mainfrom
JeromeLee-ljl:fix/pi-tree-indent
Open

fix(pi): align session tree indentation#3459
JeromeLee-ljl wants to merge 1 commit into
makecindy:mainfrom
JeromeLee-ljl:fix/pi-tree-indent

Conversation

@JeromeLee-ljl

@JeromeLee-ljl JeromeLee-ljl commented Aug 26, 2026

Copy link
Copy Markdown

这次改了什么

摘要

调整 Pi 会话树的缩进规则,避免连续的单子节点链随着每一层消息不断向右缩进。现在只有真实分叉会增加缩进,分叉后的第一代保留必要的视觉分组,后续单子节点链保持同一层级。

变更类型

  • fix 缺陷修复

范围

  • 关联 Issue / 需求:无
  • 本 PR 包含:Desktop 与 Mobile 的 Pi tree 缩进逻辑调整
  • 明确不包含:连接线、分支符号、颜色、文案、交互和 Pi 协议变化
  • 用户可见变化:普通连续消息保持对齐,分支结构更容易辨认
  • 是否存在 breaking change:无

UI 变化

  • 引用的设计规范:
    • docs/design-rules/DESIGN.md:保持界面信息克制,仅调整树形层级的可读性,不新增视觉装饰
    • apps/mobile/docs/mobile-design-guide.md:遵循移动端“只做减法”和现有 token 间距体系;未修改颜色、字号、圆角或触控尺寸

怎么验证的

自动验证

pnpm test:unit:related
结果:通过;apps/desktop 与 apps/mobile 相关单元测试均通过。

pnpm --filter desktop run --if-present typecheck
结果:通过。

pnpm --filter mobile run --if-present typecheck
结果:通过。

git diff --check
结果:通过。

pnpm check:dco
结果:通过;commit 23e3a399b 带 Signed-off-by。

实现口径

缩进规则与 Pi v0.83.0 原生 tree-selector 保持一致:

  • 普通单子节点链保持当前缩进层级;
  • 只有真实分叉才增加分支层级;
  • 分叉后的第一代节点额外增加一级,用于形成子树的视觉分组;
  • justBranched 只影响这一代,后续单子节点不会继续递增缩进;
  • Desktop 与 Mobile 使用相同的层级计算规则。

参考:
https://github.com/earendil-works/pi/blob/v0.83.0/packages/coding-agent/src/modes/interactive/components/tree-selector.ts

UI 效果证据

以下截图来自 Global Desktop 开发版的 Pi 任务分支界面,使用同一组任务树进行对比:

  • 修改前:普通单链节点按消息深度逐层向右缩进。

    修改前:Pi 任务树逐层缩进

  • 修改后:只有真实分叉增加缩进;分叉后的单子节点链保持同一层级,不再持续向右移动。

    修改后:Pi 任务树按分叉层级缩进

手工验证

  • Global Desktop 开发版已启动并打开 Pi 任务分支界面。
  • 检查了 Pi tree 的连续消息与分支缩进效果。

未执行的验证

  • Mobile 实机目检未执行;已完成 Mobile 单元测试和类型检查。

风险

风险分类

  • 无已知风险
  • SQLite / migration
  • system prompt
  • 协议兼容
  • 权限 / 安全 / 用户数据
  • 存量插件兼容
  • 原生层 / fingerprint / OTA
  • 跨平台差异

影响与回滚

  • 影响范围:仅 Desktop 与 Mobile 的 Pi tree UI 缩进展示。
  • 回滚 / 降级方式:回退 commit 23e3a399b 即可恢复原缩进逻辑。

提交前检查

  • 已 review 完整 diff
  • 每个 commit 都带 DCO 签名
  • UI 改动已在「UI 变化」注明引用的设计规范章节
  • 未提交凭证、令牌或授权文件
  • 已确认测试结果

Signed-off-by: Lijialuo <lijialuo@xd.com>
@JeromeLee-ljl
JeromeLee-ljl requested a review from a team as a code owner August 26, 2026 09:56
@greptile-apps

greptile-apps Bot commented Aug 26, 2026

Copy link
Copy Markdown

Greptile Summary

本 PR 同步调整 Desktop 与 Mobile 的 Pi 会话树缩进计算,尝试只在真实分叉附近增加视觉层级。

  • 将逐节点递增的 depth 替换为 branchDepthjustBranched
  • 根据子节点数量及根节点数量计算后续缩进
  • 两端当前都在分叉后的单子节点链上多增加了一级缩进

Confidence Score: 4/5

合并前应修正 Desktop 与 Mobile 中分叉后单子节点链仍被额外缩进的问题。

新增的 justBranched 分支把额外深度应用给分支节点的子节点,导致本次修复针对的可见对齐问题在真实分叉后的链条中仍然存在。

Files Needing Attention: apps/desktop/src/renderer/features/cc-agent/SessionBranchTreeDialog.tsx, apps/mobile/src/session/PiSessionTreeSheet.tsx

Important Files Changed

Filename Overview
apps/desktop/src/renderer/features/cc-agent/SessionBranchTreeDialog.tsx 新缩进递归会把分叉分支的首个后续单子节点再次右移,未完全实现描述中的链式对齐。
apps/mobile/src/session/PiSessionTreeSheet.tsx 与 Desktop 复制了相同的深度计算,因此存在相同的分叉后链式过度缩进。
Prompt To Fix All With AI
### Issue 1
apps/desktop/src/renderer/features/cc-agent/SessionBranchTreeDialog.tsx:152-153
**分叉后链条重复缩进**

当真实分叉的任一分支节点继续拥有单个子节点时,`justBranched` 已描述当前节点是分叉后的第一代,但这里又将其子节点的深度加一,导致后续整条单子节点链额外右移一级;Mobile 中的相同计算也会产生同样的对齐错误。

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Reviews (1): Last reviewed commit: "fix(pi): align session tree indentation" | Re-trigger Greptile

@MagicLizi

Copy link
Copy Markdown
Contributor

@JeromeLee-ljl 👋 这个 PR 还有 1 条 review conversation 没 resolve(apps/desktop/src/renderer/features/cc-agent/SessionBranchTreeDialog.tsx),auto-review 因此暂时跳过、没法继续审查 / 合并。

如果你已经按评论改完或回应了,请到对应 thread 上点 Resolve conversation;全部 resolve 后,下一轮 auto-review 会自动重新审查这个 PR。

@MagicLizi MagicLizi added touches:product-ui 改动碰到产品 / UI 面(review-pr 自动维护,仅展示) awaiting-discussion 等待维护者讨论(review-pr) and removed awaiting-discussion 等待维护者讨论(review-pr) labels Aug 26, 2026
@MagicLizi

Copy link
Copy Markdown
Contributor

这个 PR 改了 Desktop / Mobile 的 Pi 会话树缩进展示,需要维护者确认后再继续落地。

请维护者直接在本 PR 上 Approve;如果要改,请 Request Changes。讨论 issue:#3465

@MagicLizi MagicLizi added the awaiting-discussion 等待维护者讨论(review-pr) label Aug 26, 2026
@MagicLizi

Copy link
Copy Markdown
Contributor

命中 UI 路径但 description 未附界面效果证据。建议补充改动后效果:截图/录屏,或改动后界面的 HTML 页面(```html 代码块、.html 附件或在线预览链接),便于确认界面符合 DESIGN.md。

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1f5c2a5450

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@MagicLizi

Copy link
Copy Markdown
Contributor

@JeromeLee-ljl 👋 这个 PR 还有 1 条 review conversation 没 resolve(apps/desktop/src/renderer/features/cc-agent/SessionBranchTreeDialog.tsx),auto-review 因此暂时跳过、没法继续审查 / 合并。

如果你已经按评论改完或回应了,请到对应 thread 上点 Resolve conversation;全部 resolve 后,下一轮 auto-review 会自动重新审查这个 PR。

@JeromeLee-ljl

Copy link
Copy Markdown
Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Chef's kiss.

Reviewed commit: 23e3a399b3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@MagicLizi MagicLizi added status:awaiting-author 等作者修改(review-pr 自动维护,仅展示) and removed awaiting-discussion 等待维护者讨论(review-pr) labels Aug 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status:awaiting-author 等作者修改(review-pr 自动维护,仅展示) touches:product-ui 改动碰到产品 / UI 面(review-pr 自动维护,仅展示)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants