Skip to content

feat(archify-panel): add Archify side panel plugin - #163

Open
ZouKD wants to merge 2 commits into
zai-org:mainfrom
ZouKD:feat/archify-panel
Open

ZouKD wants to merge 2 commits into
zai-org:mainfrom
ZouKD:feat/archify-panel

Conversation

@ZouKD

@ZouKD ZouKD commented Nov 4, 2026

Copy link
Copy Markdown

Plugin type (required) / 插件类型(必填)

  • UI Plugin / 是 UI 插件 — provides MCP Apps interactive pages / 提供 MCP Apps 交互页面

Affected plugin name(s) / 涉及的插件名称:archify-panel(new plugin / 新增插件)

What / 改动内容

EN: Adds archify-panel, a community plugin that adapts the open-source Archify diagram engine (v3.2.0, Apache-2.0) to the ZCode side panel. The agent renders architecture / workflow / sequence / dataflow / lifecycle / ERD / class / tree / timeline / waterfall diagrams; artifacts open in an MCP Apps side panel in full-interaction mode and export PNG / SVG / share cards through the panel's export bridge (save_export writes into the workspace and asks the host for a save dialog).

中文:新增社区插件 archify-panel,把开源图形引擎 Archify(v3.2.0,Apache-2.0)适配到 ZCode 侧栏。Agent 渲染架构图、流程图、时序图、数据流、状态机、ERD、类图、树、时间线、瀑布图;产物在侧栏面板以完整交互模式打开,通过面板常驻的导出桥接导出 PNG、SVG 与分享卡片(save_export 落盘工作区并请求宿主另存为)。

Layout: source package ui-plugins/archify-panel/ (build + stage); install tree external_plugins/archify-panel/. The bundled Archify runtime (vendor/archify, committed under the source package) is copied into the install directory by scripts.stage via ZCODE_PLUGIN_INSTALL_DIR; dist/ is produced by pnpm build as usual.

How to test / 测试方式:

  1. Install from the marketplace, then ask the agent: "Draw an architecture diagram of this repository" / 「用架构图画出这个仓库的结构」
  2. The rendered diagram opens in the side panel; export PNG from the diagram's own export menu.
  3. Local end-to-end check: node ui-plugins/archify-panel/test/smoke.mjs <workspace> — MCP server starts, renders with all four Archify gates passing (validate / deliver / check / browser-check), export round-trip works.

Dependencies / network / side effects:

  • Local stdio MCP server (archify); no network access, no telemetry — rendering is fully local
  • Writes rendered artifacts to the workspace .archify-panel/ (exports under exports/)
  • The render pipeline runs a local-browser measurement step (browser-check gate)
  • Build-time deps: esbuild, typescript, MCP SDK (bundled into dist/)

Third-party / 第三方:

  • Bundled runtime: Archify v3.2.0 (Apache-2.0; historical MIT grants preserved). Modifications declared in NOTICE.md per Apache-2.0 §4(b): three brand marks carrying copyleft / NC licenses (Jenkins, Rust, Vue.js) were removed from the bundled brand catalogue
  • Plugin icon is original artwork; no Archify trademark is used. This plugin is not affiliated with or endorsed by the Archify project

Self-check / 自查清单

  • Plugin name is unique kebab-case; new external plugin directory is external_plugins/<name>/ / 插件名唯一且 kebab-case,位于 external_plugins/archify-panel/
  • category: developer-tools
  • Plugin type and affected names are declared above / 已声明插件类型与涉及插件
  • version 0.1.0 set in BOTH plugin.json and marketplace.json (initial publication) / 两处版本号一致(首次发布)
  • README.md (EN) and README_CN.md both updated and equivalent / 中英文 README 等效
  • description_i18n has both en and zh-CN
  • No secrets, machine-specific paths, or private dependencies / 不含密钥与机器专属路径
  • Model/API/network dependencies documented / 依赖已写明(无网络访问,纯本地渲染)
  • python3 scripts/validate.py passes (53 plugins OK) and git diff --check passes. python3 scripts/build_dist.py was verified for archify-panel (artifact plugins/archify-panel/0.1.0/plugin.zip builds, layout checked); a full local run over all plugins is blocked by the Craft snapshot toolchain, which by design only build machines install (CRAFT_TOOLCHAIN_INSTALL=1, see ui-plugins/craft-runtime/toolchain.mjs). Please let CI run the full gate. / validate.py 全量通过;build_dist.py 已对本插件完整验证(产物构建与布局检查),全仓库本地构建被 Craft 快照工具链阻塞(该工具链按设计仅构建机安装),请以 CI 全量校验为准

@panda920

panda920 commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator

✅ Internal validation passed. A ZCode maintainer will review the change next; after acceptance, release checks run separately and this PR is closed automatically.

@ZouKD

ZouKD commented Nov 8, 2026

Copy link
Copy Markdown
Author

Update: v0.1.0 → v0.2.0 — panel status bar removed / 移除面板常驻状态栏

Commit 82aae2e / 提交 82aae2e:

EN

  • Removed the permanent bottom status bar (gate summary + artifact path) from the panel shell — both already flow back through the render_diagram tool result and model context, so displaying them again was redundant.
  • Errors and export results now surface as a brief toast at the bottom of the canvas, auto-dismissing after 3 s; the empty state ("no diagram yet") moved to a centered hint. The shell renders no chrome at all now.
  • Browser harness regression extended: asserts the status bar stays absent (statusBar=absent) and polls the toast content on export.
  • Verified locally: tsc --noEmit, oxlint (0 warnings on changed files), scripts/validate.py (53 plugins), scripts/build_dist.py; full export round-trip re-run in headless Chrome.

中文

  • 移除面板底部常驻状态栏(gate 校验摘要 + 产物绝对路径)—— 这两块信息本就通过 render_diagram 工具返回与模型上下文回传,面板内重复展示没有增量价值
  • 出错与导出结果改为画布底部按需浮出的提示条(3 秒自动消失);空状态提示("还没有图形")移到画布中央 —— 面板薄壳现在完全不渲染任何常驻界面元素
  • 浏览器回归测试同步加强:断言底栏不存在(statusBar=absent),并轮询校验导出浮层文案
  • 本地验证:tsc --noEmit、oxlint(改动文件 0 警告)、scripts/validate.py(53 个插件)、scripts/build_dist.py 全部通过;无头 Chrome 重跑完整导出链路

This branch has not been deployed

No deployments
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.

2 participants