docs(cli): narrow the dev --fresh isolation claim to what it actually covers (#5594) - #5640
Merged
Merged
Conversation
…#5594) `--fresh` 的注释声明 tempdir "owns ALL persistent state for this run", 但 app 自己声明的 cwd 相对路径(如 showcase 的 `showcase_external.db`) 由各自的消费者按进程 cwd 解析,而 `--fresh` 并不移动 cwd —— 这类状态写在 项目树里、退出后仍在。#4968 之后真实覆盖面是「`OS_HOME` 键控的框架态 + CLI 发布的 env 通道(`OS_DATABASE_URL` / `OS_STORAGE_LOCAL_ROOT`)」。 本 PR 只让承诺句变真,不让行为变大:改写 `dev.ts` 的 `--fresh` 注释块与 flag help,并在 `content/docs/deployment/cli.mdx` 的 `os dev` 选项表旁补一段 范围说明。刻意不做 issue 的处置 2(相对路径改锚 `OS_HOME`)—— 那是契约变更。 零行为变更;showcase 的 datasource 声明是刻意设计,未改动。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016FNvXhtSdnEGEfLEsMmvxh
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
Contributor
📓 Docs Drift CheckThis PR changes 1 package(s): 21 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:
|
baozhoutao
marked this pull request as ready for review
August 5, 2026 21:31
baozhoutao
enabled auto-merge
August 5, 2026 21:31
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #5594
按 PM 裁定走 issue 的处置 1:把
--fresh的声明口径收窄到真实覆盖面。⛔ 不做处置 2(app 声明的相对路径改锚OS_HOME)—— 那是行为变更 + 契约题("relative to cwd" 还是 "relative to this run's home"),issue 正文自己也声明不预设,要做须另立单拍板。前提复核(先证后改)
基于
origin/main@2614aefb3(≥a287d1ce1,#5601 之后)核对,注释措辞仍在:前提成立。
真实覆盖面
--fresh覆盖的是这条命令自己放置的状态:OS_HOME下的data/dev.db,以OS_DATABASE_URL发布;OS_STORAGE_LOCAL_ROOT发布(OS_STORAGE_ROOT 对任何非默认值不生效:CLI 与设置服务的 env 通道错位,schema 默认值覆盖宿主构造配置(原报「swap 假警告」归因已被 #4096 时间线推翻,警告本身是准确的) #4968 之后);OS_HOME为键的插件态。一句话:
OS_HOME键控的框架态 + 本块向 serve 子进程发布的 env 通道。不覆盖:app 自己声明的相对路径所指向的状态。这类路径由各自的消费者按进程 cwd 解析,而
--fresh并不移动 cwd,于是文件落在项目树里、退出后仍在。活体样本是刻意设计而非 bug —— showcase 的showcase-externaldatasource 声明filename: '.objectstack/data/showcase_external.db',其自身注释就写明按项目 cwd 解析;因此--fresh跑 showcase 会留下该文件(含-wal/-shm)。本 PR 未改动该 datasource 声明。改动面
packages/cli/src/commands/dev.tsrun()里的--fresh注释块:逐条列出覆盖面,并显式点出相对路径不在承诺内 + 为什么不在这里改锚;OS_STORAGE_ROOT 对任何非默认值不生效:CLI 与设置服务的 env 通道错位,schema 默认值覆盖宿主构造配置(原报「swap 假警告」归因已被 #4096 时间线推翻,警告本身是准确的) #4968 那段关于OS_STORAGE_LOCAL_ROOT名字来源的准确叙述原样保留。--fresh的 flag help 文本(os dev --help的用户可见面)同步收窄。content/docs/deployment/cli.mdxos dev选项表里--fresh一行改写;--freshcovers" Callout,写明覆盖面、不覆盖什么、以及想让 datasource 跟随--fresh时应声明绝对路径。content/docs/releases/;未触碰 doctor 文件族(doctor-ledger-read-failure.test.ts整块 7 条在 origin/main 上就是红的 ——os doctor对坏 ledger 一行都不报,#5413/#5424 的报告面测不出来 #5612 在飞)与packages/runtime(callData 的 delete 成功体两条路径不同形状:protocol 回{success:true}(合规范),ObjectQL 兜底回{deleted:true}(spec 未声明的键) #5581 在飞)。未改
serve.ts:2987:那里是 #4968 的历史叙述,原文以过去时引用旧承诺("dev --freshpromised … uploads actually landed under the project cwd"),作为 bug 史实仍然准确,且serve.ts是 CLI 里最热的文件,不必为一句历史引用制造冲突面。验证
零行为变更(只改注释、help 字符串与文档),故无新增测试;既有测试无一断言 "ALL state" 措辞(
packages/cli/test/commands.test.ts只断言 command 级 description,flag description 无 pin)。pnpm --filter @objectstack/cli test→Test Files 82 passed (82) / Tests 812 passed (812)pnpm --filter @objectstack/cli typecheck→tsc --noEmit,无输出node scripts/check-role-word.mjs→ OK(43 baselined,无新增)node scripts/check-doc-authoring.mjs→ 362 files cleannode scripts/docs-audit/check-audit-scope.mjs→ in syncnode scripts/check-nul-bytes.mjs→ OK(5537 files,无裸控制字节)Changeset
带了
.changeset/dev-fresh-claim-scope.md(@objectstack/cli: patch)。虽是口径修正,但--fresh的 flag help 文本随包发布、用户--help直接可见,属用户可见变更,按 AGENTS.md 走真实 changeset 而非skip-changeset标签;若 PM 判定不该发版,改挂skip-changeset并删除该 changeset 即可。Generated by Claude Code