Skip to content

refactor(app): workbench 独立为 @agenthub/workbench 包 (#1759 第二阶段) - #1832

Open
DeliciousBuding wants to merge 3 commits into
masterfrom
refactor/1759-workbench-package
Open

refactor(app): workbench 独立为 @agenthub/workbench 包 (#1759 第二阶段)#1832
DeliciousBuding wants to merge 3 commits into
masterfrom
refactor/1759-workbench-package

Conversation

@DeliciousBuding

Copy link
Copy Markdown
Collaborator

背景

#1759 第二阶段:把 app/shared/src/workbench 整棵子树(约 370 个文件)独立为前端 monorepo 第 6 个包 @agenthub/workbench,消除 shared 内 workbench 与其它子树的双向纠缠,固定依赖方向为 workbench → shared 单向。

迁移方案

  • 纯搬家 + 导入重写 + 配置,不改业务逻辑:364 个文件 rename(app/shared/src/workbenchapp/workbench/src,相似度 97-100%),48 个文件导入/配置修改。
  • 新包 @agenthub/workbench@0.5.0(private),exports 暴露 . / hubDataMapping / pages / designIcons / desktopChromeEvents / WorkbenchRoutes,peerDeps react/react-dom/react-i18next,依赖 @agenthub/shared
  • 消费方(web/desktop/mobile-rn)导入从 @shared/workbench 重写为 @agenthub/workbench(含 @agenthub/workbench/hubDataMapping 深导入)。
  • 新增门禁 scripts/verify/verify-frontend-package-boundary.py(+ 6 个负向自测):shared 不得 import workbench;workbench 不得引用 desktop/web/mobile-rn 端包,越界相对导入只能落 shared。已接入 checks.yml。
  • verify-shared-boundary.py 扫描根从 app/shared/src/workbench 切到 app/workbench/src;docs/verifier-map 同步。

验证输出

验证 结果
pnpm install --frozen-lockfile PASS(6 workspace 项目,lockfile 一致)
@agenthub/workbench typecheck PASS(tsc --noEmit 零错误)
@agenthub/workbench test PASS:114 文件 / 1020 用例全绿
agenthub-web typecheck(消费方) PASS
verify-frontend-package-boundary.py PASS:375 shared + 340 workbench 文件无方向违规
verify-shared-boundary.py PASS
verify-doc-ssot.py PASS
反向验证 故意保留旧导入 @shared/workbench → typecheck 抓出 TS2307,已还原

统计

421 files changed, +1163/−595(364 rename + 48 modify + 9 new)。

Closes #1759

@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 424 files, which is 324 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: f7fc6028-6c3c-4a5c-8237-8f8aecb38018

📥 Commits

Reviewing files that changed from the base of the PR and between 66507fa and d27a780.

⛔ Files ignored due to path filters (1)
  • app/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (424)
  • .github/workflows/checks.yml
  • AGENTS.md
  • app/AGENTS.md
  • app/Dockerfile
  • app/README.md
  • app/desktop/README.md
  • app/desktop/package.json
  • app/desktop/src/App.tsx
  • app/desktop/src/api/agentProfileQueries.ts
  • app/desktop/src/api/documentQueries.ts
  • app/desktop/src/components/DesktopChrome.tsx
  • app/desktop/src/components/DesktopEntryGate.tsx
  • app/desktop/src/platform/desktopRuntimeSessions.ts
  • app/desktop/src/platform/desktopWorkbenchProjectsPort.ts
  • app/desktop/src/platform/useDesktopWorkbenchModel.ts
  • app/desktop/vitest.config.ts
  • app/desktop/vitest.shared-ci.config.ts
  • app/eslint.config.mjs
  • app/mobile-rn/scripts/verify-boundaries.mjs
  • app/mobile-rn/src/importBoundary.test.ts
  • app/pnpm-workspace.yaml
  • app/shared/README.md
  • app/shared/package.json
  • app/shared/src/__tests__/setup.ts
  • app/shared/src/index.ts
  • app/shared/src/testing/lobehubIcons.ts
  • app/shared/vitest.config.ts
  • app/vitest.config.ts
  • app/web/README.md
  • app/web/package.json
  • app/web/src/App.test.tsx
  • app/web/src/App.tsx
  • app/web/src/api/agentQueries.ts
  • app/web/src/platform/useWebWorkbenchModel.ts
  • app/web/src/platform/webHubRealtime.test.ts
  • app/web/src/platform/webHubRealtime.ts
  • app/web/src/platform/webWorkbenchProjects.ts
  • app/web/src/platform/webWorkbenchProjectsPort.ts
  • app/web/src/platform/webWorkbenchTranscript.ts
  • app/web/src/stores/connectionStore.ts
  • app/workbench/README.md
  • app/workbench/package.json
  • app/workbench/src/AgentHubWorkbench.module.css
  • app/workbench/src/AgentHubWorkbench.module.test.ts
  • app/workbench/src/AgentHubWorkbench.tsx
  • app/workbench/src/AgentHubWorkbenchHelpers.test.ts
  • app/workbench/src/AgentHubWorkbenchHelpers.ts
  • app/workbench/src/AgentHubWorkbenchTypes.ts
  • app/workbench/src/ChatEngineeringColumn.module.css
  • app/workbench/src/ChatEngineeringColumn.tsx
  • app/workbench/src/ChatViewBridge.tsx
  • app/workbench/src/ComposerAttachmentParts.test.tsx
  • app/workbench/src/ComposerAttachmentParts.tsx
  • app/workbench/src/ComposerContextParts.test.tsx
  • app/workbench/src/ComposerContextParts.tsx
  • app/workbench/src/ComposerControlParts.tsx
  • app/workbench/src/ComposerMentionPopover.tsx
  • app/workbench/src/ComposerPartsHelpers.test.ts
  • app/workbench/src/ComposerPartsHelpers.ts
  • app/workbench/src/ConversationHost.tsx
  • app/workbench/src/ConversationSidebar.test.tsx
  • app/workbench/src/ConversationSidebar.tsx
  • app/workbench/src/GlobalRail.tsx
  • app/workbench/src/MainchainStatusStrip.test.tsx
  • app/workbench/src/MainchainStatusStrip.tsx
  • app/workbench/src/MessageSearchPanel.module.css
  • app/workbench/src/MessageSearchPanel.stories.tsx
  • app/workbench/src/MessageSearchPanel.test.tsx
  • app/workbench/src/MessageSearchPanel.tsx
  • app/workbench/src/PageErrorBoundary.test.tsx
  • app/workbench/src/PageErrorBoundary.tsx
  • app/workbench/src/RightInspector.tsx
  • app/workbench/src/RightInspectorModePanel.tsx
  • app/workbench/src/RightInspectorResizer.tsx
  • app/workbench/src/RuntimeBrandIcon.module.css
  • app/workbench/src/RuntimeBrandIcon.test.tsx
  • app/workbench/src/RuntimeBrandIcon.tsx
  • app/workbench/src/UnifiedComposer.test.tsx
  • app/workbench/src/UnifiedComposer.tsx
  • app/workbench/src/UnifiedComposerParts.tsx
  • app/workbench/src/WorkbenchAgentsRouteView.tsx
  • app/workbench/src/WorkbenchContactsRouteView.tsx
  • app/workbench/src/WorkbenchDocsRouteView.tsx
  • app/workbench/src/WorkbenchFrame.terminalDock.test.tsx
  • app/workbench/src/WorkbenchFrame.tsx
  • app/workbench/src/WorkbenchFrameChromeParts.tsx
  • app/workbench/src/WorkbenchFrameParts.test.tsx
  • app/workbench/src/WorkbenchFrameParts.tsx
  • app/workbench/src/WorkbenchProfileOverlays.tsx
  • app/workbench/src/WorkbenchProjectsRouteView.tsx
  • app/workbench/src/WorkbenchRoutes.tsx
  • app/workbench/src/WorkbenchSettingsRouteView.tsx
  • app/workbench/src/WorkbenchTasksRouteView.tsx
  • app/workbench/src/WorkbenchTranscriptOverlays.tsx
  • app/workbench/src/WorkspaceHeader.tsx
  • app/workbench/src/__tests__/composer.test.tsx
  • app/workbench/src/__tests__/dispatchQueue.test.tsx
  • app/workbench/src/__tests__/helpers.tsx
  • app/workbench/src/__tests__/hubPages.test.tsx
  • app/workbench/src/__tests__/inspector.test.tsx
  • app/workbench/src/__tests__/pages.test.tsx
  • app/workbench/src/__tests__/setup.ts
  • app/workbench/src/__tests__/shell.test.tsx
  • app/workbench/src/__tests__/sidebar.test.tsx
  • app/workbench/src/__tests__/transcript.test.tsx
  • app/workbench/src/agentCapabilities.test.ts
  • app/workbench/src/agentCapabilities.ts
  • app/workbench/src/agentProfileCatalog.test.ts
  • app/workbench/src/agentProfileCatalog.ts
  • app/workbench/src/agentProfileCatalogData.ts
  • app/workbench/src/agentProfileCatalogHelpers.test.ts
  • app/workbench/src/agentProfileCatalogHelpers.ts
  • app/workbench/src/agentProfileCatalogTypes.ts
  • app/workbench/src/agentsProductCopyContract.test.ts
  • app/workbench/src/agentsProductCopyContract.ts
  • app/workbench/src/auxPanel/AuxPanel.module.css
  • app/workbench/src/auxPanel/AuxPanel.tsx
  • app/workbench/src/auxPanel/index.ts
  • app/workbench/src/auxPanel/resolveAuxTabs.test.ts
  • app/workbench/src/auxPanel/resolveAuxTabs.ts
  • app/workbench/src/auxPanel/types.ts
  • app/workbench/src/composer/pendingIntents.test.ts
  • app/workbench/src/composer/pendingIntents.ts
  • app/workbench/src/composerMentionPopoverHelpers.test.ts
  • app/workbench/src/composerMentionPopoverHelpers.ts
  • app/workbench/src/composerMentionTrigger.test.ts
  • app/workbench/src/composerMentionTrigger.ts
  • app/workbench/src/css-modules.d.ts
  • app/workbench/src/designIcons.test.tsx
  • app/workbench/src/designIcons.tsx
  • app/workbench/src/designIconsHelpers.test.ts
  • app/workbench/src/designIconsHelpers.ts
  • app/workbench/src/designIconsNavPaths.tsx
  • app/workbench/src/desktopChromeEvents.ts
  • app/workbench/src/documentPreview.ts
  • app/workbench/src/floating/ContextMenu.module.css
  • app/workbench/src/floating/ContextMenu.test.tsx
  • app/workbench/src/floating/ContextMenu.tsx
  • app/workbench/src/floating/DemoToast.tsx
  • app/workbench/src/floating/EmojiPicker.module.css
  • app/workbench/src/floating/EmojiPicker.test.tsx
  • app/workbench/src/floating/EmojiPicker.tsx
  • app/workbench/src/floating/ForwardConversationPicker.module.css
  • app/workbench/src/floating/ForwardConversationPicker.test.tsx
  • app/workbench/src/floating/ForwardConversationPicker.tsx
  • app/workbench/src/floating/MultiSelectBar.module.css
  • app/workbench/src/floating/MultiSelectBar.tsx
  • app/workbench/src/floating/PersonPanel.module.css
  • app/workbench/src/floating/PersonPanel.tsx
  • app/workbench/src/floating/ProfilePopover.module.css
  • app/workbench/src/floating/ProfilePopover.test.tsx
  • app/workbench/src/floating/ProfilePopover.tsx
  • app/workbench/src/floating/ProfilePopoverHelpers.test.ts
  • app/workbench/src/floating/ProfilePopoverHelpers.ts
  • app/workbench/src/floating/ProfilePopoverParts.tsx
  • app/workbench/src/floating/Toast.module.css
  • app/workbench/src/floating/Toast.test.tsx
  • app/workbench/src/floating/index.ts
  • app/workbench/src/hubDataMapping.test.ts
  • app/workbench/src/hubDataMapping.ts
  • app/workbench/src/icon-governance.test.ts
  • app/workbench/src/index.ts
  • app/workbench/src/inspector/BrowserPreview.module.css
  • app/workbench/src/inspector/BrowserPreview.test.ts
  • app/workbench/src/inspector/BrowserPreview.tsx
  • app/workbench/src/inspector/FilePreview.module.css
  • app/workbench/src/inspector/FilePreview.rendering.test.tsx
  • app/workbench/src/inspector/FilePreview.tsx
  • app/workbench/src/inspector/FilePreviewHelpers.test.ts
  • app/workbench/src/inspector/FilePreviewHelpers.ts
  • app/workbench/src/inspector/FilePreviewParts.tsx
  • app/workbench/src/inspector/FilePreviewRouter.apply.test.tsx
  • app/workbench/src/inspector/FilePreviewRouter.tsx
  • app/workbench/src/inspector/InspectorModeBodies.tsx
  • app/workbench/src/inspector/InspectorModePanelHelpers.test.ts
  • app/workbench/src/inspector/InspectorModePanelHelpers.ts
  • app/workbench/src/inspector/InspectorModePanelParts.tsx
  • app/workbench/src/inspector/InspectorModePanels.tsx
  • app/workbench/src/inspector/InspectorTabChrome.test.ts
  • app/workbench/src/inspector/InspectorTabChrome.tsx
  • app/workbench/src/inspector/OverviewPanel.module.css
  • app/workbench/src/inspector/OverviewPanel.tsx
  • app/workbench/src/inspector/RuntimeEvidenceHelpers.test.ts
  • app/workbench/src/inspector/RuntimeEvidenceHelpers.ts
  • app/workbench/src/inspector/RuntimeEvidencePanel.tsx
  • app/workbench/src/inspector/RuntimeEvidenceParts.tsx
  • app/workbench/src/inspector/index.ts
  • app/workbench/src/mainchain/buildMainchainSummary.test.ts
  • app/workbench/src/mainchain/buildMainchainSummary.ts
  • app/workbench/src/mainchain/index.ts
  • app/workbench/src/mainchain/types.ts
  • app/workbench/src/mockData.ts
  • app/workbench/src/pages/AgentsPage.module.css
  • app/workbench/src/pages/AgentsPage.test.tsx
  • app/workbench/src/pages/AgentsPage.tsx
  • app/workbench/src/pages/ContactsPage.module.css
  • app/workbench/src/pages/ContactsPage.test.tsx
  • app/workbench/src/pages/ContactsPage.tsx
  • app/workbench/src/pages/DocsPage.module.css
  • app/workbench/src/pages/DocsPage.test.tsx
  • app/workbench/src/pages/DocsPage.tsx
  • app/workbench/src/pages/ProjectsPage.module.css
  • app/workbench/src/pages/ProjectsPage.test.tsx
  • app/workbench/src/pages/ProjectsPage.tsx
  • app/workbench/src/pages/SettingsPage.module.css
  • app/workbench/src/pages/SettingsPage.test.tsx
  • app/workbench/src/pages/SettingsPage.tsx
  • app/workbench/src/pages/TasksPage.module.css
  • app/workbench/src/pages/TasksPage.test.tsx
  • app/workbench/src/pages/TasksPage.tsx
  • app/workbench/src/pages/agents/AgentEditHelpers.test.ts
  • app/workbench/src/pages/agents/AgentEditHelpers.ts
  • app/workbench/src/pages/agents/AgentEditItemParts.tsx
  • app/workbench/src/pages/agents/AgentEditPanel.tsx
  • app/workbench/src/pages/agents/AgentInstalledParts.tsx
  • app/workbench/src/pages/agents/AgentInstalledViews.test.tsx
  • app/workbench/src/pages/agents/AgentInstalledViews.tsx
  • app/workbench/src/pages/agents/AgentMarketHelpers.test.ts
  • app/workbench/src/pages/agents/AgentMarketHelpers.ts
  • app/workbench/src/pages/agents/AgentMarketItemParts.tsx
  • app/workbench/src/pages/agents/AgentMarketParts.tsx
  • app/workbench/src/pages/agents/AgentMarketViews.tsx
  • app/workbench/src/pages/agents/AgentOpsHelpers.test.ts
  • app/workbench/src/pages/agents/AgentOpsHelpers.ts
  • app/workbench/src/pages/agents/AgentOpsItemParts.tsx
  • app/workbench/src/pages/agents/AgentOpsParts.tsx
  • app/workbench/src/pages/agents/AgentOpsViews.tsx
  • app/workbench/src/pages/agents/index.ts
  • app/workbench/src/pages/agents/shared.tsx
  • app/workbench/src/pages/agents/types.ts
  • app/workbench/src/pages/contacts/AddContactModal.test.tsx
  • app/workbench/src/pages/contacts/AddContactModal.tsx
  • app/workbench/src/pages/contacts/ContactMainHelpers.test.ts
  • app/workbench/src/pages/contacts/ContactMainHelpers.ts
  • app/workbench/src/pages/contacts/ContactMainItemParts.tsx
  • app/workbench/src/pages/contacts/ContactMainParts.tsx
  • app/workbench/src/pages/contacts/ContactMainSections.tsx
  • app/workbench/src/pages/contacts/ContactMainViews.tsx
  • app/workbench/src/pages/contacts/ContactNav.tsx
  • app/workbench/src/pages/contacts/ContactRows.tsx
  • app/workbench/src/pages/contacts/index.ts
  • app/workbench/src/pages/contacts/shared.tsx
  • app/workbench/src/pages/contacts/types.ts
  • app/workbench/src/pages/docs/DocMain.tsx
  • app/workbench/src/pages/docs/DocTableViews.tsx
  • app/workbench/src/pages/docs/DocsNav.tsx
  • app/workbench/src/pages/docs/index.ts
  • app/workbench/src/pages/docs/shared.tsx
  • app/workbench/src/pages/docs/types.ts
  • app/workbench/src/pages/index.ts
  • app/workbench/src/pages/projects/ProjectAnnouncement.tsx
  • app/workbench/src/pages/projects/ProjectChromeViews.tsx
  • app/workbench/src/pages/projects/ProjectFeedPanel.tsx
  • app/workbench/src/pages/projects/ProjectMain.test.tsx
  • app/workbench/src/pages/projects/ProjectMain.tsx
  • app/workbench/src/pages/projects/ProjectMembers.tsx
  • app/workbench/src/pages/projects/ProjectNav.tsx
  • app/workbench/src/pages/projects/ProjectPanelHelpers.test.tsx
  • app/workbench/src/pages/projects/ProjectPanelHelpers.tsx
  • app/workbench/src/pages/projects/ProjectPanelParts.tsx
  • app/workbench/src/pages/projects/ProjectPanelViews.tsx
  • app/workbench/src/pages/projects/ProjectTabViews.tsx
  • app/workbench/src/pages/projects/index.ts
  • app/workbench/src/pages/projects/shared.tsx
  • app/workbench/src/pages/projects/types.ts
  • app/workbench/src/pages/projects/useProjectEditor.ts
  • app/workbench/src/pages/settings/SettingsMain.tsx
  • app/workbench/src/pages/settings/SettingsNav.tsx
  • app/workbench/src/pages/settings/SettingsPaneHelpers.test.ts
  • app/workbench/src/pages/settings/SettingsPaneHelpers.ts
  • app/workbench/src/pages/settings/SettingsPaneParts.tsx
  • app/workbench/src/pages/settings/SettingsPanes.tsx
  • app/workbench/src/pages/settings/index.ts
  • app/workbench/src/pages/settings/shared.tsx
  • app/workbench/src/pages/settings/types.ts
  • app/workbench/src/pages/tasks/TaskMainViews.tsx
  • app/workbench/src/pages/tasks/TaskNav.tsx
  • app/workbench/src/pages/tasks/TaskTableHelpers.test.ts
  • app/workbench/src/pages/tasks/TaskTableHelpers.ts
  • app/workbench/src/pages/tasks/TaskTableParts.tsx
  • app/workbench/src/pages/tasks/TaskTableViews.tsx
  • app/workbench/src/pages/tasks/index.ts
  • app/workbench/src/pages/tasks/shared.tsx
  • app/workbench/src/pages/tasks/types.ts
  • app/workbench/src/pages/workbench-page-shared.module.css
  • app/workbench/src/profileRegistry.test.ts
  • app/workbench/src/profileRegistry.ts
  • app/workbench/src/rightInspectorHelpers.test.ts
  • app/workbench/src/rightInspectorHelpers.ts
  • app/workbench/src/rightInspectorTypes.ts
  • app/workbench/src/sessionImport/SessionImportList.module.css
  • app/workbench/src/sessionImport/SessionImportList.test.tsx
  • app/workbench/src/sessionImport/SessionImportList.tsx
  • app/workbench/src/sessionImport/index.ts
  • app/workbench/src/sessionImport/types.ts
  • app/workbench/src/settingsService.test.ts
  • app/workbench/src/settingsService.ts
  • app/workbench/src/settingsTypes.ts
  • app/workbench/src/team/InlineDelegationCard.module.css
  • app/workbench/src/team/InlineDelegationCard.test.tsx
  • app/workbench/src/team/InlineDelegationCard.tsx
  • app/workbench/src/team/MessageDelegationStore.test.ts
  • app/workbench/src/team/MessageDelegationStore.ts
  • app/workbench/src/team/SubagentSessionDialog.tsx
  • app/workbench/src/team/SubagentStreamOverlay.module.css
  • app/workbench/src/team/SubagentStreamOverlay.test.tsx
  • app/workbench/src/team/SubagentStreamOverlay.tsx
  • app/workbench/src/team/SubagentStreamStore.test.ts
  • app/workbench/src/team/SubagentStreamStore.ts
  • app/workbench/src/team/SubagentTranscript.module.css
  • app/workbench/src/team/SubagentTranscript.test.tsx
  • app/workbench/src/team/SubagentTranscript.tsx
  • app/workbench/src/team/index.ts
  • app/workbench/src/terminal/TerminalPanel.module.css
  • app/workbench/src/terminal/TerminalPanel.test.tsx
  • app/workbench/src/terminal/TerminalPanel.tsx
  • app/workbench/src/terminal/index.ts
  • app/workbench/src/transcriptEventTypes.ts
  • app/workbench/src/unifiedComposerHelpers.test.ts
  • app/workbench/src/unifiedComposerHelpers.ts
  • app/workbench/src/unifiedComposerHostActions.test.ts
  • app/workbench/src/unifiedComposerHostActions.ts
  • app/workbench/src/unifiedComposerHostFilePick.test.ts
  • app/workbench/src/unifiedComposerHostFilePick.ts
  • app/workbench/src/unifiedComposerHostHelpers.test.ts
  • app/workbench/src/unifiedComposerHostHelpers.ts
  • app/workbench/src/unifiedComposerHostKeyDown.test.ts
  • app/workbench/src/unifiedComposerHostKeyDown.ts
  • app/workbench/src/unifiedComposerHostViewModel.test.ts
  • app/workbench/src/unifiedComposerHostViewModel.ts
  • app/workbench/src/useWorkbenchAgentsRoute.test.ts
  • app/workbench/src/useWorkbenchAgentsRoute.ts
  • app/workbench/src/useWorkbenchContactsRoute.test.ts
  • app/workbench/src/useWorkbenchContactsRoute.ts
  • app/workbench/src/useWorkbenchDocsRoute.test.ts
  • app/workbench/src/useWorkbenchDocsRoute.ts
  • app/workbench/src/useWorkbenchPanelLayout.test.ts
  • app/workbench/src/useWorkbenchPanelLayout.ts
  • app/workbench/src/useWorkbenchProfileChrome.test.ts
  • app/workbench/src/useWorkbenchProfileChrome.ts
  • app/workbench/src/useWorkbenchProjectsRoute.test.ts
  • app/workbench/src/useWorkbenchProjectsRoute.ts
  • app/workbench/src/useWorkbenchSessionChrome.test.ts
  • app/workbench/src/useWorkbenchSessionChrome.ts
  • app/workbench/src/useWorkbenchSettingsRoute.test.ts
  • app/workbench/src/useWorkbenchSettingsRoute.ts
  • app/workbench/src/useWorkbenchTasksRoute.test.ts
  • app/workbench/src/useWorkbenchTasksRoute.ts
  • app/workbench/src/useWorkbenchTranscriptChrome.test.ts
  • app/workbench/src/useWorkbenchTranscriptChrome.ts
  • app/workbench/src/vite-env.d.ts
  • app/workbench/src/workbenchAgentMapping.test.ts
  • app/workbench/src/workbenchAgentMapping.ts
  • app/workbench/src/workbenchAgentsPageModel.test.ts
  • app/workbench/src/workbenchAgentsPageModel.ts
  • app/workbench/src/workbenchAgentsRouteHelpers.test.ts
  • app/workbench/src/workbenchAgentsRouteHelpers.ts
  • app/workbench/src/workbenchDataMode.test.ts
  • app/workbench/src/workbenchDataMode.ts
  • app/workbench/src/workbenchDocPreview.test.ts
  • app/workbench/src/workbenchDocPreview.ts
  • app/workbench/src/workbenchFrameHelpers.test.ts
  • app/workbench/src/workbenchFrameHelpers.ts
  • app/workbench/src/workbenchFramePartsHelpers.test.ts
  • app/workbench/src/workbenchFramePartsHelpers.ts
  • app/workbench/src/workbenchFrameTypes.ts
  • app/workbench/src/workbenchLayoutConstants.ts
  • app/workbench/src/workbenchPanelLayoutHelpers.test.ts
  • app/workbench/src/workbenchPanelLayoutHelpers.ts
  • app/workbench/src/workbenchPreferences.test.ts
  • app/workbench/src/workbenchPreferences.ts
  • app/workbench/src/workbenchProfileChromeHelpers.test.ts
  • app/workbench/src/workbenchProfileChromeHelpers.ts
  • app/workbench/src/workbenchProfileSources.test.ts
  • app/workbench/src/workbenchProfileSources.ts
  • app/workbench/src/workbenchProjectPreview.test.ts
  • app/workbench/src/workbenchProjectPreview.ts
  • app/workbench/src/workbenchProjectsPort.ts
  • app/workbench/src/workbenchRoutesHelpers.test.ts
  • app/workbench/src/workbenchRoutesHelpers.ts
  • app/workbench/src/workbenchRoutesTypes.ts
  • app/workbench/src/workbenchSessionChromeHelpers.test.ts
  • app/workbench/src/workbenchSessionChromeHelpers.ts
  • app/workbench/src/workbenchState.test.ts
  • app/workbench/src/workbenchState.ts
  • app/workbench/src/workbenchStateApplyEvent.test.ts
  • app/workbench/src/workbenchStateApplyEvent.ts
  • app/workbench/src/workbenchStateHelpers.test.ts
  • app/workbench/src/workbenchStateHelpers.ts
  • app/workbench/src/workbenchStateTypes.ts
  • app/workbench/src/workbenchTaskGroups.test.ts
  • app/workbench/src/workbenchTaskGroups.ts
  • app/workbench/src/workbenchTasksPageModel.test.ts
  • app/workbench/src/workbenchTasksPageModel.ts
  • app/workbench/src/workbenchTasksRouteGroupHelpers.test.ts
  • app/workbench/src/workbenchTasksRouteGroupHelpers.ts
  • app/workbench/src/workbenchTasksRouteHelpers.test.ts
  • app/workbench/src/workbenchTasksRouteHelpers.ts
  • app/workbench/src/workbenchTasksRoutePlanners.test.ts
  • app/workbench/src/workbenchTasksRoutePlanners.ts
  • app/workbench/src/workbenchTestFixtures.ts
  • app/workbench/src/workbenchTranscriptChromeActionMappers.test.ts
  • app/workbench/src/workbenchTranscriptChromeActionMappers.ts
  • app/workbench/src/workbenchTranscriptChromeHelpers.test.ts
  • app/workbench/src/workbenchTranscriptChromeHelpers.ts
  • app/workbench/src/workbenchTranscriptChromeLabels.test.ts
  • app/workbench/src/workbenchTranscriptChromeLabels.ts
  • app/workbench/src/workbenchTranscriptChromeStateHelpers.test.ts
  • app/workbench/src/workbenchTranscriptChromeStateHelpers.ts
  • app/workbench/tsconfig.json
  • app/workbench/vitest.config.ts
  • docs/architecture.md
  • docs/architecture/04-frontend-data-flow.md
  • docs/architecture/07-design-system-ssot.md
  • docs/governance/verifier-map.md
  • scripts/verify/coverage-baseline.json
  • scripts/verify/i18n-callsite-baseline.json
  • scripts/verify/tests/verify-frontend-package-boundary.Tests.py
  • scripts/verify/verify-ci-gates.py
  • scripts/verify/verify-coverage-baseline.py
  • scripts/verify/verify-frontend-package-boundary.py
  • scripts/verify/verify-i18n-callsites.py
  • scripts/verify/verify-shared-boundary.py
  • scripts/verify/verify-shared-ui-hubclient.py

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@DeliciousBuding
DeliciousBuding force-pushed the refactor/1759-workbench-package branch 3 times, most recently from 1461bc7 to d05894a Compare August 21, 2026 10:56
DeliciousBuding added a commit that referenced this pull request Aug 21, 2026
#1832 大 PR(>300 文件)触发 golangci-lint-action 全量回退,
17 条已登记 baseline 的复杂度发现直接 fail 阻塞合并。原 Lint step
的退出码不读 baseline,无法豁免;把硬门禁移到 fingerprint ratchet
step(读同一份 JSON 报告),Lint step 降为 report-only。baseline
(scripts/verify/hub-lint-baseline.json)已含全部 17 条 fingerprint,
无需增删;本 commit 仅改门禁接线与 verify-ci-gates 断言。

Co-authored-by: Cursor <cursor@vectorcontrol.tech>
DeliciousBuding added a commit that referenced this pull request Aug 21, 2026
#1832 大 PR(>300 文件)触发 golangci-lint-action 全量回退,
17 条已登记 baseline 的复杂度发现直接 fail 阻塞合并。原 Lint step
的退出码不读 baseline,无法豁免;把硬门禁移到 fingerprint ratchet
step(读同一份 JSON 报告),Lint step 降为 report-only。baseline
(scripts/verify/hub-lint-baseline.json)已含全部 17 条 fingerprint,
无需增删;本 commit 仅改门禁接线与 verify-ci-gates 断言。

Co-authored-by: Cursor <cursor@vectorcontrol.tech>
DeliciousBuding added a commit that referenced this pull request Aug 21, 2026
#1832 大 PR(>300 文件)触发 golangci-lint-action 全量回退,
17 条已登记 baseline 的复杂度发现直接 fail 阻塞合并。原 Lint step
的退出码不读 baseline,无法豁免;把硬门禁移到 fingerprint ratchet
step(读同一份 JSON 报告),Lint step 降为 report-only。baseline
(scripts/verify/hub-lint-baseline.json)已含全部 17 条 fingerprint,
无需增删;本 commit 仅改门禁接线与 verify-ci-gates 断言。

Co-authored-by: Cursor <cursor@vectorcontrol.tech>
DeliciousBuding added a commit that referenced this pull request Aug 21, 2026
…1829)

* ci(checks): go-edge/go-hub 恒报 report 修复纯前端 PR 的 required check 跳过阻塞

Co-authored-by: Cursor <cursor@vectorcontrol.tech>

* docs(verify): ci-gates 恒报断言补充 docstring (#1829)

Co-authored-by: Cursor <cursor@vectorcontrol.tech>

* ci(hub): lint 硬门禁改由 #1573 ratchet 承担,全量回退模式豁免 17 条存量

#1832 大 PR(>300 文件)触发 golangci-lint-action 全量回退,
17 条已登记 baseline 的复杂度发现直接 fail 阻塞合并。原 Lint step
的退出码不读 baseline,无法豁免;把硬门禁移到 fingerprint ratchet
step(读同一份 JSON 报告),Lint step 降为 report-only。baseline
(scripts/verify/hub-lint-baseline.json)已含全部 17 条 fingerprint,
无需增删;本 commit 仅改门禁接线与 verify-ci-gates 断言。

Co-authored-by: Cursor <cursor@vectorcontrol.tech>

* ci(hub): quality-debt baseline 跟进 Lint 降 advisory 的 soft_gate 迁移

Co-authored-by: Cursor <cursor@vectorcontrol.tech>

* ci(verify): go 恒报 fallback 增加 changes 失败 fail-closed

changes job 失败时 outputs.go 为空,fallback 原条件会误报成功;
现要求 changes.result=='success',失败时新增 step exit 1 防 false green。

Co-authored-by: Cursor <cursor@vectorcontrol.tech>

---------

Co-authored-by: DeliciousBuding <DeliciousBuding@users.noreply.github.com>
Co-authored-by: Cursor <cursor@vectorcontrol.tech>
@DeliciousBuding
DeliciousBuding force-pushed the refactor/1759-workbench-package branch from f5d5698 to c51c9ae Compare August 21, 2026 13:14
DeliciousBuding and others added 3 commits August 21, 2026 22:32
Co-authored-by: Cursor <cursor@vectorcontrol.tech>
Co-authored-by: Cursor <cursor@vectorcontrol.tech>
@DeliciousBuding
DeliciousBuding force-pushed the refactor/1759-workbench-package branch from c51c9ae to d27a780 Compare August 21, 2026 14:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[P1] 前端:app/shared/src/workbench 独立为第 6 个包(先破循环依赖)

1 participant