Vendor the rebranded BoosAPI Desktop client (Tauri + Vue) into metapi as a monorepo subdirectory under desktop/. Source only — node_modules, dist, Cargo target and the upstream .git history are excluded. desktop/ keeps its own independent Cargo workspace (desktop/src-tauri with crates/*); it is not part of the backend boosapi crate, so a `cargo check` at the metapi root still compiles only the backend. Build the desktop app from desktop/src-tauri per desktop/README.md. Note: app icons are still placeholder assets pending the final BoosAPI logo. The updater signing keys live outside the repo and are not included.
2.5 KiB
Demo Skill Output
This folder is an isolated demo for the react-markdown-to-markstream-react skill.
The main repository is not a real react-markdown consumer, so this fixture exists to show what a meaningful audit and migration result would look like.
Audit Summary
- Found 2
react-markdowncall sites in this demo fixture. - Classified 1 call site as direct migration and 1 as advanced/plugin-heavy migration.
- Safe direct migrations were applied in
after-basic.tsxandafter-advanced.tsx. - Manual review is still required for HTML policy and element allowlisting.
Call Sites
| File | Classification | Why |
|---|---|---|
before-basic.tsx |
direct | Plain <Markdown>{markdown}</Markdown> usage |
before-advanced.tsx |
renderer-custom + plugin-heavy + security-heavy | Uses components, remark-gfm, rehype-raw, allowedElements, and urlTransform |
Direct Mappings Applied
react-markdown usage |
markstream-react migration |
|---|---|
children |
content |
components.h1 |
setCustomComponents('migration-demo', { heading }) with node.level |
components.a |
custom link renderer |
components.code |
custom code_block renderer with MarkdownCodeBlockNode |
urlTransform |
link rewrite logic moved into the custom link renderer |
Manual Review Items
rehypeRaw
markstream-react does not expose a public rehype stage.
If the old app relied on rehypeRaw for standard HTML rendering, verify the new HTML behavior.
If it relied on trusted custom tags, prefer customHtmlTags plus setCustomComponents.
allowedElements
There is no direct allowedElements prop in markstream-react.
If exact allowlisting still matters, filter the parsed node tree before rendering.
Security parity
The new renderer sanitizes blocked tags, dangerous event-handler attributes, and unsafe URLs in built-in HTML renderers, but it is still not a byte-for-byte replacement for a repo-specific rehype sanitization stack.
Suggested User-Facing Skill Result
- Replace
react-markdownwithmarkstream-reactfor direct call sites first. - Convert HTML-tag-based
componentsoverrides into node-type-basedsetCustomComponents. - Remove
remark-gfmonly after checking rendered tables, task lists, and other edge cases. - Revisit any
rehype-based HTML and security logic before claiming migration completeness. - Adopt
nodes+parseMarkdownToStructurelater only if the app actually needs streaming updates.