文件最后提交记录最后更新时间
💄 style: share branded inspector between CC MCP and built-in Linear skill (#14884) * ✨ feat(linear): share branded inspector between CC MCP and built-in Linear skill The Linear-branded inspector (logomark + action chip + parentId badge) was only registered against `mcp__claude_ai_Linear__*` tool names emitted by the CC adapter. LobeHub's own built-in Linear skill calls land with `identifier='linear'` and bare apiNames (`get_issue`, `save_issue`, …), so they fell through to the generic Title + JSON inspector despite being the exact same Linear surface. Moves the inspector + label utilities out of `builtin-tool-claude-code` into `packages/builtin-tools/src/linear/` (alongside `github/`) and registers them twice in the central inspector map: once under `LinearIdentifier = 'linear'` for the built-in skill path, once merged into the CC entry for the MCP-prefixed wire names. Same component, same look in both cases. `formatLinearShortLabel` now matches bare apiNames against the known tool list too, so the collapsed workflow summary reads `Linear · Get issue` for built-in calls as well — previously only CC got the humanized label. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * ♻️ refactor(linear): leave CC's LinearMcp inspector inside CC, only ship the built-in skill side Walks back the cross-package edits from the previous commit. The CC adapter keeps its own `LinearMcp.tsx` + `linearMcpLabels.ts` exactly as #14864 left them — `formatLinearMcpShortLabel` is still exported from `@lobechat/builtin-tool-claude-code/client/labels` and `toolDisplayNames.ts` still imports it from there. CC's inspector index continues to spread `LinearMcpInspectors` into its own map. The new shared module under `packages/builtin-tools/src/linear/` now only covers the built-in LobeHub Linear skill path: `LinearIdentifier='linear'` + bare apiNames (`get_issue`, `save_issue`, …). The inspector component is duplicated from CC on purpose — `builtin-tools` already depends on `builtin-tool-claude-code`, so we can't import the other way without a circular dep, and the user wants the CC code to stay put. Drops the `LinearMcpInspectors` re-export and the CC-entry merge in `inspectors.ts` that the previous commit had introduced. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * ♻️ refactor(linear): hoist shared LinearInspector + label utilities into shared-tool-ui The Linear-branded inspector and its tool-name parsing helpers were duplicated between `builtin-tool-claude-code/src/client/Inspector/LinearMcp` (MCP-prefixed wire names) and `builtin-tools/src/linear/` (built-in skill bare names). The dep graph (`builtin-tools` → `builtin-tool-claude-code` → `shared-tool-ui`) means CC can't import from `builtin-tools`, so the previous round kept two copies. Moves the component + labels into `packages/shared-tool-ui/src/Inspector/ Linear/` — both CC and `builtin-tools` already depend on `shared-tool-ui`, so they can each pull the same `LinearInspector` and register it under whichever key shape their code path uses: - CC's `LinearMcp.tsx` is now a 10-line wrapper that maps the shared inspector across every MCP-prefixed name. - CC's `linearMcpLabels.ts` re-exports the parsing primitives + keeps the CC-only `formatLinearMcpShortLabel` (the prefix check stays here so the workflow-summary label only fires for MCP-prefixed wire names). - `builtin-tools/src/linear/` drops its own Inspector / labels files; the index just registers the shared component under bare apiNames. Exposes a labels-only subpath `@lobechat/shared-tool-ui/inspectors/ linear-labels` so the workflow-summary path can pull parsing helpers without dragging the React inspector (and its `keyframes`-using style modules) into `Group.test.tsx`'s mocked antd-style context. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>6 天前
💄 style: share branded inspector between CC MCP and built-in Linear skill (#14884) * ✨ feat(linear): share branded inspector between CC MCP and built-in Linear skill The Linear-branded inspector (logomark + action chip + parentId badge) was only registered against `mcp__claude_ai_Linear__*` tool names emitted by the CC adapter. LobeHub's own built-in Linear skill calls land with `identifier='linear'` and bare apiNames (`get_issue`, `save_issue`, …), so they fell through to the generic Title + JSON inspector despite being the exact same Linear surface. Moves the inspector + label utilities out of `builtin-tool-claude-code` into `packages/builtin-tools/src/linear/` (alongside `github/`) and registers them twice in the central inspector map: once under `LinearIdentifier = 'linear'` for the built-in skill path, once merged into the CC entry for the MCP-prefixed wire names. Same component, same look in both cases. `formatLinearShortLabel` now matches bare apiNames against the known tool list too, so the collapsed workflow summary reads `Linear · Get issue` for built-in calls as well — previously only CC got the humanized label. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * ♻️ refactor(linear): leave CC's LinearMcp inspector inside CC, only ship the built-in skill side Walks back the cross-package edits from the previous commit. The CC adapter keeps its own `LinearMcp.tsx` + `linearMcpLabels.ts` exactly as #14864 left them — `formatLinearMcpShortLabel` is still exported from `@lobechat/builtin-tool-claude-code/client/labels` and `toolDisplayNames.ts` still imports it from there. CC's inspector index continues to spread `LinearMcpInspectors` into its own map. The new shared module under `packages/builtin-tools/src/linear/` now only covers the built-in LobeHub Linear skill path: `LinearIdentifier='linear'` + bare apiNames (`get_issue`, `save_issue`, …). The inspector component is duplicated from CC on purpose — `builtin-tools` already depends on `builtin-tool-claude-code`, so we can't import the other way without a circular dep, and the user wants the CC code to stay put. Drops the `LinearMcpInspectors` re-export and the CC-entry merge in `inspectors.ts` that the previous commit had introduced. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * ♻️ refactor(linear): hoist shared LinearInspector + label utilities into shared-tool-ui The Linear-branded inspector and its tool-name parsing helpers were duplicated between `builtin-tool-claude-code/src/client/Inspector/LinearMcp` (MCP-prefixed wire names) and `builtin-tools/src/linear/` (built-in skill bare names). The dep graph (`builtin-tools` → `builtin-tool-claude-code` → `shared-tool-ui`) means CC can't import from `builtin-tools`, so the previous round kept two copies. Moves the component + labels into `packages/shared-tool-ui/src/Inspector/ Linear/` — both CC and `builtin-tools` already depend on `shared-tool-ui`, so they can each pull the same `LinearInspector` and register it under whichever key shape their code path uses: - CC's `LinearMcp.tsx` is now a 10-line wrapper that maps the shared inspector across every MCP-prefixed name. - CC's `linearMcpLabels.ts` re-exports the parsing primitives + keeps the CC-only `formatLinearMcpShortLabel` (the prefix check stays here so the workflow-summary label only fires for MCP-prefixed wire names). - `builtin-tools/src/linear/` drops its own Inspector / labels files; the index just registers the shared component under bare apiNames. Exposes a labels-only subpath `@lobechat/shared-tool-ui/inspectors/ linear-labels` so the workflow-summary path can pull parsing helpers without dragging the React inspector (and its `keyframes`-using style modules) into `Group.test.tsx`'s mocked antd-style context. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>6 天前