# Viva扩展发布包和运行态一致性检查 **诊断流程样例** | 步骤 | 命令/检查 | 成功信号 | 失败信号 | |---|---|---|---| | 1 | `npm run doctor:runtime -- --json` | `extension.loaded_dir` 指向 `40-release/edge-extension-unpacked`,且与 `dist` checksum 一致 | Edge 加载目录仍是旧发布目录,或 release 落后于 dist | | 2 | 比较 `dist/manifest.json`、`40-release/edge-extension-anki-local/manifest.json`、`40-release/edge-extension-unpacked/manifest.json` | manifest 引用的 JS/CSS 文件都存在,未引用文件不残留 | 旧 hash bundle 仍在 assets 目录可被扫描 | | 3 | `launchctl print gui/$UID/com.bytedance.viva-anki-concept-helper` + `lsof -nP -iTCP:17331 -sTCP:LISTEN` | ProgramArguments 指向运行态 helper,端口 17331 正在监听,helper 版本戳匹配源码构建 | 端口未监听、label/显示名未更新、运行拷贝版本旧 | 预期输出:doctor 在 dry-run 下只报告,不改文件;失败时给出 `npm run build && npm run release:sync:clean && launchctl kickstart ...` 这类下一步命令。