跳转到内容

测试与排查

每次交付前都跑同一套检查:

Terminal window
npm run typecheck
npm run build
cargo fmt --check
cargo check
npx --yes @haloforge/plugin-pack@0.2.13 check .
npx --yes @haloforge/plugin-pack@0.2.13 pack . --out dist/package

hf 操作的是本地 HaloForge workspace。源码仓库示例使用 npm run hf -- ...;Windows 安装版重新打开终端后可以直接使用 hf ...。macOS 当前还没有自动 PATH link,请先运行 command -v hf 确认。

Terminal window
cd /path/to/HaloForge
npm run hf -- plugin install local /path/to/plugin/dist/package/<plugin-id>-<version>.hfpkg --json
npm run hf -- plugin list --json

插件应显示:

  • enabled: true
  • state: "active"
  • error_message: null

启动配置和 catalog admin 命令见命令行

HaloForge 会把应用、前端桥接和插件日志写入按天滚动的文件:

Terminal window
tail -f ~/.haloforge/logs/haloforge.log.$(date +%F)

开发时可以提高 Rust tracing 级别:

Terminal window
RUST_LOG=debug npm run tauri dev

前端插件使用 @haloforge/plugin-sdkcreatePluginLogger();Rust 后端使用 ctx.log(...)。生图和其他网关流程应记录请求开始、成功、失败,并包含 request ID、模型、尺寸、状态、耗时、输出数量和短错误摘要。不要记录 API key、bearer token、完整 prompt 或原始图片/base64。

Terminal window
unzip -l dist/package/dev.example.my-plugin-0.1.0.hfpkg

UI 插件至少应包含:

  • manifest.json
  • 前端 bundle
  • manifest 声明的 CSS
  • manifest 声明的 native library
  • manifest 引用的 icon/assets

优先检查:

  1. registerPlugin() 的 ID 是否和 manifest.json 完全一致。
  2. entry.frontend 是否指向包内实际 JS 文件。
  3. integration.*.panel_entry 是否指向 panel bundle。
  4. 包里是否包含前端 bundle 和 CSS。
  5. bundle 执行时是否有 JavaScript 异常。
  6. Rust 后端是否加载并注册命令。
  7. host capabilities 和 permissions 是否声明完整。