Commit Graph

211 Commits

Author SHA1 Message Date
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
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
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
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
Henry Li 67451df910 feat: update button in skill settings to include icon 2026-02-02 14:31:44 +08:00
Henry Li 44daeaf37d feat: update button styling for artifacts tooltip 2026-02-02 11:43:02 +08:00
Henry Li 154fbb0ba3 feat: add suggestions 2026-02-02 11:21:30 +08:00
Henry Li f287022ac0 feat: integrate PromptInputProvider into ChatLayout and utilize prompt input controller in ChatPage 2026-02-02 10:18:02 +08:00
Henry Li c587460dbc feat: add file icons 2026-02-02 10:02:31 +08:00
Henry Li 8bb4c35416 feat: add file icon 2026-02-02 09:49:44 +08:00
Henry Li 7274f9a6ae feat: adjust tooltips 2026-02-02 09:32:18 +08:00
Henry Li cb494fe4df feat: wrap path and command in Tooltip for enhanced user experience 2026-02-02 09:23:36 +08:00
Henry Li ccab24983e fix: update TooltipContent component to handle sideOffset correctly and add shadow styling 2026-02-02 09:23:24 +08:00
Henry Li 68df848b82 docs: add comments 2026-02-02 09:11:05 +08:00
Henry Li b797ef8168 feat: add skeleton 2026-02-02 09:05:33 +08:00
Henry Li be65130a06 feat: dynamic title 2026-02-02 09:05:24 +08:00
Henry Li dc1190b228 feat: use `create skill` as title 2026-02-02 08:43:37 +08:00
Henry Li 7e11f28d55 feat: update skills 2026-02-01 11:12:08 +08:00
Henry Li 37e9810191 docs: update artifacts 2026-02-01 11:05:00 +08:00
Henry Li d131a497d7 feat: add new demo 2026-02-01 10:58:27 +08:00
Henry Li 4721f1a890 feat: add tooltip for installation 2026-02-01 10:55:08 +08:00
Henry Li 8a2fb353c6 fix: add translations 2026-01-31 22:49:59 +08:00
Henry Li f3d7fea9ce docs: rephrasing 2026-01-31 22:42:17 +08:00
Henry Li 8639dde3ad feat: implement create skill 2026-01-31 22:31:25 +08:00
hetaoBackend f31258dd10 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 624f758163 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 718bb947d0 fix: fix eslint errors and warnings 2026-01-31 21:46:31 +08:00
Henry Li 20a023ee90 feat: preview the message if possible 2026-01-31 20:22:15 +08:00
Henry Li b8281be892 fix: fix eslint errors 2026-01-31 11:11:13 +08:00
Henry Li 47fe2f8195 feat: add notification 2026-01-31 11:08:27 +08:00
Henry Li cb660c2643 feat: change email 2026-01-30 22:32:47 +08:00
Henry Li 697f094ba9 fix: fix condition of displaying artifacts 2026-01-30 21:51:18 +08:00
Henry Li 618b3e1e8f feat: support Github Flavored Markdown 2026-01-30 16:41:18 +08:00
Henry Li 3339e70c25 chore: remove 2026-01-30 11:01:09 +08:00
Henry Li cbcbbbe0a8 feat: re-arrange icons 2026-01-29 16:17:41 +08:00
Henry Li c265f5410d fix: add max width 2026-01-29 16:12:30 +08:00
Henry Li 86ed750a38 feat: display mode 2026-01-29 15:57:08 +08:00
Henry Li 7bf15cb777 feat: use "mode" instead of "thinking_enabled" and "is_plan_mode" 2026-01-29 15:48:50 +08:00
Henry Li caf469d2ab fix: fix renaming 2026-01-29 15:31:56 +08:00
Henry Li 4fc54a7408 feat: add placeholder for image 2026-01-29 15:01:18 +08:00
hetao 2c6dbbe065 fix: fix frontend bug 2026-01-29 13:55:30 +08:00
ruitanglin ac283b92aa merge: upstream/experimental with citations feature
- Merge upstream changes including image search, tooltips, and UI improvements
- Keep citations feature with inline hover cards
- Resolve conflict in message-list-item.tsx: use upstream img max-width (90%) while preserving citations logic
- Maintain file upload improvements with citations support

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-29 12:55:43 +08:00
ruitanglin ce9731c10a feat: improve file upload message handling and UI
Backend:
- Handle both string and list format for message content in uploads middleware
- Extract text content from structured message blocks
- Add logging for debugging file upload flow

Frontend:
- Separate file display from message bubble for human messages
- Show uploaded files outside the message bubble for cleaner layout
- Improve file card border styling with subtle border color
- Add debug logging for message submission with files

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-29 12:51:21 +08:00