From 86108c2e2bdabe4be2e4ce9597b597c84f9ed1af Mon Sep 17 00:00:00 2001 From: Lan_zhijiang Date: Sun, 13 Sep 2026 13:05:01 +0800 Subject: [PATCH 01/21] =?UTF-8?q?feat(ui):=20=E8=BF=81=E7=A7=BB=20Web=20?= =?UTF-8?q?=E4=B8=8E=E6=89=A9=E5=B1=95=E5=88=B0=20UI=202.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 统一正式依赖、Token 与组件交互契约\n- 保留 JSON 草稿并传播 Peer 持久化错误\n- 接入随包设计指南,补充真实数据库保存旅程 --- .changeset/jolly-times-fry.md | 11 ++ AGENTS.md | 4 + apps/client-web/package.json | 17 +-- apps/client-web/src/App.vue | 7 +- .../common/AppSidePanel/AppSidePanel.scss | 2 +- .../extensionCard/extensionCard.scss | 4 +- .../extension/extensionCard/extensionCard.vue | 78 ++++++++--- .../installExtension/installExtension.scss | 2 +- .../installExtension/installExtension.vue | 27 ++-- .../BlockInspectorPopup.scss | 8 +- .../BlockInspectorPopup.vue | 10 +- .../info-base/BlockNode/BlockNode.scss | 8 +- .../info-base/RelationEdge/RelationEdge.scss | 6 +- .../RelationInspectorPopup.vue | 8 +- .../SolvedContentPopup.scss | 6 +- .../SolvedContentPopup/SolvedContentPopup.vue | 8 +- .../info-base/resolvers/ContentFile.vue | 2 +- .../info-base/resolvers/ContentHtml.vue | 2 +- .../info-base/resolvers/ContentPreview.vue | 2 +- .../src/components/job/JobCard/JobCard.scss | 14 +- .../components/obsrv/LogEntry/LogEntry.scss | 8 +- .../obsrv/LogsViewer/LogsViewer.scss | 8 +- .../components/peer/peerCard/peerCard.scss | 12 +- .../src/components/peer/peerCard/peerCard.vue | 68 +++++++--- .../src/components/peer/peerList/peerList.vue | 4 +- .../src/components/recall/RecallSearch.vue | 6 +- .../source/createSource/createSource.ts | 4 +- .../source/createSource/createSource.vue | 37 +++-- .../source/sourceCard/sourceCard.scss | 9 +- .../source/sourceCard/sourceCard.vue | 63 +++++++-- .../source/sourceForm/sourceForm.ts | 1 + .../source/sourceForm/sourceForm.vue | 46 +++++-- apps/client-web/src/locales/index.ts | 3 +- apps/client-web/src/locales/messages/en.json | 4 +- .../src/locales/messages/zh-CN.json | 4 +- apps/client-web/src/main.ts | 7 +- .../src/views/extensions/extensions.scss | 4 +- .../src/views/info-base/graph/graph.scss | 4 +- .../src/views/info-base/graph/graph.vue | 6 +- .../src/views/info-base/list/list.scss | 16 +-- .../src/views/info-base/list/list.vue | 2 +- apps/client-web/src/views/jobs/job/job.scss | 10 +- .../src/views/settings/settings.scss | 6 +- .../src/views/settings/settings.vue | 62 ++++----- .../src/views/sources/source/source.scss | 6 +- .../src/views/sources/source/source.vue | 97 +++++++++++-- docs/40-deployment/development-runtime.md | 10 ++ extensions/AGENTS.md | 2 +- extensions/mail/package.json | 9 +- .../components/contentEmail/contentEmail.scss | 14 +- .../components/contentEmail/contentEmail.vue | 2 +- .../contentEmail/contentEmailPreview.vue | 2 +- .../contentMailFact/contentMailFact.vue | 2 +- .../contentMailFactPreview.vue | 2 +- .../contentMimePart/contentMimePart.vue | 4 +- .../contentMimePartPreview.vue | 2 +- extensions/twitter/package.json | 9 +- .../components/contentTweet/contentTweet.scss | 8 +- .../contentTweet/contentTweetPreview.vue | 2 +- .../twitterSetupWizard.scss | 6 +- .../twitterSetupWizard/twitterSetupWizard.vue | 13 +- extensions/twitter/src/views/DevHome.vue | 6 +- package.json | 1 + packages/core/src/peer/peer.ts | 3 +- packages/ext-dev-utils/package.json | 11 +- packages/ext-dev-utils/src/bootstrap.ts | 1 + .../ext-dev-utils/src/components/Layout.vue | 12 +- pnpm-lock.yaml | 128 ++++++------------ pnpm-workspace.yaml | 2 +- scripts/ui-source.mjs | 16 +-- tasks/ui-v2-migration/packet.md | 31 +++++ tests/e2e/peer-database.spec.ts | 87 ++++++++++++ 72 files changed, 730 insertions(+), 378 deletions(-) create mode 100644 .changeset/jolly-times-fry.md create mode 100644 tasks/ui-v2-migration/packet.md diff --git a/.changeset/jolly-times-fry.md b/.changeset/jolly-times-fry.md new file mode 100644 index 00000000..bba8b79f --- /dev/null +++ b/.changeset/jolly-times-fry.md @@ -0,0 +1,11 @@ +--- +'@inkcre/client-web': patch +'@inkcre/ext-mail': patch +'@inkcre/ext-twitter': patch +'@inkcre/ext-dev-utils': patch +'@inkcre/core': patch +--- + +迁移至正式 @inkcre/ui-web 2.0.0,统一 Vue 最低版本、Token 角色、按钮提交与加载态、JSON 草稿保存和日期确认行为;维护 Agent 从安装包读取同版本 DESIGN.md 与 Skill。 + +Peer 保存现在传播数据库错误,配置保存失败时保留草稿与弹窗,阻止无效或尚在验证中的内容提交,并在持久化期间禁止重复操作。 diff --git a/AGENTS.md b/AGENTS.md index ff0afdb3..4e3045e7 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -14,6 +14,10 @@ Reason in English. Communicate with humans in Chinese. - Physical-subtree hazards: the nearest local `AGENTS.md`. - Volatile work state: the active packet under `tasks/`. +UI 工作先读取 `apps/client-web/node_modules/@inkcre/ui-web/DESIGN.md` 与 `skills/ui-web/SKILL.md`,按所用组件进入同版本参考和迁移说明。扩展单独工作时使用其自身 node_modules 中的同一版本。包拥有设计与 API 规则,本仓库拥有业务流程和布局;纯后端任务无需加载这些 UI 文档。 + +当前 UI 2.0 迁移入口为 [task packet](tasks/ui-v2-migration/packet.md)。 + ## Working Protocol - Run `svc status . --json`, then use `svc lookup --keyword` and `svc lookup --path` only for guidance required by the current pressure. diff --git a/apps/client-web/package.json b/apps/client-web/package.json index 88013ef5..cf2f5320 100644 --- a/apps/client-web/package.json +++ b/apps/client-web/package.json @@ -11,15 +11,9 @@ "type-check": "vue-tsc --build" }, "dependencies": { - "@codemirror/autocomplete": "^6.20.0", - "@codemirror/commands": "^6.10.0", - "@codemirror/lang-json": "^6.0.2", - "@codemirror/lint": "^6.9.2", - "@codemirror/state": "^6.5.2", - "@codemirror/view": "^6.38.8", "@inkcre/core": "workspace:*", "@inkcre/extension-runtime-client-web": "https://github.com/InKCre/ext-reg/releases/download/runtime-client-web-v0.1.0/inkcre-extension-runtime-client-web-0.1.0.tgz", - "@inkcre/ui-web": "1.4.0", + "@inkcre/ui-web": "2.0.0", "@module-federation/runtime": "^0.21.4", "@supabase/postgrest-js": "^2.84.0", "@vue-flow/background": "^1.3.2", @@ -28,9 +22,7 @@ "dayjs": "^1.11.19", "jose": "^6.1.2", "pinia": "^3.0.3", - "vscode-json-languageservice": "^5.6.4", - "vscode-languageserver-textdocument": "^1.0.12", - "vue": "^3.5.18", + "vue": "^3.5.25", "vue-i18n": "^11.2.8", "vue-router": "^4.5.1", "zod": "^4.1.12", @@ -56,5 +48,10 @@ "vite": "^7.2.4", "vite-plugin-vue-devtools": "^8.0.0", "vue-tsc": "catalog:" + }, + "intent": { + "skills": [ + "@inkcre/ui-web" + ] } } diff --git a/apps/client-web/src/App.vue b/apps/client-web/src/App.vue index d58aa6c6..e1b90a43 100644 --- a/apps/client-web/src/App.vue +++ b/apps/client-web/src/App.vue @@ -47,7 +47,10 @@ const sidebarExpanded = ref(false) diff --git a/apps/client-web/src/components/common/AppSidePanel/AppSidePanel.scss b/apps/client-web/src/components/common/AppSidePanel/AppSidePanel.scss index 334f9c28..5919f18d 100644 --- a/apps/client-web/src/components/common/AppSidePanel/AppSidePanel.scss +++ b/apps/client-web/src/components/common/AppSidePanel/AppSidePanel.scss @@ -12,7 +12,7 @@ &__content { background-color: sys-var(color, surface, subtle); - border: 1px solid sys-var(color, border, muted); + border: 1px solid sys-var(color, border, subtle); padding: sys-var(space, md); display: flex; flex-direction: column; diff --git a/apps/client-web/src/components/extension/extensionCard/extensionCard.scss b/apps/client-web/src/components/extension/extensionCard/extensionCard.scss index 45b64151..e879b6d1 100644 --- a/apps/client-web/src/components/extension/extensionCard/extensionCard.scss +++ b/apps/client-web/src/components/extension/extensionCard/extensionCard.scss @@ -20,7 +20,7 @@ } &__version { - @include apply-font(label-lg, mono); + @include apply-font(label-lg, $mono: true); color: sys-var(color, text, subtle); } @@ -42,7 +42,7 @@ &__error { @include apply-font(body-sm); - color: sys-var(color, danger, base); + color: sys-var(color, feedback, error); margin: 0; } } diff --git a/apps/client-web/src/components/extension/extensionCard/extensionCard.vue b/apps/client-web/src/components/extension/extensionCard/extensionCard.vue index ae5aab33..91beb137 100644 --- a/apps/client-web/src/components/extension/extensionCard/extensionCard.vue +++ b/apps/client-web/src/components/extension/extensionCard/extensionCard.vue @@ -1,7 +1,14 @@