Commit Graph

127 Commits

Author SHA1 Message Date
肖应宇 08e8de5e3e fix(workspace): 恢复先删后建并修复新会话初始化时序
- 新会话初始化改为 delete -> create

- 通过初始化就绪门控,确保 history 在创建完成后再加载

- 发送消息前等待初始化完成,避免与初始化并发
2026-04-28 18:34:18 +08:00
肖应宇 1fd7a5d4f7 fix(backend): 修复 replace 标记泄漏到展示层 2026-04-24 18:37:30 +08:00
肖应宇 6853ed71bc refactor(workspace): 将颜色 token 重命名为语义化命名 2026-04-24 18:37:30 +08:00
肖应宇 54ef439226 fix(08): 用主题色替换留存的 white/black 工具颜色, 2026-04-23 10:31:09 +08:00
肖应宇 287d45bb48 feat(08-02): token化 thread page 与 layout/header 颜色
- 将 page/layout/header 中指定硬编码颜色替换为 ws-* token utility
- 将返回箭头 SVG 迁移为 currentColor + token class,移除 hex 颜色字面量
- 通过 Task 1 验收扫描与 guard:colors
2026-04-23 10:25:34 +08:00
肖应宇 170b5484c9 style: lint prettier 2026-04-20 10:34:57 +08:00
肖应宇 9758ae8a3a refactor: 不使用硬编码,而全部使用i18n 2026-04-16 16:00:41 +08:00
肖应宇 12a21808f9 refactor: 预留空位,先删除旧逻辑再重新实现 2026-04-16 11:41:36 +08:00
肖应宇 c4fe34ed23 feat(ui): 宋对ui和输入框placeholder更改 2026-04-16 11:15:20 +08:00
肖应宇 ccfeabc95b style:prettier 2026-04-14 09:49:17 +08:00
肖应宇 f19474a47c feat(route): 前往对话页的按钮 2026-04-14 09:49:17 +08:00
肖应宇 2ab49325da feat:10分钟更换一次slogan 2026-04-14 09:49:17 +08:00
肖应宇 df26d69798 feat(artifact): 禁用自动打开artifact面板的功能 2026-04-14 09:49:17 +08:00
肖应宇 87b73e2b08 fix(frontend): 进入/new预创建会话并强制跳转聊天态 2026-04-14 09:49:17 +08:00
肖应宇 a914c1dc19 fix(frontend): hide history reliably in welcome mode 2026-04-14 09:49:17 +08:00
肖应宇 ce02c40b87 fix(frontend): stabilize thread id when sending messages 2026-04-14 09:49:17 +08:00
肖应宇 f378108fb4 feat: 修改测试标识的位置,并写死会话标题为“来,一起学习工作吧” 2026-04-14 09:49:17 +08:00
肖应宇 0028e142f7 feat: 生成中禁用返回按钮 2026-04-14 09:49:17 +08:00
肖应宇 1243bd0aac fix: 修复新会话重复请求并更新部署脚本默认目标 2026-04-08 16:54:04 +08:00
肖应宇 25111a9b03 fix: 使用is_chatting的使用,is_chatting=true的时候才会显示对话页 2026-04-08 16:54:04 +08:00
肖应宇 f87f185bbd build: 前端构建通过 2026-04-08 13:51:14 +08:00
肖应宇 a8cfe1c42e refactor(frontend): 将会话状态标识从 show_reuse_welcome 重命名为 is_chatting 2026-04-08 11:44:42 +08:00
肖应宇 4e95838f1f refactor(frontend): 将复用欢迎态路由参数统一为 show_reuse_welcome 2026-04-08 10:44:08 +08:00
肖应宇 43471aacd1 feat: 删除不需要的TodoList组件 2026-04-07 16:37:02 +08:00
肖应宇 1606d79bcb fix: 收紧threadId的类型为string,删除无用isNewRoute变量,合并状态判断showInputBox至showWelcomeStyle 2026-04-07 16:08:42 +08:00
肖应宇 7012693802 feat(03): align workspace visual layer with legacy baseline 2026-04-07 14:34:22 +08:00
肖应宇 af21bbd163 feat(02-01): 移除 isnew 路由逻辑并收敛线程单路径
- 新会话仅由 /workspace/chats/new 路由控制

- 删除 isnew 参数分支并同步 iframe 跳转逻辑
2026-04-07 12:53:49 +08:00
肖应宇 b7ccdc0f79 docs(01): research phase domain 2026-04-07 12:05:50 +08:00
Titan 0f607441c8 feat(chats): implement dynamic styling based on xclaw_used parameter 2026-04-05 23:39:44 +08:00
Titan b412b5193b feat(skills): support batch skill bootstrap via content_ids; clear parent dir once before per-skill write 2026-04-05 18:37:55 +08:00
Titan 5de7a2ab46 fix: centralize UUID generation and validate query thread_id for skillBootstrap; ensure single execution and correct thread dir 2026-04-05 18:37:55 +08:00
DanielWalnut 2a150f5d4a
fix: unblock concurrent threads and workspace hydration (#1839)
* fix: unblock concurrent threads and workspace hydration

* fix: restore async title generation

* fix: address PR review feedback

* style: format lead agent prompt
2026-04-04 21:19:35 +08:00
Admire 3d4f9a88fe
Add explicit save action for agent creation (#1798)
* Add explicit save action for agent creation

* Hide internal save prompts and retry agent reads

---------

Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2026-04-03 19:54:42 +08:00
Admire 9735d73b83
fix(ui): avoid follow-up suggestion overlap (#1777)
* fix(ui): avoid follow-up suggestion overlap

* fix(ui): address followup review feedback

---------

Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2026-04-03 15:48:41 +08:00
JeffJiang c1366cf559
Add documents site (#1767)
* feat: add docs site

- Implemented dynamic routing for MDX documentation pages with language support.
- Created layout components for documentation with a header and footer.
- Added metadata for various documentation sections in English and Chinese.
- Developed initial content for the DeerFlow App and Harness documentation.
- Introduced i18n hooks and translations for English and Chinese languages.
- Enhanced header component to include navigation links for documentation and blog.
- Established a structure for tutorials and reference materials.
- Created a new translations file to manage locale-specific strings.

* feat: enhance documentation structure and content for application and harness sections

* feat: update .gitignore to include .playwright-mcp and remove obsolete Playwright YAML file

* fix(docs): correct punctuation and formatting in documentation files

* feat(docs): remove outdated index.mdx file from documentation

* fix(docs): update documentation links and improve Chinese description in index.mdx

* fix(docs): update title in Chinese for meta information in _meta.ts
2026-04-03 07:25:40 +08:00
Admire 0eb6550cf4
fix(frontend): persist model selection per thread (#1553)
* fix(frontend): persist model selection per thread

* fix(frontend): apply thread model override on fallback

* refactor(frontend): split thread settings hook

* fix frontend local storage guards
2026-04-01 23:27:03 +08:00
Rosemary1812 b356a13da5
fix(frontend): improve network error message for agent name check (#1605)
* fix(frontend): distinguish CORS errors   from generic name check failures

* fix(frontend): improve network error message for agent name check

* Fix network error message in zh-CN locale

---------

Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2026-03-31 21:14:05 +08:00
Admire 9e3d484858
fix(frontend): route agent checks to gateway (#1572)
* fix(frontend): route agent checks to gateway

* fix(frontend): proxy langgraph requests locally

* fix(frontend): keep zh-CN text readable

* fix(frontend): add exact local api rewrites

* fix(frontend): support docker-safe internal rewrites

* Update frontend/src/core/agents/api.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-30 21:04:59 +08:00
Admire 9a557751d6
feat: support memory import and export (#1521)
* feat: support memory import and export

* fix(memory): address review feedback

* style: format memory settings page

---------

Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2026-03-30 17:25:47 +08:00
Sleepy Ranx 🌙 866cf4ef73
fix(frontend): prevent submit during IME composition (#1562) 2026-03-29 22:36:38 +08:00
greatmengqi 084dc7e748
ci: enforce code formatting checks for backend and frontend (#1536) 2026-03-29 15:34:38 +08:00
Matt Van Horn b40b05f623
feat(frontend): display token usage per conversation turn (#1229)
Surface the usage_metadata that PR #1218 added to the streaming API.
A compact indicator in the chat header shows cumulative tokens consumed
per thread, with a tooltip breakdown of input/output/total counts.

Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2026-03-24 08:59:35 +08:00
Matt Van Horn 48031e506b
feat(frontend): add Cmd+K command palette and keyboard shortcuts (#1230)
* feat(frontend): add Cmd+K command palette and keyboard shortcuts

Wire up the existing shadcn/ui Command component as a global command
palette. Adds a useGlobalShortcuts hook for Cmd+K (palette), Cmd+Shift+N
(new chat), Cmd+, (settings), and Cmd+/ (shortcuts help overlay).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(frontend): address Copilot review feedback on command palette

- Normalize event.key with toLowerCase() for reliable Shift+key matching
- Replace dead deerflow:open-settings event with router.push navigation
- Use platform-appropriate Shift label (Shift+ on Windows/Linux, glyph on Mac)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2026-03-23 18:35:35 +08:00
Ben Ghorbel Mohamed Aziz 38ace61617
feat(web): add conversation export as Markdown and JSON (#1002)
* feat(web): add conversation export as Markdown and JSON (#976)

Add the ability to export conversations in Markdown and JSON formats,
accessible from both the chat header and the sidebar context menu.

- Add export utility (formatThreadAsMarkdown, formatThreadAsJSON) with
  support for user/assistant messages, thinking blocks, and tool calls
- Add ExportTrigger component in chat header (appears when messages exist)
- Add Export submenu to sidebar dropdown (fetches full thread state on demand)
- Add i18n translations for en-US and zh-CN

Closes #976

Made-with: Cursor

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update thread creation timestamp to updated_at

---------

Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-23 08:21:54 +08:00
Simon Su ceab7fac14
fix: improve MiniMax code plan integration (#1169)
This PR improves MiniMax Code Plan integration in DeerFlow by fixing three issues in the current flow: stream errors were not clearly surfaced in the UI, the frontend could not display the actual provider model ID, and MiniMax reasoning output could leak into final assistant content as inline <think>...</think>. The change adds a MiniMax-specific adapter, exposes real model IDs end-to-end, and adds a frontend fallback for historical messages.
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2026-03-20 17:18:59 +08:00
Ryanba f737fbeae8
fix(frontend): block duplicate sends during uploads (#1165)
* fix(frontend): block duplicate sends during uploads

Expose pre-submit upload work as a busy state so the chat input does not allow a second send while the first attachment is still uploading.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>

* docs(frontend): document upload and stream ownership

Record that thread hooks own upload-before-submit state while the chat page owns composer busy wiring, so future changes do not reintroduce duplicate socket or upload state handling.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>

* fix(frontend): separate upload busy state from streaming

Keep uploads from reusing the streaming stop state so duplicate submits are blocked without turning the composer into a stop button during file uploads.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>

---------

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2026-03-18 15:10:27 +08:00
JeffJiang fdacb1c3a5
fix(chat): update navigation method to prevent state loss during thread remount (#1107) 2026-03-12 14:57:17 +08:00
LofiSu 5d4fd9cf72
fix(frontend): fix new-chat navigation stale state issue (#1077)
- Use router.replace() instead of history.replaceState() so Next.js
  router's internal state is updated on chat start. This ensures
  subsequent "New Chat" clicks are treated as a real cross-route
  navigation (actual-id → "new") rather than a no-op same-path
  navigation, which was causing stale content to persist.

- In ChatLayout, increment the SubtasksProvider key only when
  navigating TO "new" from a non-"new" route. This forces a full
  remount for a fresh new-chat state without remounting when the URL
  transitions from "new" → actual-id (which would interrupt streaming).

Made-with: Cursor

Co-authored-by: DanielWalnut <45447813+hetaoBackend@users.noreply.github.com>
2026-03-11 13:51:51 +08:00
aworki 6ae7f0c0ee
fix: load all thread pages in thread lists (#1044)
* fix(frontend): load all thread pages in thread lists

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-10 23:11:08 +08:00
null4536251 9d2144d431
feat: may_ask (#981)
* feat: u may ask

* chore: adjust code according to CR

* chore: adjust code according to CR

* ut: test for suggestions.py

---------

Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2026-03-06 22:39:58 +08:00