Skip to content

refactor: 共享 FastUI 组件与 Harness JSONL 传输 - #6

Merged
HsukqiLee merged 16 commits into
mainfrom
feat/shared-foundations
Nov 12, 2026
Merged

HsukqiLee merged 16 commits into
mainfrom
feat/shared-foundations

Conversation

@HsukqiLee

Copy link
Copy Markdown
Contributor

摘要

  • 删除本地 @fastppt/components 复制实现,直接消费 FastUI foundation/vue 0.1.2;品牌资源留在应用且纳入 Git。
  • 迁移主题、安装状态、命令面板等真实 modal 入口,使用 native top-layer/focus 行为。
  • 删除本地 JSONL RPC,以 harness-transport 0.1.2 替换;保留本产品权限、审批与事件解释。
  • 保留旧 readline 容量语义,覆盖合法 2.1 MB ASCII/中文历史响应及后续同连接读取。

依赖与范围

Refs #5。依赖为已公开 npm 0.1.2,框架包内部精确依赖同版 foundation;包含的静态制品按版本/摘要供应。

不包含其他产品源码、凭据、私有工程素材或非 Fast 系服务。未合并或部署。

已执行验证

  • Web 34/34、Harness 10/10;相关 types/build/lint 通过。
  • 生产 dist + HTTP gateway fixture 的 Modal/Select/workbench 15/15。
  • 真实 npm 干净 frozen install、锁 SRI、归档及实装字节核对通过。

上述结果针对已评审共享分支的固定基线;PR merge-ref 检查以本次 GitHub Checks 为准,不把旧结果说成最新 main 整合结果。

合并前关注

  • 完整真实 Gateway/Slidev/PPTX E2E 尚未签收;Windows 原 theme-registry POSIX 路径初始化阻碍单列保留。
  • pnpm 锁除新增共享依赖外还包含删除 components importer 后的 catalog/peer 收敛,已在此前完整安装回归中验证。
  • 旧审计树的 files store/Workspace NUL 写入修复不包含在此 PR,不能由 UI 回归替代。

固定审阅坐标

  • Base main:f6bf21f13445c2507719928fa68550552a8fcab2
  • Head:2871b095291df63d4e8e18e6da41dd289e111db9

全部待合提交:

9b4b9bcc068f91db2add0eeae38283f14fea1b89 refactor: replace copied UI and JSONL transport with shared packages
2871b095291df63d4e8e18e6da41dd289e111db9 chore: consume verified npm UI and transport releases

完整基线差异概况:

.gitignore                                         |    4 +-
 README.md                                          |    2 +
 apps/web/package.json                              |    3 +-
 apps/web/src/color-mode.ts                         |    9 +
 apps/web/src/components/AppErrorBoundary.vue       |    2 +-
 apps/web/src/components/editor/MarkdownEditor.vue  |    5 +-
 apps/web/src/components/files/FileTree.vue         |    2 +-
 apps/web/src/components/files/FileTreeNode.vue     |    2 +-
 apps/web/src/components/themes/ThemeCatalog.vue    |  152 +-
 .../web/src/components/ui}/BrandMark.vue           |    3 +-
 .../src => apps/web/src/components/ui}/Icon.vue    |    7 +-
 .../web/src/components/ui}/assets/fastppt-icon.svg |    0
 .../src => apps/web/src/components/ui}/brand.ts    |    0
 apps/web/src/components/ui/index.ts                |    3 +
 .../src/components/workspace/AgentWorkspace.vue    |    4 +-
 .../src/components/workspace/AnimationGallery.vue  |    2 +-
 .../src/components/workspace/AnimationPreview.vue  |    2 +-
 .../workspace/AnimationTimelinePanel.vue           |    2 +-
 .../components/workspace/ConversationMessage.vue   |    2 +-
 .../components/workspace/CreationWizardPanel.vue   |    4 +-
 .../components/workspace/DiagramEditorPanel.vue    |    2 +-
 .../src/components/workspace/EditorNavigation.vue  |    2 +-
 .../components/workspace/ManagedStatusBadge.vue    |  181 +-
 .../src/components/workspace/NewSessionDialog.vue  |    4 +-
 .../src/components/workspace/PageEditDialog.vue    |    2 +-
 .../src/components/workspace/PaletteGallery.vue    |    2 +-
 apps/web/src/components/workspace/PreviewPanel.vue |   14 +-
 .../src/components/workspace/RegionSelector.vue    |    2 +-
 .../src/components/workspace/ResourceGallery.vue   |   29 +-
 .../src/components/workspace/ResourcePreview.vue   |    2 +-
 .../src/components/workspace/SpeakerNotesPanel.vue |    2 +-
 apps/web/src/components/workspace/ThemeImport.vue  |    2 +-
 .../workspace/ThemeRuleExceptionsPanel.vue         |    2 +-
 .../components/workspace/WorkspaceActivityBar.vue  |    4 +-
 .../workspace/WorkspaceCommandPalette.vue          |  136 +-
 .../src/components/workspace/WorkspaceHeader.vue   |    6 +-
 .../src/components/workspace/WorkspaceSidebar.vue  |    6 +-
 apps/web/src/main.ts                               |    7 +-
 apps/web/src/styles/app.css                        |   49 +
 apps/web/src/views/WorkspaceView.vue               |    2 +-
 packages/components/README.md                      |   19 -
 packages/components/package.json                   |   25 -
 packages/components/src/Modal.vue                  |   44 -
 packages/components/src/Select.vue                 |  419 ----
 packages/components/src/color-mode.ts              |   56 -
 packages/components/src/index.ts                   |   13 -
 packages/components/src/primitives.ts              |  203 --
 packages/components/src/styles.css                 |  422 ----
 packages/components/src/tokens.css                 |  200 --
 packages/components/src/use-dialog-focus.ts        |   58 -
 packages/components/tsconfig.json                  |   10 -
 packages/harness-codex/package.json                |    1 +
 packages/harness-codex/src/codex-adapter.ts        |    8 +-
 packages/harness-codex/src/index.ts                |    2 +-
 packages/harness-codex/src/jsonl-rpc.ts            |  362 ----
 packages/harness-codex/tests/codex-adapter.test.ts |   39 +-
 packages/harness-codex/tests/jsonl-rpc.test.ts     |    2 +-
 pnpm-lock.yaml                                     | 2197 ++++++--------------
 scripts/eslint-ui-boundaries.mjs                   |    4 +-
 tests/e2e/playwright.config.ts                     |    2 +-
 tests/e2e/specs/fastppt.spec.ts                    |   68 +-
 tests/e2e/specs/managed-theme-dialogs.spec.ts      |  114 +
 tests/e2e/specs/native-table.spec.ts               |    5 +-
 tests/e2e/specs/notes-workspace.spec.ts            |    5 +-
 tests/e2e/specs/workbench.spec.ts                  |   47 +-
 65 files changed, 1116 insertions(+), 3875 deletions(-)

Use immutable public release artifacts and retain product-specific behavior. Independent review and real release installation recorded in the sharing handoff.
@HsukqiLee

Copy link
Copy Markdown
Contributor Author

创建后核对 Checks:当前 verify 为 FAILURE,run 42996311885 的 pnpm test 在 @fastppt/fonts/tests/registry.test.mjs:13 失败:binary exists for Inter: expected false to be true。PPT/Harness 定向回归通过不能替代此全仓红灯;该 PR 暂不建议合并,需另行核验字体资产/构建输入并恢复 verify。此处仅记录日志事实,未在本轮修改字体、弱化断言或自动重跑掩盖失败。

@HsukqiLee
HsukqiLee merged commit 8c7d738 into main Nov 12, 2026
1 check passed
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.

1 participant