Commit Graph

209 Commits

Author SHA1 Message Date
LofiSu
6f968242d6 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
LofiSu
2debcf421c 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
LofiSu
644229f968 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
6b53456b39 feat: add memory settings page 2026-02-03 18:18:56 +08:00
Henry Li
86255511e1 docs: add README.md 2026-02-02 23:24:58 +08:00
Henry Li
e84715831f fix: fix position 2026-02-02 16:40:43 +08:00
Henry Li
018241c203 fix: set default state for todo list collapse to true 2026-02-02 14:46:26 +08:00
Henry Li
6f6d799051 fix: set default state for todo list collapse to false 2026-02-02 14:46:10 +08:00
Henry Li
f4f16bfa5c feat: enhance welcome component and input box with skill mode handling and localization updates 2026-02-02 14:44:23 +08:00
Henry Li
ccf21238af feat: update button in skill settings to include icon 2026-02-02 14:31:44 +08:00
Henry Li
b7c9bf557b feat: update button styling for artifacts tooltip 2026-02-02 11:43:02 +08:00
Henry Li
3067f8dd03 feat: add suggestions 2026-02-02 11:21:30 +08:00
Henry Li
6c0e5fffd0 feat: integrate PromptInputProvider into ChatLayout and utilize prompt input controller in ChatPage 2026-02-02 10:18:02 +08:00
Henry Li
867749d7a3 feat: add file icons 2026-02-02 10:02:31 +08:00
Henry Li
37dcee41c0 feat: add file icon 2026-02-02 09:49:44 +08:00
Henry Li
51b4ed3124 feat: adjust tooltips 2026-02-02 09:32:18 +08:00
Henry Li
6d31c1c5cf feat: wrap path and command in Tooltip for enhanced user experience 2026-02-02 09:23:36 +08:00
Henry Li
a66f76f43d fix: update TooltipContent component to handle sideOffset correctly and add shadow styling 2026-02-02 09:23:24 +08:00
Henry Li
90104291ae docs: add comments 2026-02-02 09:11:05 +08:00
Henry Li
54277b9d9e feat: add skeleton 2026-02-02 09:05:33 +08:00
Henry Li
a0a3a3fc02 feat: dynamic title 2026-02-02 09:05:24 +08:00
Henry Li
b540ad4505 feat: use create skill as title 2026-02-02 08:43:37 +08:00
Henry Li
9b77070406 feat: update skills 2026-02-01 11:12:08 +08:00
Henry Li
ec444e1f8b docs: update artifacts 2026-02-01 11:05:00 +08:00
Henry Li
22ef5fb5ba feat: add new demo 2026-02-01 10:58:27 +08:00
Henry Li
e1ecf62afa feat: add tooltip for installation 2026-02-01 10:55:08 +08:00
Henry Li
f5b1412ac0 fix: add translations 2026-01-31 22:49:59 +08:00
Henry Li
ca83ed00f8 docs: rephrasing 2026-01-31 22:42:17 +08:00
Henry Li
bdd2e25e14 feat: implement create skill 2026-01-31 22:31:25 +08:00
hetaoBackend
06511f38e1 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
a9e11f6341 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
d3ff5f9d3c fix: fix eslint errors and warnings 2026-01-31 21:46:31 +08:00
Henry Li
cf961328a9 feat: preview the message if possible 2026-01-31 20:22:15 +08:00
Henry Li
e858ef0250 fix: fix eslint errors 2026-01-31 11:11:13 +08:00
Henry Li
5295f5b5b9 feat: add notification 2026-01-31 11:08:27 +08:00
Henry Li
835fd4d0c7 feat: change email 2026-01-30 22:32:47 +08:00
Henry Li
c07c0228f6 fix: fix condition of displaying artifacts 2026-01-30 21:51:18 +08:00
Henry Li
c1182c680c feat: support Github Flavored Markdown 2026-01-30 16:41:18 +08:00
Henry Li
7d024326dc chore: remove 2026-01-30 11:01:09 +08:00
Henry Li
4dffad89ca feat: re-arrange icons 2026-01-29 16:17:41 +08:00
Henry Li
a4f749f939 fix: add max width 2026-01-29 16:12:30 +08:00
Henry Li
a135ddfa48 feat: display mode 2026-01-29 15:57:08 +08:00
Henry Li
62ac3b6b03 feat: use "mode" instead of "thinking_enabled" and "is_plan_mode" 2026-01-29 15:48:50 +08:00
Henry Li
4411af68f5 fix: fix renaming 2026-01-29 15:31:56 +08:00
Henry Li
9d889434c4 feat: add placeholder for image 2026-01-29 15:01:18 +08:00
hetao
75801d9817 fix: fix frontend bug 2026-01-29 13:55:30 +08:00
LofiSu
588673d043 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
LofiSu
849cc4d771 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
LofiSu
e2e0fbf114 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