Commit Graph

163 Commits

Author SHA1 Message Date
Henry Li
775e420524 feat: add realtime subagent status report 2026-02-08 22:43:51 +08:00
Henry Li
245c234641 feat: rewording and add initial animation 2026-02-08 21:24:17 +08:00
Henry Li
9f9a31a328 refactor: optimize task handling in message list 2026-02-07 18:42:24 +08:00
Henry Li
2f00eeb946 feat: add handling for task timeout and enhance Streamdown plugin for word animation 2026-02-07 18:06:22 +08:00
Henry Li
cc80201989 feat: adjust position 2026-02-07 18:00:24 +08:00
Henry Li
3fb3f782da fix: adjust suggestion positioning and height for improved UI layout 2026-02-07 17:56:06 +08:00
Henry Li
45f4e2fe29 feat: support subtasks 2026-02-07 16:14:48 +08:00
LofiSu
0e5f807578 Merge pull request #25 from LofiSu/feat/citations
feat(citations): add shared citation components and optimize code
2026-02-07 12:13:32 +08:00
Henry Li
0303a05f40 feat: enhance workspace navigation menu with conditional rendering and mounted state 2026-02-07 11:10:24 +08:00
Henry Li
6544bf99b7 feat: add animations 2026-02-07 10:30:35 +08:00
ruitanglin
bddff9c1d7 Merge upstream/experimental into feat/citations
Resolved conflicts:
- backend/src/gateway/routers/artifacts.py: Keep citations block removal for markdown downloads
- frontend/src/components/workspace/messages/message-list-item.tsx: Keep improved citation handling with rehypePlugins, humanMessagePlugins, and CitationsLoadingIndicator

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 00:53:16 +08:00
Henry Li
bda6ae9e8e fix: fix markdown table 2026-02-06 22:00:55 +08:00
Henry Li
09c0b6d50c Merge pull request #24 from LofiSu/fix/upload-files-alignment
fix: 修复用户消息中上传文件的右对齐显示
2026-02-06 21:53:01 +08:00
hetao
e850adfcd6 feat: send custom event 2026-02-06 17:48:15 +08:00
hetao
5a6fad333d feat: add ultra mode 2026-02-06 17:48:14 +08:00
ruitanglin
2053378f0e fix(citations): hide citations block in reasoning/thinking content
The reasoning content in message-group.tsx was not being processed
through parseCitations, causing raw <citations> blocks to be visible.
Now reasoning content is parsed to remove citations blocks.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 16:12:43 +08:00
ruitanglin
18db95a1c8 fix(citations): only citation links in citationMap render as badges
Revert streaming logic - only links that are actually in citationMap
should render as badges. This prevents project URLs and other regular
links from being incorrectly rendered as citation badges.

During streaming, links may initially appear as plain links until the
citations block is fully parsed, then they will update to badge style.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 16:10:29 +08:00
ruitanglin
0682ac351d fix(citations): render external links as badges during streaming
During streaming when citations are still loading (isLoadingCitations=true),
all external links should be rendered as badges since we don't know yet
which links are citations. After streaming completes, only links in
citationMap are rendered as badges.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 16:09:03 +08:00
ruitanglin
6e4a7f4f6c fix(citations): parse citations in reasoning content
When only reasoning content exists (no main content), the citations
block was not being parsed and removed. Now reasoning content also
goes through parseCitations to hide the raw citations block.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 16:04:49 +08:00
ruitanglin
97f16ff73a fix(artifacts): only render citation badges for links in citationMap
Same fix as message-list-item: project URLs and regular links in
artifact file preview should be rendered as plain links, not badges.
Only actual citations (in citationMap) should be rendered as badges.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 15:55:53 +08:00
Henry Li
8dffd6844e feat: add 'about' page 2026-02-06 15:18:37 +08:00
Henry Li
e04055bb85 docs: rewording 2026-02-06 15:18:19 +08:00
ruitanglin
db76ea8914 fix(citations): only render citation badges for links in citationMap
Project URLs and regular links should be rendered as plain underlined
links, not as citation badges. Only links that are actual citations
(present in citationMap) should be rendered as badges.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 15:15:45 +08:00
ruitanglin
7e19c1b209 fix(citations): use markdown link text as fallback for display
When citation data is not available, use the markdown link text
(children) as display text instead of just the domain. This ensures
that links like [OpenJudge](github.com/...) show 'OpenJudge' instead
of just 'github.com'.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 15:06:51 +08:00
ruitanglin
db3063fd0b fix(messages): prevent URL autolink bleeding into adjacent text
For human messages, disable remark-gfm autolink feature to prevent
URLs from incorrectly including adjacent text (especially Chinese
characters) as part of the link. This ensures that when users input
"https://example.com 帮我分析", only the URL becomes a link.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 14:30:57 +08:00
ruitanglin
92541152d0 fix(citations): only render CitationLink badges for AI messages
Human messages should display links as plain underlined text,
not as citation badges. This preserves the original user input
appearance when users paste URLs in their messages.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 14:28:28 +08:00
Henry Li
ba35938e79 feat: update surprise-me functionality with localization support 2026-02-06 14:21:03 +08:00
Henry Li
d9dc2c3e22 feat: add surprise-me 2026-02-06 14:04:15 +08:00
Henry Li
040d837734 feat: remove demo 2026-02-05 09:46:05 +08:00
ruitanglin
009dcb7e37 fix(citations): improve citation link rendering and copy behavior
- Use citation.title for display text in CitationLink to ensure correct
  titles show during streaming (instead of generic "Source" text)
- Render all external links as CitationLink badges for consistent styling
  during streaming output
- Add removeAllCitations when copying message content to clipboard
- Simplify citations_format prompt for cleaner AI output

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-04 16:34:12 +08:00
ruitanglin
e49bd179a7 feat(citations): add shared citation components and optimize code
## New Features
- Add `CitationLink` shared component for rendering citation hover cards
- Add `CitationsLoadingIndicator` component for showing loading state
- Add `removeAllCitations` utility to strip all citations from content
- Add backend support for removing citations when downloading markdown files
- Add i18n support for citation loading messages (en-US, zh-CN)

## Code Optimizations
- Remove duplicate `ExternalLinkBadge` component, reuse `CitationLink` instead
- Consolidate `remarkPlugins` config in `streamdownPlugins` to avoid duplication
- Remove unused imports: `Citation`, `buildCitationMap`, `extractDomainFromUrl`, etc.
- Remove unused `messages` parameter from `ToolCall` component
- Remove unused `isWriteFile` parameter from `ArtifactFilePreview` component
- Remove unused `useI18n` hook from `MessageContent` component

## Bug Fixes
- Fix `remarkGfm` plugin configuration that prevented table rendering
- Fix React Hooks rule violation: move `useMemo` to component top level
- Replace `||` with `??` for nullish coalescing in clipboard data

## Code Cleanup
- Remove debug console.log/info statements from:
  - `threads/hooks.ts`
  - `notification/hooks.ts`
  - `memory-settings-page.tsx`
- Fix import order in `message-group.tsx`

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-04 11:56:10 +08:00
ruitanglin
33b2e0f949 fix: 修复用户消息中上传文件的右对齐显示
在 UploadedFilesList 组件中添加 justify-end 类,确保上传的文件卡片在用户消息中保持右对齐显示,与消息气泡对齐一致。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-03 19:13:17 +08:00
Henry Li
e5a2e5a0b1 feat: add memory settings page 2026-02-03 18:18:56 +08:00
Henry Li
599c855742 feat: enhance welcome component and input box with skill mode handling and localization updates 2026-02-02 14:44:23 +08:00
Henry Li
3fa7143cc1 feat: update button in skill settings to include icon 2026-02-02 14:31:44 +08:00
Henry Li
fcf735a69e feat: add suggestions 2026-02-02 11:21:30 +08:00
Henry Li
7f6e4e9a39 feat: add file icons 2026-02-02 10:02:31 +08:00
Henry Li
9a5373280b feat: add file icon 2026-02-02 09:49:44 +08:00
Henry Li
16949f3f33 feat: adjust tooltips 2026-02-02 09:32:18 +08:00
Henry Li
1a1dcdb59e feat: wrap path and command in Tooltip for enhanced user experience 2026-02-02 09:23:36 +08:00
Henry Li
75f7c3f5ed fix: update TooltipContent component to handle sideOffset correctly and add shadow styling 2026-02-02 09:23:24 +08:00
Henry Li
20a1703bc3 docs: add comments 2026-02-02 09:11:05 +08:00
Henry Li
332c4aaf6b feat: add skeleton 2026-02-02 09:05:33 +08:00
Henry Li
3716f2d014 feat: use create skill as title 2026-02-02 08:43:37 +08:00
Henry Li
36aa9d45b4 feat: add tooltip for installation 2026-02-01 10:55:08 +08:00
Henry Li
bd8aae0513 fix: add translations 2026-01-31 22:49:59 +08:00
Henry Li
5c5ab140e3 feat: implement create skill 2026-01-31 22:31:25 +08:00
hetaoBackend
db8ad945fe feat: add .skill file preview support
Enable previewing .skill files (ZIP archives) by extracting and displaying
their SKILL.md content. Add caching to avoid repeated ZIP extraction.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 22:27:06 +08:00
hetaoBackend
d80c8be5dd feat: add skill installation API endpoint
Add POST /api/skills/install endpoint to install .skill files from
thread's user-data directory. The endpoint extracts the ZIP archive,
validates SKILL.md frontmatter, and installs to skills/custom/.

Frontend Install buttons now call the API instead of downloading.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 22:10:05 +08:00
Henry Li
969d4e1bb8 fix: fix eslint errors and warnings 2026-01-31 21:46:31 +08:00