deerflow2/frontend/src/components/workspace
LofiSu 0fff2880d3 Merge upstream/experimental and resolve conflicts; citations + path_utils + mode-hover
## 冲突解决 (Resolve conflicts)
- input-box.tsx: 保留 ModeHoverGuide 包裹的模式选择器(PR #26 的 mode-hover-guide)
- message-group.tsx: 保留 getCleanContent / hasCitationsBlock / useParsedCitations
- message-list-item.tsx: 保留 useParsedCitations,移除重复的 MessageLink(使用 CitationAwareLink)
- artifact-file-detail.tsx: 保留 CitationAwareLink、useParsedCitations、contentWithoutCitationsFromParsed
- artifacts.py: 保留 path_utils 与 _extract_citation_urls + remove_citations_block 精简实现
- citations/index.ts: 保留并补充 contentWithoutCitationsFromParsed 导出
- en-US.ts: 保留 Ultra 模式描述 "Reasoning, planning and execution with subagents..."
- zh-CN.ts: 保留「超级」标签,描述保留「思考、计划并执行,可调用子代理分工协作...」

## PR #26 代码改动汇总

### 1. Citations(引用)
- lead_agent prompt: 增加 Web search 与子代理合成时的 citation 提示
- general_purpose: 子代理 system prompt 增加 <citations_format> 说明
- frontend utils: 新增 contentWithoutCitationsFromParsed,removeAllCitations 基于单次解析
- frontend artifact: 使用 contentWithoutCitationsFromParsed(parsed) 避免对同一内容解析两次
- backend artifacts: _extract_citation_urls + remove_citations_block,json 提到顶部

### 2. path_utils(路径解析)
- 新增 backend/src/gateway/path_utils.py:resolve_thread_virtual_path,防 path traversal
- artifacts.py / skills.py:删除内联路径解析,统一使用 path_utils

### 3. Mode hover guide
- input-box: 模式选择器外包 ModeHoverGuide,悬停展示模式说明

### 4. i18n
- en: ultraModeDescription 与 zh: ultraMode / ultraModeDescription 与上游对齐并保留 PR 文案

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-09 13:01:01 +08:00
..
artifacts Merge upstream/experimental and resolve conflicts; citations + path_utils + mode-hover 2026-02-09 13:01:01 +08:00
messages refactor(frontend): simplify and deduplicate Citation-related code 2026-02-09 12:13:06 +08:00
settings fix(frontend): build + remove hover tooltips in step links 2026-02-09 03:42:16 +08:00
code-editor.tsx fix: fix eslint errors and warnings 2026-01-31 21:46:31 +08:00
copy-button.tsx feat: implement i18n 2026-01-20 14:06:47 +08:00
flip-display.tsx feat: re-implement message group 2026-01-18 19:56:07 +08:00
github-icon.tsx feat: implement basic web app 2026-01-15 23:40:21 +08:00
input-box.tsx feat(frontend): add mode hover guide and adjust mode i18n 2026-02-09 12:33:16 +08:00
mode-hover-guide.tsx feat(frontend): add mode hover guide and adjust mode i18n 2026-02-09 12:33:16 +08:00
overscroll.tsx feat: implement basic web app 2026-01-15 23:40:21 +08:00
recent-chat-list.tsx feat: add inline citations and thread management features 2026-01-28 19:15:11 +08:00
streaming-indicator.tsx feat: implement basic web app 2026-01-15 23:40:21 +08:00
thread-title.tsx feat: extract ThreadTitle component 2026-01-17 17:37:12 +08:00
todo-list.tsx feat: show `in-progress` 2026-01-22 11:56:45 +08:00
tooltip.tsx feat: adjust layout and style of tooltip 2026-01-16 19:51:14 +08:00
welcome.tsx feat: make the title golden in Ultra mode 2026-02-09 08:59:40 +08:00
workspace-container.tsx feat: implement i18n 2026-01-20 14:06:47 +08:00
workspace-header.tsx feat: update workspace header to conditionally render title based on environment variable 2026-02-09 09:20:32 +08:00
workspace-nav-chat-list.tsx feat: add main menu 2026-01-22 14:19:54 +08:00
workspace-nav-menu.tsx feat: enhance workspace navigation menu with conditional rendering and mounted state 2026-02-07 11:10:24 +08:00
workspace-sidebar.tsx fix: hide chats when sidebar is not open 2026-01-27 10:41:08 +08:00