Commit Graph

134 Commits

Author SHA1 Message Date
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
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
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
56fda834e7 feat: support Github Flavored Markdown 2026-01-30 16:41:18 +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
ed039ef080 feat: add placeholder for image 2026-01-29 15:01:18 +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
7b79384551 feat: refine citations format and improve content presentation
Backend:
- Simplify citations prompt format and rules
- Add clear distinction between chat responses and file content
- Enforce full URL usage in markdown links, prohibit [cite-1] format
- Require content-first approach: write full content, then add citations at end

Frontend:
- Hide <citations> block in both chat messages and markdown preview
- Remove top-level Citations/Sources list for cleaner UI
- Auto-remove <citations> block in code editor view for markdown files
- Keep inline citation hover cards for reference details

This ensures citations are presented like Claude: clean content with inline reference badges.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-29 12:29:13 +08:00
Henry Li
6b030d7589 feat: add tooltips 2026-01-29 09:23:06 +08:00
Henry Li
c700bd6841 feat: enhance search_image 2026-01-29 09:19:43 +08:00
Henry Li
8359d842b5 feat: support image_search 2026-01-29 08:59:55 +08:00
hetaoBackend
d4bfed271b feat: display ask_clarification tool messages directly in frontend
Simplify clarification message handling by having the frontend detect and
display ask_clarification tool messages directly, instead of relying on
backend to add an extra AIMessage.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 01:25:31 +08:00
ruitanglin
d1bb955a3f feat: add inline citations and thread management features
Citations:
- Add citations parsing utilities for extracting source references from AI responses
- Render inline citations as hover card badges in message content
- Display citation cards with title, URL, and description on hover
- Add citation badge rendering in artifact markdown preview
- Update prompt to guide AI to output citations in correct format

Thread Management:
- Add rename functionality for chat threads with dialog UI
- Add share functionality to copy thread link to clipboard
- Share links use Vercel URL for production accessibility
- Add useRenameThread hook for thread title updates

i18n:
- Add translations for rename, share, cancel, save, and linkCopied

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-28 19:15:11 +08:00
Henry Li
dab4093103 feat: fallback to textarea when loading 2026-01-28 10:13:17 +08:00
Henry Li
28361ca03c feat: add scroll indicator 2026-01-27 13:15:49 +08:00
Henry Li
ed31dc6aab fix: hide chats when sidebar is not open 2026-01-27 10:41:08 +08:00
Henry Li
cc1fe4e50e fix: eslint 2026-01-27 10:39:44 +08:00
Henry Li
eca2b139cc fix: bugfix 2026-01-27 09:50:42 +08:00
Henry Li
3ce4968e95 feat: auto select the first model as default model 2026-01-26 17:13:34 +08:00
Henry Li
f629e134d4 feat: adjust button 2026-01-25 22:10:50 +08:00
Henry Li
598fed797f fix: many minor fixes 2026-01-25 21:57:57 +08:00
Henry Li
87200d1ad1 feat: update translations 2026-01-25 11:54:49 +08:00
Henry Li
78bba47769 feat: add Titanic ADA demo 2026-01-25 00:35:42 +08:00
Henry Li
3ac6e58d4f fix: remove tooltip 2026-01-25 00:06:49 +08:00
Henry Li
a83e5e238d feat: auto expand in demo mode 2026-01-24 23:51:11 +08:00