feat: Terminal Core UI migration + ReasoningPart restructure #82

Merged
ph merged 6 commits from feature-new-ui into master 2026-06-14 07:53:41 +00:00
Owner

Summary

  • UI 重设计: 迁移到 Terminal Core 设计系统,CRT 终端风格(绿色/蓝色/红色),方形边框,扫描线效果
  • ReasoningPart 重构: 新增 ServerReasoningPart + 分组 ReasoningPart,支持推理文本和工具调用交错显示
  • 组件拆分: assistant-message.tsx 拆分为 text-part.tsxreasoning-block.tsxgrouped-parts.tsx

Changes

UI Design System

  • 全部颜色替换为 DESIGN.md 定义的 Terminal Core 色板
  • 所有 border-radius 设为 0(方形)
  • 新增 Inter 字体用于 UI,JetBrains Mono 用于代码
  • 扫描线覆盖层、绿色发光效果、光标闪烁动画
  • 重写 greet 页面(GEEK 巨型标题 + 快捷操作卡片)
  • 重写 composer 为固定 64px 底部栏 + EXECUTE 按钮
  • 所有组件使用 Tailwind 颜色工具类(bg-surfacetext-on-surface 等)

ReasoningPart

  • ReasoningPartServerReasoningPart
  • ReasoningPart { parts: Array<ServerReasoningPart | ToolCallPart> }
  • stream.tsmessage-transform.ts 新增合并算法
  • ReasoningBlockView 交错渲染推理步骤 + 内嵌工具卡片

Files

  • web/src/index.css — Tailwind 主题 + 设计令牌
  • web/src/App.css — 侧边栏/对话框/输入框样式
  • web/src/lib/message-types.ts — 类型重构
  • web/src/lib/message-transform.ts — 合并逻辑
  • web/src/runtime/stream.ts — 流式合并
  • web/src/components/session/* — 组件拆分 + 样式更新
## Summary - **UI 重设计**: 迁移到 Terminal Core 设计系统,CRT 终端风格(绿色/蓝色/红色),方形边框,扫描线效果 - **ReasoningPart 重构**: 新增 `ServerReasoningPart` + 分组 `ReasoningPart`,支持推理文本和工具调用交错显示 - **组件拆分**: `assistant-message.tsx` 拆分为 `text-part.tsx`、`reasoning-block.tsx`、`grouped-parts.tsx` ## Changes ### UI Design System - 全部颜色替换为 DESIGN.md 定义的 Terminal Core 色板 - 所有 `border-radius` 设为 0(方形) - 新增 Inter 字体用于 UI,JetBrains Mono 用于代码 - 扫描线覆盖层、绿色发光效果、光标闪烁动画 - 重写 greet 页面(GEEK 巨型标题 + 快捷操作卡片) - 重写 composer 为固定 64px 底部栏 + EXECUTE 按钮 - 所有组件使用 Tailwind 颜色工具类(`bg-surface`、`text-on-surface` 等) ### ReasoningPart - 原 `ReasoningPart` → `ServerReasoningPart` - 新 `ReasoningPart { parts: Array<ServerReasoningPart | ToolCallPart> }` - `stream.ts` 和 `message-transform.ts` 新增合并算法 - `ReasoningBlockView` 交错渲染推理步骤 + 内嵌工具卡片 ### Files - `web/src/index.css` — Tailwind 主题 + 设计令牌 - `web/src/App.css` — 侧边栏/对话框/输入框样式 - `web/src/lib/message-types.ts` — 类型重构 - `web/src/lib/message-transform.ts` — 合并逻辑 - `web/src/runtime/stream.ts` — 流式合并 - `web/src/components/session/*` — 组件拆分 + 样式更新
ph added 6 commits 2026-06-14 07:45:36 +00:00
- Replace shadcn oklch colors with Terminal Core palette (CRT green/blue/red)
- Add all DESIGN.md color tokens to Tailwind @theme (bg-surface, text-on-surface, border-outline-variant, etc.)
- All border-radius set to 0 (sharp shapes per DESIGN.md)
- Add Inter font for UI headings, keep JetBrains Mono for code
- Add scanline overlay, glow effects, cursor-blink animations
- Rewrite greet screen with GEEK hero + quick action cards
- Rewrite composer as fixed 64px bottom bar with EXECUTE button
- Update all components to use Tailwind color utility classes
- Remove reference files (feature-ui.html, screen.png, code.html, screen_1.png)
- Rename ReasoningPart → ServerReasoningPart (raw server thinking)
- New ReasoningPart holds interleaved reasoning text + tool calls
- Add groupReasoningAndTools() merging logic in stream.ts and message-transform.ts
- Split assistant-message.tsx into fine-grained components:
  - text-part.tsx, reasoning-block.tsx, grouped-parts.tsx
- ReasoningBlockView renders step count, interleaved text + inline tool cards
- Rename ReasoningPart → ServerReasoningPart (raw server thinking)
- New ReasoningPart holds interleaved reasoning text + tool calls
- Add groupReasoningAndTools() merging logic in stream.ts and message-transform.ts
- Split assistant-message.tsx into fine-grained components:
  - text-part.tsx, reasoning-block.tsx, grouped-parts.tsx
- ReasoningBlockView renders step count, interleaved text + inline tool cards
- AgentLoopRound.assistantMessages[] → assistantMessage (singular)
- daemonMessagesToLoops merges all assistant messages' parts into one
- Streaming store tracks completed turns, merges content into single message
- Simplified loop-message.tsx to render one AssistantMessageView per round
ph merged commit f1576f0998 into master 2026-06-14 07:53:41 +00:00
ph deleted branch feature-new-ui 2026-06-14 07:53:42 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ph/agentic!82
No description provided.