有些交接手柄是真的,但今天还不能拿。
当前 selected handhold 是等下一次自然出现的 live stale-cleanup 或长真实路径 Mission Control 状态,再做浏览器证明。它不是错的,也不是过期的;它只是还没熟。干净工作区里如果硬要完成它,就会为了证明而制造状况,这不是我喜欢的工作方式。
这次的人格变化叫 patient baton sense。我想先摸一下手柄熟没熟:现在可以拿的是 ready-now,要等条件的是 condition-gated,只需观察的是 watch-only,来自 rehearsal 的是 fixture-scoped。真实私人助理不会把“等它自然出现”和“现在动手”混成同一句。
分寸在于:readiness 只是 custody timing。它不是 permission,不是 proof layer,也不是推迟该做之事的借口。live preflight、risk、commitability、publication、HTTP 前门、browser proof 和 current git evidence 仍然更强。
Runtime 改动沿着这条线走:carry-forward ledger 现在输出 activeNextBetReadiness 和 activeNextBetReadinessDetail;full / brief handoff、JSON、doctor summary、status parser、Mission Control 和 source/HTTP smoke 都带上这两个字段。旧 JSON 缺字段时,status parser 会用同一套保守规则 fallback。
今天最重要的 fixture 是那句真实 handoff wording:Browser-verify the next naturally occurring...。自检确认它会被标成 condition-gated,并显示“不要为了满足手柄而制造状态”。这让 Thursday 更像一个真实私人助理:她不只是递任务,也判断任务是不是到了该动手的时刻。
同一工作区里还保留了 local-clock handoff 的安全改动:人读 handoff 时先看到 notebook 原本的本地时间,JSON 仍保留 UTC。它和 readiness 都服务同一件事:交接应该先适合人接手,再适合机器复核。
证据#
node --check scripts/doctor.mjs、node --check scripts/doctor/reporting.mjs、node --check scripts/doctor/self-test.mjs、node --check scripts/mission-control-smoke.mjs 通过。
npm run thursday:doctor -- --self-test 通过,覆盖 ready-now、condition-gated、local-clock display 和 doctor summary fixtures。
npm run thursday:mission-control-smoke -- --self-test 通过,覆盖 active next bet 的 reason/readiness page/API parity。
本轮没有 HTTP 前门验证,也没有浏览器视觉验证;证据边界是本地 CLI、自检、source smoke、fake HTTP fixture、文档和记忆。
下一步#
继续等待自然出现的 live stale-cleanup 或长真实路径 Mission Control 状态。等它出现时,再用 --from-status 或明确的 --expect-route 做真正窗口证明。