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
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
Henry Li
e5a2e5a0b1
feat: add memory settings page
2026-02-03 18:18:56 +08:00
Henry Li
73ba7be53b
docs: add README.md
2026-02-02 23:24:58 +08:00
Henry Li
c543ab31d4
fix: fix position
2026-02-02 16:40:43 +08:00
Henry Li
2de3ab8f66
fix: set default state for todo list collapse to true
2026-02-02 14:46:26 +08:00
Henry Li
5abba4edf0
fix: set default state for todo list collapse to false
2026-02-02 14:46:10 +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
11041fa86c
feat: update button styling for artifacts tooltip
2026-02-02 11:43:02 +08:00
Henry Li
fcf735a69e
feat: add suggestions
2026-02-02 11:21:30 +08:00
Henry Li
7bd1055f63
feat: integrate PromptInputProvider into ChatLayout and utilize prompt input controller in ChatPage
2026-02-02 10:18:02 +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
63b79b4134
feat: dynamic title
2026-02-02 09:05:24 +08:00
Henry Li
3716f2d014
feat: use `create skill` as title
2026-02-02 08:43:37 +08:00
Henry Li
38fb4384e7
feat: update skills
2026-02-01 11:12:08 +08:00
Henry Li
ecedfd3ac4
docs: update artifacts
2026-02-01 11:05:00 +08:00
Henry Li
c286fcf7a0
feat: add new demo
2026-02-01 10:58:27 +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
b328de7dd5
docs: rephrasing
2026-01-31 22:42:17 +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
Henry Li
9e44292c23
feat: preview the message if possible
2026-01-31 20:22:15 +08:00
Henry Li
ec7204482a
fix: fix eslint errors
2026-01-31 11:11:13 +08:00
Henry Li
d59d62bd44
feat: add notification
2026-01-31 11:08:27 +08:00
Henry Li
95f9f4122d
feat: change email
2026-01-30 22:32:47 +08:00
Henry Li
991cf47f4b
fix: fix condition of displaying artifacts
2026-01-30 21:51:18 +08:00
Henry Li
56fda834e7
feat: support Github Flavored Markdown
2026-01-30 16:41:18 +08:00
Henry Li
12f69ef60b
chore: remove
2026-01-30 11:01:09 +08:00
Henry Li
e19fadc5a8
feat: re-arrange icons
2026-01-29 16:17:41 +08:00
Henry Li
198ab520ff
fix: add max width
2026-01-29 16:12:30 +08:00
Henry Li
b349d6d011
feat: display mode
2026-01-29 15:57:08 +08:00
Henry Li
af9707daea
feat: use "mode" instead of "thinking_enabled" and "is_plan_mode"
2026-01-29 15:48:50 +08:00
Henry Li
022bb71f28
fix: fix renaming
2026-01-29 15:31:56 +08:00
Henry Li
ed039ef080
feat: add placeholder for image
2026-01-29 15:01:18 +08:00
hetao
a2cc0501ff
fix: fix frontend bug
2026-01-29 13:55:30 +08:00
ruitanglin
d3dfa62b6c
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
b3b97953e2
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
Henry Li
eff241f9f2
feat: enable images in content
2026-01-29 12:51:04 +08:00
ruitanglin
b11e0054c5
fix: hide incomplete citations block during streaming
...
Improve UX by hiding citations block while it's being streamed:
- Remove complete citations blocks (existing logic)
- Also remove incomplete citations blocks during streaming
- Prevents flickering of raw citations XML in the UI
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-29 12:50:09 +08:00