本贴是 domain:cli 座位的唯一权威登记 (座位贴协议,维护者 2026-08-06;索引 label:pm:seat)。单写手:只有在任座位 PM 编辑正文;接管/移交 = 改正文 + 一条审计评论(评论只存档,不承载状态)。读侧:正文 + 晚于正文最后编辑的评论。活性惰性判定,仅接管冲突时评估。
范围 packages/cli, runtime, verify, qa, types, packages/rest, packages/mcp, packages/observability, packages/client, packages/client-react, packages/cloud-connection, packages/create-objectstack, packages/adapters/*, packages/plugins/plugin-hono-server, plugin-dev — per the SKILL domain-lane table.
当前 PM Session session_01P7vaLs7bhBPi9m3JyzkhDj(GitHub os-zhuang);2026-08-13 10:2xZ 经维护者 /pm-dispatch cli 接管。前任 hotlong(session session_01B3Kurx8qufrDzNjk4rag7V)2026-08-12 22:27Z 自述收工但未改贴,已一并修复。前任账目与 ops-intel ①–㊽ 保留在更早的 body revision 与其四条 ops-intel 评论。
在飞台账(2026-08-13 15:3xZ) 本班次 MERGED 6,ACCEPT 待落地 1,在飞 1,REWORK 0,判死 0。
卡 PR 结果 #8356 #8387 MERGED 631ddbf36 — features.marketplace 改为按路由表逐请求派生 #8074 #8407 MERGED 54589ee29 — assertArmed 武装守卫 + 4 个 fixture 改造 #8355 #8419 MERGED 3db37957c — cloud-connection README 配方(含一轮补丁) #8389 #8431 MERGED — serve.ts 离线臂挂 RuntimeConfigPlugin #7912 #8426 MERGED — nav 可服务性裁剪 + lint 强制诊断 + spec 门禁顺序合一(含一轮补丁) #8266 #8439 MERGED — stdio 记录资源的 ADR-0049 曝光门 #8388 #8466 ACCEPT,已入队 ,等落地#8373 #8487 在飞 (target:v17 Bug,导出时区),dev 已开草稿 PR
决策箱(3) :[Decision] Fail-close isAuthGateAllowlisted's "no path ⇒ exempt" default (Option 2 of #7432) #7898 · [Decision] Should X-Actor keep outranking the authenticated identity on /meta writes? (surfaced by #7749) #7941 · finding: a THIRD hand-written ExecutionContext assembly survives in the stdio MCP plugin, and it drops tabPermissions / accessToken #7279 —— ⚠️ 后两张标签是 pm:queue 但被当决策箱记账,已上报维护者待定夺 ,⛔ 本席不自行改标签。client SDK drops the precise spec types at its boundary: 32 methods return Promise< any > on a package that already depends on @objectstack/spec #8140 标签僵局(两条相隔 80 秒、结论相反的分诊评论),已上报分诊席。The dispatcher emits unregistered error.code values verbatim — three suites pin bodies that ApiErrorSchema would reject #8087 已裁 option B-as-a-gate,但一半交付物在 packages/spec(spec 席领地),拆卡方案压在分诊席 >12h。⚠️ 裁决自带时效性。[finding] create-objectstack: non-blank remote templates fail first npm run build on published 16.1.0 — fix is at HEAD, needs 17.0.0 release + canary verification #7644 —— target:v17,只等 17.0.0 release + canary。发布是人工专属,任何 AI 座位不得触发 ⇒ 只能由维护者解。新增 findings(dev 立,待分诊):RuntimeConfigPlugin's features.installLocal is still a hand-maintained knob — the same declared-is-not-enforced shape #8356 just removed from features.marketplace #8388 派生出的 isMarketplaceBrowsePattern excludes install-local by bare startsWith, so an adjacent spelling is claimed by neither derived flag #8467 · [finding] 79 of 82 dogfood fixtures boot org-less, and nothing has swept them for #8023's disarm now that a probe exists #8408 · finding: serve.ts's cloud-connected marketplace arm can silently replace a host config's own marketplace plugins #8357 · rest-server.ts's looksLikeMissingRelation matches unquoted prose, where the shared leak predicate now requires the driver's quoted template #8264 · HttpTestAdapter's record action types resolve the DEFAULT API mount only — a deployment that sets api.apiPath or crud.dataPrefix is unreachable #7983 。 热文件串行队 文件 / 包 顺序 packages/rest/src/rest-server.ts⚠️ 在飞 #8373 (export-format.ts + 导出路由调用点)→ #8039 (DATA_RECORD_READ_PARAMS 上方 docblock,仅散文)packages/cloud-connection#8388 (已入队)→ 空packages/mcp⚠️ #8328 前提已变 ,见下packages/cli/src/commands/serve.ts#8368 (维护者亲写的 artifact-pinned boot;派发前先验它是否真落在 serve.ts)
⚠️ #8328 派发前必查 :卡片描述的 listSkills: async () => (await metadataService.list('skill')) ?? [] 一行闭包已不存在 —— mcp-server-runtime.ts:1010 现在是多行闭包,:1011 有「记录读取裁决」注释,疑似 #6504 的 listDiagnosed 已落地。卡片自己的协调注记要求:若 listDiagnosed 已落地,针对新方法写而非旧的。⛔ 不按卡片原文派。
常设承诺(现行维护者指令) 并发上限 5 ;空位一出即补派。S 级机械 + M ⇒ mode:subagent (维护者 2026-08-12)。mode:cloud 只留 L/XL、须活过 PM 会话、浏览器/dogfood 验证、build 重 M 卡。模型三档 sonnet / opus / claude-fable-5,逐次显式传参。⛔ 改 .claude/skills/pm-dispatch/** 一律 Fable;⛔ 改变契约接受/拒绝行为或扩大公开面的卡一律 Fable。ACCEPT/入队前亲核 ESLint 与 TypeScript Type Check 两个 job 的 conclusion=success ,⛔ 不取聚合读数、⛔ 不因「本地绿」跳过。ADR 与 skills 路径的 PR:⛔ 不合并、不入队、不挂 auto-merge ,只翻 ready 等人工合;混合 diff 一条命中即分叉。归档由卡的终局(PR MERGED)触发 。入队 = 翻 ready 再 调 enable_pr_auto_merge ,两步缺一不可。落地判据取 timeline 的 enqueued/merged 事件 + origin/main 实体核验,⛔ 不取 auto_merge 字段(回执为空,零区分度)。target:v17 与 Bug 优先 (维护者 2026-08-13,原话:「v17 的任务应该优先,bug应该优先」)。⚠️ 优先是排序,不是豁免 —— 同日两次裁定:v17 缺陷 【缺陷】数据导出(CSV/XLSX)日期时间列硬编码按 UTC 渲染,与界面时区不一致(@objectstack/rest export-format.ts formatDate) #8373 不豁免 同文件串行;加速处理 指令下同包串行也不豁免 。⛔ 未来的加速指令不自动重开这两条。巡检节奏:在飞时 ≤45 分钟;待命 60–70 分钟。
说明 —— 本班次新增 ops-intel(㊾–🅃) ㊾ 落地探针必须是 PR 引入 的东西,不是它碰过 的东西。 本席用「packages/spec/src/data/api-derivation.ts 是否在 main 上」判 fix(rest,lint,spec): prune nav entries whose destination object cannot serve, and refuse them at authoring time (#7912) #8426 落地 —— 该文件在 PR 之前就存在 (b7a86ea5f),PR 只是修改它。探针恒为真,被当成证据,代价是两张绿 PR 各干等 ~45 分钟。正确形状:探 export async function enforceApiExposure(PR 引入的 export),而不是探 enforceApiExposure(main 上已有 7 处)。同一次调用里另一个探针给出相反读数才暴露了它 —— 两个探针互相矛盾时,去取第三个读数,不要挑顺眼的那个信。 ㊿ 定时器在本环境不可靠,两种死法。 一次 send_later(14:06)根本没投递 ;一次容器重启把 sleep 后台任务清掉。两次都导致绿 PR 无人翻。⇒ 事件流是比定时器更可靠的唤醒源 (合并/CI/PR 事件全天密集到达);实践:每次被任何事件唤醒,顺手检查一遍待翻的 PR ,不要只依赖单一定点。🅁 check:type-check-debt 有两个反直觉性质。 ① 它跑在名为 TypeScript Type Check 的 job 里,失败不是 类型错误而是棘轮漂移(本班次红过一次);② 它拒绝在没有完整构建闭包时运行 ,报错原文点名「静默地测量另一个世界」—— 所以 dev 在本地根本跑不出来它 ,除非先付一次全工作区构建。⇒ 失败不是「dev 漏跑了检查」,是「这道检查在 dev 成本下不可运行」。缓解在派发令层面 :卡片若往隐藏测试层的包加测试文件,点明扩展名惯例(NodeNext,相对导入必须带 .js;那些老测试文件的房屋风格本身就是冻结的债)。⚠️ 账本当前零余量 (「every entry sits exactly at its measurement」),任何新错误都是红。🅂 交叉读两张卡能发现两个 dev 都看不见的碰撞。 RuntimeConfigPlugin's features.installLocal is still a hand-maintained knob — the same declared-is-not-enforced shape #8356 just removed from features.marketplace #8388 会让 serve.ts's cloud-less branch still mounts no RuntimeConfigPlugin — the air-gapped runtime's working install-local route stays undiscoverable by the Console #8389 刚落地的一个用例转红:那个 fixture 用「只传身份、不挂路由」模拟「宿主自己接了 install-local」,在标志是声明 时忠实,变成观测 后不忠实。PM 是唯一同时看得见两张卡的人。⇒ 派发前把同族在飞/新落地卡的测试 也扫一眼,不只扫源码文件面。预测后被测量证实:恰好一个用例红(:322),其余 10 绿。🅃 dev 的「typecheck clean」是包级的,看不见隐藏测试层。 两个绿读数之间可以藏着一个真缺陷,而两边都没撒谎。关键平台读数(承继) :⑳ list_pull_requests 的 merged 布尔不可信,取 merged_at · ㉛ list_issues 的 labels 是 OR 不是 AND ⇒ 单标签查询 + 本地过滤 · ㉜ 卡片正文会以颠倒结论 的方式过期,⛔ 派发前必读全部评论 · ㉞ 落点由卡片/分诊/派发令三方给出时同样要自核 · ㊳ 派发令里最具体的那句最可能过时(本班次 #7912 的三个行号全错 )· ㊻ 负结果承载结论时必须自证「本可以找到」· ㊼ PR CI 只跑受影响子集,合并队列跑全量 · ⑤ sanitizer 吃裸尖括号,写后回读(本班次一次 add_issue_comment 超时且未落地 ,重读确认后才重发)· 🆕 车道标签会在你盘点之后 才贴上(#8373 即如此),⛔ 不复用上一轮的车道集合。
迁移注记:本正文由 os-zhuang 于 2026-08-13 15:3xZ 刷新为本班次现值;更早账目见 body revision 历史。
本贴是
domain:cli座位的唯一权威登记(座位贴协议,维护者 2026-08-06;索引label:pm:seat)。单写手:只有在任座位 PM 编辑正文;接管/移交 = 改正文 + 一条审计评论(评论只存档,不承载状态)。读侧:正文 + 晚于正文最后编辑的评论。活性惰性判定,仅接管冲突时评估。范围
packages/cli,runtime,verify,qa,types,packages/rest,packages/mcp,packages/observability,packages/client,packages/client-react,packages/cloud-connection,packages/create-objectstack,packages/adapters/*,packages/plugins/plugin-hono-server,plugin-dev— per the SKILL domain-lane table.当前 PM
Session
session_01P7vaLs7bhBPi9m3JyzkhDj(GitHubos-zhuang);2026-08-13 10:2xZ 经维护者/pm-dispatch cli接管。前任hotlong(sessionsession_01B3Kurx8qufrDzNjk4rag7V)2026-08-12 22:27Z 自述收工但未改贴,已一并修复。前任账目与 ops-intel ①–㊽ 保留在更早的 body revision 与其四条 ops-intel 评论。在飞台账(2026-08-13 15:3xZ)
本班次 MERGED 6,ACCEPT 待落地 1,在飞 1,REWORK 0,判死 0。
631ddbf36—features.marketplace改为按路由表逐请求派生54589ee29—assertArmed武装守卫 + 4 个 fixture 改造3db37957c— cloud-connection README 配方(含一轮补丁)serve.ts离线臂挂RuntimeConfigPlugintarget:v17Bug,导出时区),dev 已开草稿 PRX-Actorkeep outranking the authenticated identity on/metawrites? (surfaced by #7749) #7941 · finding: a THIRD hand-written ExecutionContext assembly survives in the stdio MCP plugin, and it dropstabPermissions/accessToken#7279 ——pm:queue但被当决策箱记账,已上报维护者待定夺,⛔ 本席不自行改标签。Promise< any >on a package that already depends on@objectstack/spec#8140 标签僵局(两条相隔 80 秒、结论相反的分诊评论),已上报分诊席。error.codevalues verbatim — three suites pin bodies thatApiErrorSchemawould reject #8087 已裁 option B-as-a-gate,但一半交付物在packages/spec(spec 席领地),拆卡方案压在分诊席 >12h。npm run buildon published 16.1.0 — fix is at HEAD, needs 17.0.0 release + canary verification #7644 ——target:v17,只等 17.0.0 release + canary。发布是人工专属,任何 AI 座位不得触发 ⇒ 只能由维护者解。rest-server.ts'slooksLikeMissingRelationmatches unquoted prose, where the shared leak predicate now requires the driver's quoted template #8264 ·HttpTestAdapter's record action types resolve the DEFAULT API mount only — a deployment that setsapi.apiPathorcrud.dataPrefixis unreachable #7983。热文件串行队
packages/rest/src/rest-server.tsexport-format.ts+ 导出路由调用点)→ #8039(DATA_RECORD_READ_PARAMS上方 docblock,仅散文)packages/cloud-connectionpackages/mcppackages/cli/src/commands/serve.tsserve.ts)listSkills: async () => (await metadataService.list('skill')) ?? []一行闭包已不存在 ——mcp-server-runtime.ts:1010现在是多行闭包,:1011有「记录读取裁决」注释,疑似 #6504 的listDiagnosed已落地。卡片自己的协调注记要求:若listDiagnosed已落地,针对新方法写而非旧的。⛔ 不按卡片原文派。常设承诺(现行维护者指令)
mode:subagent(维护者 2026-08-12)。mode:cloud只留 L/XL、须活过 PM 会话、浏览器/dogfood 验证、build 重 M 卡。sonnet/opus/claude-fable-5,逐次显式传参。⛔ 改.claude/skills/pm-dispatch/**一律 Fable;⛔ 改变契约接受/拒绝行为或扩大公开面的卡一律 Fable。conclusion=success,⛔ 不取聚合读数、⛔ 不因「本地绿」跳过。enable_pr_auto_merge,两步缺一不可。落地判据取 timeline 的enqueued/merged 事件 +origin/main实体核验,⛔ 不取auto_merge字段(回执为空,零区分度)。target:v17与Bug优先(维护者 2026-08-13,原话:「v17 的任务应该优先,bug应该优先」)。加速处理指令下同包串行也不豁免。⛔ 未来的加速指令不自动重开这两条。巡检节奏:在飞时 ≤45 分钟;待命 60–70 分钟。
说明 —— 本班次新增 ops-intel(㊾–🅃)
packages/spec/src/data/api-derivation.ts是否在 main 上」判 fix(rest,lint,spec): prune nav entries whose destination object cannot serve, and refuse them at authoring time (#7912) #8426 落地 —— 该文件在 PR 之前就存在(b7a86ea5f),PR 只是修改它。探针恒为真,被当成证据,代价是两张绿 PR 各干等 ~45 分钟。正确形状:探export async function enforceApiExposure(PR 引入的export),而不是探enforceApiExposure(main 上已有 7 处)。同一次调用里另一个探针给出相反读数才暴露了它 —— 两个探针互相矛盾时,去取第三个读数,不要挑顺眼的那个信。send_later(14:06)根本没投递;一次容器重启把sleep后台任务清掉。两次都导致绿 PR 无人翻。⇒ 事件流是比定时器更可靠的唤醒源(合并/CI/PR 事件全天密集到达);实践:每次被任何事件唤醒,顺手检查一遍待翻的 PR,不要只依赖单一定点。check:type-check-debt有两个反直觉性质。 ① 它跑在名为TypeScript Type Check的 job 里,失败不是类型错误而是棘轮漂移(本班次红过一次);② 它拒绝在没有完整构建闭包时运行,报错原文点名「静默地测量另一个世界」—— 所以 dev 在本地根本跑不出来它,除非先付一次全工作区构建。⇒ 失败不是「dev 漏跑了检查」,是「这道检查在 dev 成本下不可运行」。缓解在派发令层面:卡片若往隐藏测试层的包加测试文件,点明扩展名惯例(NodeNext,相对导入必须带.js;那些老测试文件的房屋风格本身就是冻结的债)。:322),其余 10 绿。关键平台读数(承继):⑳
list_pull_requests的merged布尔不可信,取merged_at· ㉛list_issues的labels是 OR 不是 AND ⇒ 单标签查询 + 本地过滤 · ㉜ 卡片正文会以颠倒结论的方式过期,⛔ 派发前必读全部评论 · ㉞ 落点由卡片/分诊/派发令三方给出时同样要自核 · ㊳ 派发令里最具体的那句最可能过时(本班次 #7912 的三个行号全错)· ㊻ 负结果承载结论时必须自证「本可以找到」· ㊼ PR CI 只跑受影响子集,合并队列跑全量 · ⑤ sanitizer 吃裸尖括号,写后回读(本班次一次add_issue_comment超时且未落地,重读确认后才重发)· 🆕 车道标签会在你盘点之后才贴上(#8373 即如此),⛔ 不复用上一轮的车道集合。迁移注记:本正文由
os-zhuang于 2026-08-13 15:3xZ 刷新为本班次现值;更早账目见 body revision 历史。