Commit Graph

25 Commits

Author SHA1 Message Date
LofiSu e4eb4a65cf 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 a122f76e36 feat: add animations 2026-02-07 10:30:35 +08:00
LofiSu 49f7cf1662 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
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 3067f8dd03 feat: add suggestions 2026-02-02 11:21:30 +08:00
Henry Li 867749d7a3 feat: add file icons 2026-02-02 10:02:31 +08:00
Henry Li a4f749f939 fix: add max width 2026-01-29 16:12:30 +08:00
Henry Li 28361ca03c feat: add scroll indicator 2026-01-27 13:15:49 +08:00
Henry Li cd63f41b4c feat: support static website 2026-01-24 18:01:27 +08:00
Henry Li 7d4d706738 feat: put all options into '+' 2026-01-22 13:43:45 +08:00
Henry Li 1e4e51a80c feat: add Todos 2026-01-22 00:26:11 +08:00
Henry Li 11c562eb98 refactor: move 2026-01-21 10:46:43 +08:00
Henry Li 48742d1b59 feat: add code editor 2026-01-21 09:33:33 +08:00
Henry Li 7c6eb4cc8b feat: enlarge shadow 2026-01-21 08:52:30 +08:00
Henry Li b8f9678d07 feat: use code block to display bash commands 2026-01-19 21:59:23 +08:00
Henry Li 69b225082b feat: re-implement message group 2026-01-18 19:56:07 +08:00
Henry Li dd80348b76 feat: support SSE write_file(0 2026-01-18 17:13:15 +08:00
Henry Li 92fc19a3aa feat: remove model icon 2026-01-18 09:55:17 +08:00
Henry Li f1c6991194 feat: integrated with artifacts in states 2026-01-17 17:21:37 +08:00
Henry Li 9d1cf89532 chore: remove unused components 2026-01-17 10:09:43 +08:00
Henry Li 61499624a0 feat: adjust message group layout 2026-01-15 23:56:42 +08:00
Henry Li c3cb4c348d feat: remove max-w- 2026-01-15 23:47:28 +08:00
Henry Li 9f2b94ed52 feat: implement basic web app 2026-01-15 23:40:21 +08:00
Henry Li c628c7f8db chore: create frontend project from boilerplate 2026-01-14 09:50:26 +08:00