Commit Graph

250 Commits

Author SHA1 Message Date
Henry Li
fd4f6c679a feat: update workspace header to conditionally render title based on environment variable 2026-02-09 09:20:32 +08:00
Henry Li
189fcab4c5 feat: make it golden 2026-02-09 09:15:39 +08:00
Henry Li
db79ab27f4 feat: make the title golden in Ultra mode 2026-02-09 08:59:40 +08:00
Henry Li
143f9f1f4d feat: add mode in welcome 2026-02-09 00:41:25 +08:00
Henry Li
9da3a1dcb2 feat: set golden color for ultra 2026-02-09 00:30:20 +08:00
Henry Li
a4e1e1a95e feat: rewording 2026-02-08 23:44:36 +08:00
Henry Li
d36fbcdfc1 feat: add special effect for Ultra mode 2026-02-08 23:22:51 +08:00
Henry Li
7ed1be32fd feat: add realtime subagent status report 2026-02-08 22:43:51 +08:00
Henry Li
2b3dc96e40 feat: rewording and add initial animation 2026-02-08 21:24:17 +08:00
Henry Li
4f9150229c refactor: optimize task handling in message list 2026-02-07 18:42:24 +08:00
Henry Li
01aa035905 feat: add ambilight 2026-02-07 18:42:08 +08:00
Henry Li
99e8f22d1d feat: add handling for task timeout and enhance Streamdown plugin for word animation 2026-02-07 18:06:22 +08:00
Henry Li
dce82c1db4 feat: adjust position 2026-02-07 18:00:24 +08:00
Henry Li
2510991698 fix: adjust suggestion positioning and height for improved UI layout 2026-02-07 17:56:06 +08:00
Henry Li
a016332a37 feat: support subtasks 2026-02-07 16:14:48 +08:00
LofiSu
afb7a36739 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
4ac637a0eb feat: enhance workspace navigation menu with conditional rendering and mounted state 2026-02-07 11:10:24 +08:00
Henry Li
a2af464a6f feat: add animations 2026-02-07 10:30:35 +08:00
ruitanglin
2331c67446 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
8f1a42a8e0 fix: fix markdown table 2026-02-06 22:00:55 +08:00
Henry Li
537687c2c5 Merge pull request #24 from LofiSu/fix/upload-files-alignment
fix: 修复用户消息中上传文件的右对齐显示
2026-02-06 21:53:01 +08:00
hetao
172813720a feat: send custom event 2026-02-06 17:48:15 +08:00
hetao
926c322c36 feat: add ultra mode 2026-02-06 17:48:14 +08:00
ruitanglin
ca6bcaa31c 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
666b747b8a 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
697c683dfa 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
579dccbdce 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
365e3f4304 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
44742c6353 feat: add 'about' page 2026-02-06 15:18:37 +08:00
Henry Li
dd4a7aae36 docs: rewording 2026-02-06 15:18:19 +08:00
ruitanglin
1ce154fa71 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
acbf2fb453 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
Henry Li
a711c5f310 docs: add CLAUDE.md 2026-02-06 14:40:52 +08:00
Henry Li
5b33a62f05 docs: add AGENTS.md 2026-02-06 14:32:48 +08:00
ruitanglin
c8c4d2fc95 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
1b0c016093 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
765e35fc70 feat: update surprise-me functionality with localization support 2026-02-06 14:21:03 +08:00
Henry Li
26e078df7d feat: add surprise-me 2026-02-06 14:04:15 +08:00
Henry Li
254efe7391 feat: adjust position 2026-02-06 09:39:20 +08:00
Henry Li
c31175defd feat: remove demo 2026-02-05 09:46:05 +08:00
ruitanglin
f6e625ec3b 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
c67f1af889 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
hetao
d670cc0ab1 fix: fix frontend rendering issue 2026-02-03 19:38:10 +08:00
ruitanglin
1fac83eafa fix: 修复用户消息中上传文件的右对齐显示
在 UploadedFilesList 组件中添加 justify-end 类,确保上传的文件卡片在用户消息中保持右对齐显示,与消息气泡对齐一致。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-03 19:13:17 +08:00
Henry Li
94acb15c0c feat: add memory settings page 2026-02-03 18:18:56 +08:00
Henry Li
0baa8a733a docs: add README.md 2026-02-02 23:24:58 +08:00
Henry Li
03f84f2b76 fix: fix position 2026-02-02 16:40:43 +08:00
Henry Li
35c5b6ba6b fix: set default state for todo list collapse to true 2026-02-02 14:46:26 +08:00
Henry Li
a745b824d5 fix: set default state for todo list collapse to false 2026-02-02 14:46:10 +08:00
Henry Li
010eadecca feat: enhance welcome component and input box with skill mode handling and localization updates 2026-02-02 14:44:23 +08:00