在 #6643 核验 packages/cli/src/commands/package/install.ts 那句 post-install 提示时量到的上游事实,按 PD #10 单列,不在 #6643 的 PR 内顺手扩(该卡显式圈定不动 @objectstack/cloud-connection)。
事实
MarketplaceInstallLocalPlugin 的两个端点对「账本目录在哪」这件事口径不一致:
GET /api/v1/marketplace/install-local(console 的 Installed Apps 列表)带真实解析值 —— packages/cloud-connection/src/marketplace-install-local-plugin.ts L765:storageDir: this.storageDir。
POST /api/v1/marketplace/install-local(安装)不带。其 data 只有 { manifestId, version, versionId, installedAt, hotLoaded, upgradedFrom, translationsLoaded, seeded, note }(同文件 L723-735)。
this.storageDir 本身是真实解析过的:构造函数 new LocalManifestSource(config.storageDir)(L157),this.storageDir = this.ledger.dir(L158)—— 即宿主真配了就用配的,没配才落到 DEFAULT_INSTALLED_PACKAGES_DIR。
后果
os package install 成功后打印的这句:
The manifest is cached under .objectstack/installed-packages/ on the
runtime host and re-registers on every boot (survives restarts).
描述的是远端 runtime 主机的目录,而 CLI 手里没有任何可引用的解析值 —— 刚读完的那个响应就没有。于是只能写字面量,而这个字面量在宿主配了 storageDir 时是错的(不是「将来可能失真」,是当下就失真)。#6643 把这处按「描述性文案」注明保留,正是因为除了本 issue 说的上游补齐之外,别的修法都更差:本地静态引用常量会让一条纯 HTTP 命令在该包缺失时加载即失败,动态引用则需要一个字面量兜底 —— 即 PD #12 禁止、#5996 刚删掉的那个 ??。
可选修法
POST 响应的 data 补上 storageDir: this.storageDir,与 GET 侧对齐;CLI 随后即可引用真实远端目录,字面量连同 #6643 留下的那段注释一起删掉。
判级
观察类:今天没有用户会因此报错,只有配了非默认 storageDir 的自托管宿主会读到一句指错路径的提示。不带 pm:queue,留给 triage 定级。
Generated by Claude Code
在 #6643 核验
packages/cli/src/commands/package/install.ts那句 post-install 提示时量到的上游事实,按 PD #10 单列,不在 #6643 的 PR 内顺手扩(该卡显式圈定不动@objectstack/cloud-connection)。事实
MarketplaceInstallLocalPlugin的两个端点对「账本目录在哪」这件事口径不一致:GET /api/v1/marketplace/install-local(console 的 Installed Apps 列表)带真实解析值 ——packages/cloud-connection/src/marketplace-install-local-plugin.tsL765:storageDir: this.storageDir。POST /api/v1/marketplace/install-local(安装)不带。其data只有{ manifestId, version, versionId, installedAt, hotLoaded, upgradedFrom, translationsLoaded, seeded, note }(同文件 L723-735)。this.storageDir本身是真实解析过的:构造函数new LocalManifestSource(config.storageDir)(L157),this.storageDir = this.ledger.dir(L158)—— 即宿主真配了就用配的,没配才落到DEFAULT_INSTALLED_PACKAGES_DIR。后果
os package install成功后打印的这句:描述的是远端 runtime 主机的目录,而 CLI 手里没有任何可引用的解析值 —— 刚读完的那个响应就没有。于是只能写字面量,而这个字面量在宿主配了
storageDir时是错的(不是「将来可能失真」,是当下就失真)。#6643 把这处按「描述性文案」注明保留,正是因为除了本 issue 说的上游补齐之外,别的修法都更差:本地静态引用常量会让一条纯 HTTP 命令在该包缺失时加载即失败,动态引用则需要一个字面量兜底 —— 即 PD #12 禁止、#5996 刚删掉的那个??。可选修法
POST 响应的
data补上storageDir: this.storageDir,与 GET 侧对齐;CLI 随后即可引用真实远端目录,字面量连同 #6643 留下的那段注释一起删掉。判级
观察类:今天没有用户会因此报错,只有配了非默认
storageDir的自托管宿主会读到一句指错路径的提示。不带pm:queue,留给 triage 定级。Generated by Claude Code