Skip to content

[PM seat] domain:cli — 🟢 os-project-manager #6024

Description

@claude

本贴是 domain:cli 座位的唯一权威登记。 座位贴协议(维护者 2026-08-06 批准,自 #4604 单正文座位表迁移而来):索引 = label:pm:seat,总入口 #4604(指针页)。

单写手规则:只有在任座位 PM 编辑本贴正文;接管/移交 = 改正文 + 一条审计评论(评论只作交接存档,不承载状态)。空缺争用时:动手前重拉正文、审计评论时间戳先到先得、写后回读。活性判定(惰性,无心跳,仅接管冲突时评估):Routine 座位查调度器,会话座位查最近产出评论时间戳,>24h 无产出即可回收。

范围

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(会话或 Routine ID)

Session session_017uFVNMmTxLpmfQYiuKM1Yx (GitHub account os-project-manager); took over 2026-08-08 via maintainer-initiated /pm-dispatch cli. Previous holder: session session_01Wbxm29qPKnLf44AbSxizqW (account qq9340100), last output 2026-08-07 16:35Z.

说明

🟢 Round 1 CLOSED 3/3 · Round 2 CLOSED 4/4 MERGED · Round 3 在飞 1 单。 Maintainer instruction 「加速」 received ~02:10Z: batch raised to 5, patrol interval tightened 35 → 20 min.

Round 1 — all merged, all issues auto-closed

Issue PR Landed
#6322 data.find canonical-key predicate (target:v17) #6480 ec3dfd7d8
#6266 flaky exit-code pin #6481 b532f8ab1
#6334 hono position-bound grants (target:v17) #6482 1fe436d29

#6334 breached its declared surface by one file, and the dev was right. 派发令预授权的是 scripts/check-single-authz-resolver.mjs 的陈旧条目;实际红的是 check:query-options-erasure棘轮下调(它为 current-user-endpoints.ts 记录的 6 处 as any 正是被删掉的手抄读取),而该 gate 自己的报错信息就规定了那一行基线更新。同一形状,不同文件。⇒ 条件豁免要按形状写,不要按文件名写 —— 一次删除可以让不止一条基线失效。

#6334 还顺手关掉了一个没人报的缺陷:手写信封发布在 roles 上,而同文件 4 处读取读的是 positions。已在 origin/main 独立复核 —— positions 4 消费者 / 0 生产者,roles 1 生产者 / 0 消费者,并用邻词对照证明扫描器可信。典型的「无生产者」形状,类型系统和 lint 都看不见。

Round 2 — dispatched 02:06Z / 02:12Z,四单全部落地(05:02Z 收官)

Issue PR Landed
#6217 (target:v17) --json stdout 纯净 #6524 2b641ddd4
#6250 (target:v17) unique-violation 谓词 #6541 88f9d94bb
#4633 import dry run 走 validateData #6532 53ef05744
#6055 MCP 元数据停机诊断 #6507 5c2716b0c

四单全部一次通过队列,零返工,零弹出。验收一律对着 GitHub 而非 dev 报告:改动文件清单比对声明面、无 content/docs/releases/ 改动、ESLint + TypeScript Type Check 读到 job conclusion: success 才翻 ready;入队一律用 gh-readonly-queue/* 分支名确认,从不用「main 里没有」反推。

#4633 的跨车道问题:已由「席位空缺」这一事实解决。 #6532 越面进 packages/objectql/src/engine.ts(ObjectQL.validate() 的 insert 分支补跑 applyFieldDefaults + initializeSummaryFields,+24 行,另加 validate-only.test.ts)。已事后向 engine-core 座位贴 #6019 发跨席通知(comment 5224445433),给了三个选项。无人回复,因为该席位是空的 —— #6019 首条审计评论记录 2026-08-07 09:20Z「在任 → 空缺」,系维护者 rc.4 封版下令「开发完了就停」后的计划性收官,非失联。空席 + main 近期无 packages/objectql 提交 ⇒ 撞车风险实为低,默认路径成立。dev 给出的理由比通知里写的更硬:#6474 自己的提交信息标题就带 #4633 ruling D,两个 PR 是同一件工作的两半。第二处越面 packages/rest/src/export-format.ts 仅注释文本、零行为,无需动作。

吞吐的约束是文件面,不是批量。 剩余车道池集中在 packages/rest/src/rest-server.ts(#6349#5582#6306)和 packages/cli(#5996#6345)。#6217#6250 落地后这两处均已释放。真正买到并行位的是中途收窄 #6250:它声明面里的 import-runner.ts 是该卡的附带半边(把一条 Postgres-only 正则迁到新谓词),从来不是它的用户可见修复,而那正是 #4633 消费半边要动的文件。收窄经 SendMessage 下达,#6250 的裁定与验收标准未变 —— 事后证明该收窄成立:#6541 终稿确无 import-runner.ts,#6250/#4633 的撞车未发生。

Round 3 — 在飞

Issue 声明面 备注
#6485 data.find{ limit: 0 } 被真值性丢弃 packages/client/src/index.ts 两份 find 拷贝必须同改;附硬闸,见下

#6485 附的硬闸:派发令要求 dev 先在 packages/rest 量出服务端对 top=0 的真实行为,三种结果分岔 —— 服务端返回零条 ⇒ 照发;服务端拒绝 top=0 ⇒ 停下报告(把静默错答案换成硬报错是行为决策);服务端忽略 top=0 ⇒ 停下报告(那样是把一个静默错答案换成另一个,比原 bug 更糟)。

决策箱

#6469 已转 needs-user-decision(本席 05:00Z) —— os dev / os start / os migrate 解析出三个不同的默认库(dev.db / objectstack.db / standalone.db,同一目录),导致 os migrate plan 在自己刚建的空库上报告全量 drift。缺陷本身无争议且方向是反的(真相零漂移,输出「22 张表待创建」),且自称 dry-run 却有写副作用。不派发的原因是收敛方案有三个用户可见岔口:统一后取哪个文件名(选谁,另外两个的存量环境升级后都指向空库,与「数据没了」无法区分)、存量文件走兼容读取还是迁移提示(后者要决定 CI 非交互下的行为)、--database-url 要不要接受 sqlite://。已在评论里给出切法建议:「三条路径都不读 objectstack.config.ts 声明的数据源」这半边没有岔口,可先落;文件名统一与存量处置等裁定。二阶事实一并记录:sqlite-occupancy.ts:9 的动机注释把「pnpm dev 持有 standalone.db」写成主场景,而默认下 os dev 持有 dev.db —— #3917 那套占用检测在它自己描述的主场景里不可能触发

Health metrics(05:02Z 实测)

⛔ Needs maintainer/admin action

#3739 requires read access to objectstack-ai/cloudadd_repo 本班次再测:you don't have access。在 Claude GitHub settings 授予该 workspace cloud 读权限之前,本车道任何会话都无法做这张 target:v17 卡。

#4829 是结构性不可认领,而非仅仅无人认领:target:v17、size L,但裁定把它归在 spec 车道 lead 之下,而 domain:cli 标签又让它对 spec 席的 sweep 隐身。已再次上报分诊席(单生产者规则禁止本席改标)。

⚠️ 运维情报(下任/并行席必读)

GitHub API 配额是账号级共享的 —— dev 前台阻塞轮询 CI 尤其吃配额,08-07 曾整体耗尽。状态查询走 git 协议(git ls-remote / git log origin/main,不消耗 REST 配额),REST 只留给必须的验收动作。
merge queue 构建失败不会关掉 auto-merge —— PR 被踢出后会自动重新入队,⛔ 不必人工重排。
skip-changeset 落标必须写并集 —— issue_write 的 labels 是整集 PUT,只写一个标签会抹掉机器人标签。
本仓共享检出是 shallow clone(实测 51 commits),git log -- <path> 会给出看起来正常的假空结果;任何历史/祖先读数前先 git fetch origin main --deepen=80
本贴 01:51Z 实测一次 sanitizer 写侧就地删除:正文里反引号内的 git log -- <path> 被存回为 git log -- ,占位符整个消失、其余正文完好 —— 与 SKILL notes 12 的第二形态逐字相同,反引号不提供保护。字面尖括号一律写 < / >,并写后回读逐段核对:失效完全静默,API 返回成功、渲染页看不出缺口。(05:02Z 本轮改写后已逐段回读复核,④⑤ 两处占位符与本条的 </> 均完好存活 —— 该转义写法经两次实测有效。)
本车道判死基线(round 1 实测,3 单):dispatch→report ~69 / ~70 / ~90 分钟,分支推送在 ~57–64 分钟。⇒ 45 分钟是探活门槛,不是判死门槛。
⛔ round 2 实测:四个 dev 在「活干完、等 CI 收敛」阶段全部静默死亡。 四份活都已 push、开 draft PR、七个 workflow 全部 completed: success(绿于 02:41Z / 03:10Z / 03:22Z / 03:43Z),然后零报告;ListAgents 返回 No reachable agents没有任何工作损失,只有最多两小时的空转 —— 因为证据在仓库里,不在报告里。两条处置:


上一班次留档(qq9340100 班次,原文保留):

账目(该班次 15 单 MERGED 全关闭):#6071#6205#4873#6220#5856+#5800#6244#5881#6246#5820#6272#5521#6295#5822#6303#6265#6344#6241#6348#5792#6379

交接队列(该班次派生):#6206#6307#6361 / #6363(⚠️ cursor 两侧必须同向裁决)、#6345#6217#6216#6349#6306#6259#6268#6316 —— 分诊席已陆续定级入队。


迁移注记:「范围 / 当前 PM / 说明」自 #4604 座位表逐字迁移(2026-08-06);迁移时刻起本贴即该座位唯一权威。

Metadata

Metadata

Labels

pm:seatPM seat registry issue - single-writer body, index = this label

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions