chore(web): 降级留痕 + 收尾 —— 静默失效改为可观测;picker 升 0.1.5 消漂移(档案 88 / T07)
- 【留痕】model-catalog 读不到目录:console.warn(每进程一次)+ 新增 catalogDiagnostics(),并把结果透出到 GET /api/me/model-providers 的 catalog 字段;plugin-compat 的 platformPkgCount()=0 同样告警一次 ⇒「功能没做」与「做了但读不到目录」从此**可区分**(这正是那个 P1 长期潜伏的原因) - 【前端】插件 0.3.13:厂家目录不可读 / 为空时**如实提示**(含目录路径),不再静默给空列表 - 【消漂移】poc/workspace-scoped-picker 升 0.1.5 并重打包铺发 —— 两实例已装 0.1.5 且含按序探测的新代码(此前只改了源码、线上还是旧候选) - 【文档】README 补 DSHS_PACKAGE_DIR / DSHS_COMPAT_ROOT / DSHS_PI_AI_DATA_DIR(逃生口此前**未在任何地方暴露**) - 【回归】verify-dsh-install 扩到 6 组(含「读不到 ≠ 目录为空」的区分);verify-platform-admin-section 加 2 条断言(词典 284/284) - 真环境回归:picker 在 /usr/local 仍 import OK(没把本来能用的改坏)|providers 39(端点回 38)|platformPkgCount 223
This commit is contained in:
1 parent
cbaf3ad653
commit
1d72e8f9c8
9 files changed
+127
-6
No files matched your search
@@ -72,11 +72,24 @@ function platformPkgDir(pkg: string): string {
|
||||
return join(dshScopeDir(), shortName(pkg))
|
||||
}
|
||||
|
||||
/** 是否已经就「平台包目录不可读」告过一次警(避免刷日志)。 */
|
||||
let warnedScopeUnreadable = false
|
||||
|
||||
/** 平台内置 @deepseek-ai 包的数量(目录级,低成本)。 */
|
||||
export function platformPkgCount(): number {
|
||||
try {
|
||||
return readdirSync(dshScopeDir()).filter((n) => !n.startsWith('.')).length
|
||||
} catch {
|
||||
// ⚠️ 这里**不能只返回 0**:调用方会把它当成"没有平台包"⇒ 预检直接退化成
|
||||
// 「平台包目录不可读」——**安全网静默失效**(上传不兼容插件不再被拦)。
|
||||
// 2026-09-14:加一次告警,让"读不到"这件事可观测(见 `04-调整方案/88`)。
|
||||
if (!warnedScopeUnreadable) {
|
||||
warnedScopeUnreadable = true
|
||||
console.warn(
|
||||
`[plugin-compat] 平台包目录不可读:${dshScopeDir()} —— 插件兼容性预检将退化为「不检查」。` +
|
||||
' 检查 DSHS_DSH_BIN / DSH_COMPAT_ROOT 是否正确(见 src/web/dsh-install.ts)。',
|
||||
)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user