Files
lobehub__lobehub/packages/builtin-tool-claude-code/package.json
Innei fabe719a18 ⚡️ perf(spa): gate the first-screen import graph and shrink it 41% (#19033)
* 👷 ci(perf): gate the first-screen static import graph

Total dist size cannot see a lazy chunk being pulled back into the entry's
sync graph. Walk static imports from each SPA entry, gzip the reachable
chunks, and fail a PR when the total grows past the threshold or a chunk
name that was lazy in the canary baseline now sits on the first-screen path.

Claude-Session: https://claude.ai/code/session_01C2wPWhzukH4pniaLy6vkhD

* ⚡️ perf(spa): keep heavy @lobehub/ui members out of the first-screen chunk

Rolldown assigns chunks by static reachability, so the @lobehub/ui barrel
promoted shiki, katex, elkjs, emoji-mart and @pierre/diffs into the entry
chunk as soon as any lazy route used Markdown, Mermaid or EmojiPicker.
Rewrite the ui barrels to deep imports (same approach as lobeIconImports),
stop the tool store from importing the Claude Code render registry, lazy-load
ProfileSetupModal and the error-page Highlighter, and add a boot-path lint
rule for the known heavy members. Desktop entry graph: 3.84 MB -> 2.26 MB gz.

Claude-Session: https://claude.ai/code/session_01C2wPWhzukH4pniaLy6vkhD

* 🐛 fix(vite): resolve bare barrel specifiers from the @lobehub/ui package itself

The virtual proxy re-exported `ErrorBoundary` from "react-error-boundary",
a dependency of @lobehub/ui that pnpm does not hoist to the app root, so the
auth build failed in CI. Resolve such specifiers with the barrel's real path
as the importer.

Claude-Session: https://claude.ai/code/session_01QP9qfw629JNyNeNCwizuHY

* 👷 ci(perf): run the size gates on feature-branch pushes too

skip-duplicate-actions cancels the pull_request run of same-repo PRs in favour
of the push run, and the push run skipped every gate step, so neither the web
dist gate nor the entry-graph gate ever checked a same-repo PR. Gate on a
SIZE_GATE_ENABLED flag that is true for PRs and for pushes to non-release
branches, and resolve the PR number from the commit when commenting.

Claude-Session: https://claude.ai/code/session_01QP9qfw629JNyNeNCwizuHY
2026-09-02 20:54:05 +08:00

26 lines
617 B
JSON

{
"name": "@lobechat/builtin-tool-claude-code",
"version": "1.0.0",
"private": true,
"exports": {
".": "./src/index.ts",
"./client": "./src/client/index.ts",
"./client/displayControls": "./src/client/Render/displayControls.ts",
"./client/labels": "./src/client/labels.ts"
},
"main": "./src/index.ts",
"dependencies": {
"@lobechat/shared-tool-ui": "workspace:*"
},
"devDependencies": {
"@lobechat/types": "workspace:*"
},
"peerDependencies": {
"@lobehub/ui": "^5",
"antd-style": "*",
"lucide-react": "*",
"path-browserify-esm": "*",
"react": "*"
}
}