Skip to content

Commit fc5a809

Browse files
See USee U
authored andcommitted
docs: update PLAN/MERGE for v1.18.7 sync and TUI rendering polish
Bump upstream baseline to v1.18.7 and register the new TUI rendering deviations (code-block panelization, streaming-safe TextPart, reasoning markdown, gradient spinner, GLYPH/MCP unification, subagent agent-color) in the living deviation list.
1 parent 9e16223 commit fc5a809

2 files changed

Lines changed: 23 additions & 6 deletions

File tree

MERGE.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ fork 与上游改了同一处(常见于 TUI 视觉/UX、core 加固逻辑)
103103

104104
## fork 偏离清单
105105

106-
> 每条注明处理方式;标注「上游若已做可取上游版本」的条目在每次 sync 时复审。数据基于 v1.18.2→v1.18.4 sync 与后续 fork 自有改进,随每次 sync 更新。
106+
> 每条注明处理方式;标注「上游若已做可取上游版本」的条目在每次 sync 时复审。数据基于 v1.18.2→v1.18.4 sync、后续 v1.18.6/v1.18.7 sync 与 fork 自有改进(含 TUI 渲染深度打磨),随每次 sync 更新。
107107
108108
### 结构性偏离(删除保持)
109109

@@ -153,17 +153,20 @@ fork 与上游改了同一处(常见于 TUI 视觉/UX、core 加固逻辑)
153153
| 冲突来源 | 频率 | 处理方式 |
154154
|---------|------|---------|
155155
| `packages/tui/src/component/error-component.tsx` (issue URL) || 保留 `https://github.com/3kaiu/opencode-x/issues/new`(上游指向 anomalyco/opencode,永久偏离) |
156-
| `packages/tui/src/theme/index.ts` (overlay 颜色变量 + selectedForeground) | | 保留 `overlay`/`overlayLight` 变量与 `selectedForeground(theme)` helper(透明背景主题选中态对比度,上游若已做可取上游版本) |
156+
| `packages/tui/src/theme/index.ts` (overlay 颜色变量 + selectedForeground + 代码块面板) | | 保留 `overlay`/`overlayLight` 变量与 `selectedForeground(theme)` helper`getSyntaxRules` 引用 `markdownCodeBlock` 做代码块底色 + 标题分级 + 行内 chip;`resolveTheme``markdownCodeBlock` 背景兜底 + `backgroundBackdrop` 改可选(对齐 plugin `TuiThemeCurrent`)(上游若已做可取上游版本) |
157157
| `packages/tui/src/ui/dialog.tsx` (响应式布局 + overlay) || 保留 `Math.max(1, ...)` 顶部间距、`Math.max(40, ...)` 最大宽度、`theme.overlay`(上游若已做可取上游版本) |
158158
| `packages/tui/src/ui/dialog-select.tsx` (当前项标记颜色 + emptyView) || 保留 `theme.primary` 当前项标记、`emptyView` 自定义空态入口(上游若已做可取上游版本) |
159159
| `packages/tui/src/ui/dialog-help.tsx` (快捷键分类) || 保留按类别分组的快捷键显示(上游若已做可取上游版本) |
160160
| `packages/tui/src/component/dialog-session-list.tsx` (空状态 + 删除确认) || 保留 contextual 空态消息、删除确认 `` 前缀(上游若已做可取上游版本) |
161161
| `packages/tui/src/component/command-palette.tsx` (命令面板空状态) || 保留 contextual 空态消息(上游若已做可取上游版本) |
162-
| `packages/tui/src/routes/session/index.tsx` (revert 边框 + ThinkingScanner 复用) | | 保留 revert banner 边框 `theme.border`、Thinking 头部复用 `ThinkingScanner`(动画开关覆盖)(上游若已做可取上游版本) |
162+
| `packages/tui/src/routes/session/index.tsx` (revert 边框 + ThinkingScanner + 代码块分段/流式防闪/reasoning markdown/Skill/summary) | | 保留 revert banner 边框、Thinking 复用 `ThinkingScanner``TextPart` 流式走单 `<markdown streaming>`、完成后切 `<For>`+`CodeBlock` 面板(防逐 token 重建闪烁);`ReasoningPart``subtleSyntax()` markdown;`Skill(name)` 括号约定;summary 行 `GLYPH.dot`(上游若已做可取上游版本) |
163163
| `packages/tui/src/routes/session/permission.tsx` (权限图标匹配) || 保留权限图标与工具图标一致(上游若已做可取上游版本) |
164-
| `packages/tui/src/routes/session/subagent-footer.tsx` (agent 色带 + 状态点) || 保留 agent 专属颜色边框、状态点图标、紧凑索引、导航按钮样式(上游若已做可取上游版本) |
164+
| `packages/tui/src/routes/session/subagent-footer.tsx` (agent 色带 + 状态点 + agent-color 标签) || 保留 agent 专属颜色边框、状态点图标、紧凑索引、导航按钮样式;`SubagentFooter` 标签用 `local.agent.color` 上色(与 `Task` 运行态 bullet 一致)(上游若已做可取上游版本) |
165+
| `packages/tui/src/component/message/primitives.tsx` (新增:Bullet/ResultBlock/CollapsedHint) || fork 新增共享消息原语;`Bullet` spinner 用 `ColorGenerator` 基色↔accent 呼吸渐变(受 `animations_enabled` 约束);若上游引入同类原语对抗审计 |
166+
| `packages/tui/src/ui/glyphs.ts` (新增:GLYPH 常量含 mcp 状态字符组) || fork 新增,统一 footer/dialog-status/dialog-mcp 的 MCP/状态字符(`GLYPH.mcp.{connected,failed,disabled,loading}``GLYPH.dot` 等);若上游引入同类常量对抗审计 |
167+
| `packages/tui/src/component/{dialog-mcp,dialog-status}.tsx` + `feature-plugins/home/footer.tsx` (MCP 状态字符统一) || 保留改用 `GLYPH.mcp` 取代散落的 `✗●○/•/⋯✓○`(上游若已做可取上游版本) |
165168
| `packages/tui/src/{audio,attention}.ts` (错误日志级别) || 保留 `console.error` 替代 `console.debug`(上游若已做可取上游版本) |
166-
| `packages/tui/src/util/markdown.ts` + `test/markdown-polish.test.ts` (LLM markdown 打磨) || fork 新增(LaTeX→Unicode、CJK 强调符修复),保留;若上游引入同类能力对抗审计 |
169+
| `packages/tui/src/util/markdown.ts` + `test/markdown-polish.test.ts` (LLM markdown 打磨 + splitProseAndCode) || fork 新增(LaTeX→Unicode、CJK 强调符修复`splitProseAndCode` 分段供代码块面板化),保留;若上游引入同类能力对抗审计 |
167170

168171
### 其他
169172

PLAN.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,11 @@ opencode-x 是 [anomalyco/opencode](https://github.com/anomalyco/opencode) 的
1616

1717
## 当前状态
1818

19-
- **上游基线**`v1.18.4`(上次 sync:v1.18.2 → v1.18.4)
19+
- **上游基线**`v1.18.7`sync 轨迹:v1.18.2 → v1.18.4 → v1.18.6 → v1.18.7
2020
- **包规模**:12 个包(11 个功能包 + sdk),原生模块(natives/)已全部删除,grep 跟随上游使用 ripgrep
2121
- **裁剪工程(Batch 0–3)**:✅ 全部完成
2222
- **TUI 审计打磨(四批 23 轮)**:✅ 全部完成
23+
- **TUI 渲染深度打磨(Markdown 响应 + 会话元素视觉)**:✅ 完成(代码块面板化、流式防闪、reasoning 降透明 markdown、盲文渐变 spinner、GLYPH/MCP 状态字符统一、subagent agent-color 身份)
2324
- **当前主线**:持续同步(Continuous Sync)
2425

2526
## 当前主线:持续同步阶段
@@ -93,6 +94,19 @@ SSE │ 🔴慢 5.4x │ 🟢async │ 🟡中 │ 🔴4.0MB│
9394

9495
这些偏离已计入 MERGE.md 偏离清单,后续 sync 时与上游对抗审计。
9596

97+
### TUI 渲染深度打磨(Markdown 响应 + 会话元素视觉)✅
98+
99+
在四批审计之后,对 AI 响应的 Markdown 渲染质量与会话各元素(think/tool/skill/mcp/todo/subagent/summary)视觉体系做了一轮深度打磨(综合 Claude Code / Qoder / Kimi CLI 的公共优点):
100+
101+
- **围栏代码块面板化**`splitProseAndCode` 分段 + `CodeBlock` 组件(面板底色 + 语言标签 + 行号),`getSyntaxRules` 引用 `markdownCodeBlock` token,`resolveTheme` 增背景兜底
102+
- **流式防闪**`TextPart` 流式期间走单个稳定 `<markdown streaming>`,完成后再切 `<For>` 分段(避免逐 token 重建 renderable)
103+
- **Reasoning 降透明 markdown**`subtleSyntax()` 渲染思考正文,保留列表/代码/加粗
104+
- **盲文渐变 spinner**`Bullet``ColorGenerator` 基色↔accent 呼吸流转(受 `animations_enabled` 约束)
105+
- **状态字符统一**:新增 `ui/glyphs.ts`(含 `GLYPH.mcp` 组),收敛 footer/dialog-status/dialog-mcp 的 MCP 状态字符
106+
- **Subagent 身份**`Task` 运行态 bullet + `SubagentFooter` 标签用 `local.agent.color` 上色,保留 success/error/retry 状态色语义
107+
108+
这些偏离已计入 MERGE.md 偏离清单,后续 sync 时与上游对抗审计。
109+
96110
## 保留包清单(12 个包)
97111

98112
```

0 commit comments

Comments
 (0)