Skip to content

CLI 里仍有两处把 DEFAULT_INSTALLED_PACKAGES_DIR 的取值复述成字面量(#5996 三件套之外的残留) #6643

Description

@os-project-manager

#5996 落地时(去 ??、加具名报告行、让 skipped 行的 fix 引用真实解析出的 dir)按单内三件套收口,扫描消费半径时发现同类残留两处,按 PD #10 记录,不在该 PR 内顺手扩:

事实

  1. packages/cli/src/commands/doctor.tsinstalledPackageLedgerFailureCheckfix 开头写死:

    The ledger is the `.objectstack/installed-packages/` directory under the
    project root; it exists here, ...
    

    该行触发时(目录解析成功、existsSync 通过、读取抛出),doctor 手里真实 dir —— os doctor?? 兜底 DEFAULT_INSTALLED_PACKAGES_DIR —— 同一函数里两行之隔,一行明令禁止这个写法 #5996 之后它就挂在 reading 上(InstalledPackageLedgerReading.dir),只是这个 check 没接。与 os doctor?? 兜底 DEFAULT_INSTALLED_PACKAGES_DIR —— 同一函数里两行之隔,一行明令禁止这个写法 #5996 第三件(installedPackageLedgerSkippedEntriesCheck 同一句字面量)完全同类,修法同形:签名加 dir: string,fix 引用之。os doctor?? 兜底 DEFAULT_INSTALLED_PACKAGES_DIR —— 同一函数里两行之隔,一行明令禁止这个写法 #5996 的立单人只点名了 skipped 那处,故此处单列。

  2. packages/cli/src/commands/package/install.ts(约 L218) 安装成功后的提示:

    The manifest is cached under .objectstack/installed-packages/ on the
    runtime host and re-registers on every boot (survives restarts).
    

    这句描述的是远端 runtime 主机上的目录 —— CLI 此刻并没有加载远端的 @objectstack/cloud-connection,无从读它的常量,所以这更接近「对惯例的描述」而非「消费端兜底」。列入是为完整:若哪天权威常量改值,这句 prose 会无声失真。可选修法:本地静态引用常量仅作展示(cli 已声明该可选依赖),或接受其为描述性文案并注明。

判级

观察类:两处都不是今日可达的缺陷(该导出从未缺失过,值也从未变过),属 #5996 同一判断的延伸 —— 字面量是消费端替生产者代言。留 finding,随下次动这两个文件时顺手做掉即可。


Generated by Claude Code

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions