Will Chen 1ce399584e Use specific languages for shiki (#1938)
<!-- CURSOR_SUMMARY -->
> [!NOTE]
> Refactors code highlighting to use react-shiki/core with a singleton
highlighter and preloaded langs/themes, adds a fallback renderer, bumps
react-shiki, and adds tests for message summarization.
> 
> - **Frontend**
> - **CodeHighlight** (`src/components/chat/CodeHighlight.tsx`): Replace
`useShikiHighlighter` with `ShikiHighlighter` from `react-shiki/core`
using a singleton `createHighlighterCore` and JS regex engine; preload
common languages and GitHub light/dark themes; add `<pre><code>`
fallback while loading.
> - **Tests**
> - Add/expand Vitest suite for `formatMessagesForSummary`
(`src/__tests__/formatMessagesForSummary.test.ts`): covers truncation,
ordering, special chars, undefined content, and edge cases.
> - **Dependencies**
>   - Upgrade `react-shiki` to `^0.9.0` in `package.json`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
b32d224cd21d3c76e77799f2995905e523406bf9. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->





<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Preloaded a specific set of Shiki languages and themes using react-shiki
core, and updated CodeHighlight to use a singleton highlighter. This
reduces bundle size and stabilizes code rendering with a simple fallback
while loading.

- **Refactors**
- Switched to react-shiki/core with ShikiHighlighter and a singleton
highlighter.
- Preloaded common languages
(js/ts/jsx/tsx/html/css/json/markdown/python/etc.) and GitHub light/dark
themes.
- Used the JavaScript regex engine and added a plain <pre><code>
fallback until the highlighter is ready.

- **Dependencies**
  - Upgraded react-shiki to ^0.9.0.

<sup>Written for commit b32d224cd21d3c76e77799f2995905e523406bf9.
Summary will update automatically on new commits.</sup>

<!-- End of auto-generated description by cubic. -->
2025-12-11 23:06:04 -08:00
2025-09-16 22:51:46 -07:00
2025-08-22 22:51:16 -07:00
2025-06-11 13:05:27 -07:00
2025-07-23 21:02:43 -07:00
2025-12-04 23:00:28 -08:00
2025-04-14 23:56:11 -07:00
2025-12-09 13:09:19 -08:00
2025-04-11 09:38:16 -07:00
2025-04-11 09:38:16 -07:00
2025-10-28 11:36:20 -07:00
2025-05-06 23:02:28 -07:00
2025-10-30 11:27:31 -07:00
2025-05-06 23:02:28 -07:00
2025-04-11 10:21:05 -07:00
2025-04-11 09:38:16 -07:00
2025-05-27 15:59:13 -07:00
2025-10-28 11:36:20 -07:00
2025-08-14 13:48:27 -07:00
2025-04-11 09:38:16 -07:00
2025-04-11 09:38:16 -07:00
2025-12-11 16:54:45 -08:00
2025-04-11 09:38:16 -07:00

Dyad

Dyad is a local, open-source AI app builder. It's fast, private, and fully under your control — like Lovable, v0, or Bolt, but running right on your machine.

Image

More info at: https://dyad.sh/

🚀 Features

  • Local: Fast, private and no lock-in.
  • 🛠 Bring your own keys: Use your own AI API keys — no vendor lock-in.
  • 🖥️ Cross-platform: Easy to run on Mac or Windows.

📦 Download

No sign-up required. Just download and go.

👉 Download for your platform

🤝 Community

Join our growing community of AI app builders on Reddit: r/dyadbuilders - share your projects and get help from the community!

🛠️ Contributing

Dyad is open-source (Apache 2.0 licensed).

If you're interested in contributing to dyad, please read our contributing doc.

License

Description
No description provided
Readme Apache-2.0 30 MiB
Languages
TypeScript 97.6%
JavaScript 1.4%
CSS 0.5%
Shell 0.4%