Skip to content

finding(service-queue): db-queue-adapter.test.ts 的 engine-double DEBT 台账条目已可结清 —— 它自述的阻塞(缺 @objectstack/objectql devDependency)在 #5192 里已消失 #5198

Closed

Description

@os-zhuang

机械性 follow-up,来自 PR #5192(#5179)。没在该 PR 里做:派发指令明确只修被门禁点名的那一处。

事实

scripts/engine-double-contract.baseline.json 里 db-queue-adapter.test.ts 的条目:

kind:  DEBT
why:   HAND-MIRRORS the guard already … but @objectstack/service-queue does not
       depend on @objectstack/objectql, so replacing the copy with the
       producer's predicate needs a devDependency change.
closes: add @objectstack/objectql to devDependencies, then replace the mirrored
       `if` with assertEngineDeleteDispatch(options)

PR #5192 为了把新增的 job-queue-retention.test.ts 钉到 producer 谓词上,已经把 @objectstack/objectql 加进了 @objectstack/service-queue 的 devDependencies。于是:

  • 该条目的 why(阻塞理由)现在是过期的:依赖已经在了;
  • closes 里写的两步只剩第二步,一个 4 行改动:db-queue-adapter.test.ts 的 delete() 开头换成 assertEngineDeleteDispatch(opts),按 dispatch 分支删除,然后删掉这条台账条目。
  • 门禁当前仍然是绿的(DEBT 条目就是给它开的口子),所以这不是 CI 红,只是台账上一条自述理由已不成立的债。

建议

作为 #5192 的收尾或独立小 PR 结清;真要保留则需重写 why(现在的措辞会误导下一个读它的人)。

Found-during: #5179 / PR #5192

Activity

  1. added
    findingRecorded observation — held, not dispatchable until the findings triage round grades it
    on Aug 4, 2026
  2. added
    pm:queueReady for the PM dispatch loop
    domain:servicesRetired 2026-10-22, alias of domain:server (services surface); in-flight cards keep it until landed
    and removed
    findingRecorded observation — held, not dispatchable until the findings triage round grades it
    on Aug 5, 2026
  3. baozhoutao commented on Aug 5, 2026

    @baozhoutao
    Contributor

    发现分诊轮判级(session_01VkPSGsX9o17MsGv3Lbxu2w,2026-08-05):晋级 pm:queue,补 domain:services(实质改动在 packages/services/service-queue 的 db-queue-adapter.test.ts,台账条目删除随行)。前提核验见 #4604 01:57Z(对 b4ad98435 成立:devDependencies 现为 workspace:*,自述阻塞已消失)。理由:4 行机械清账,台账 why 已过期会误导下一个读者。维护者可否决。


    Generated by Claude Code

  4. self-assigned this
    on Aug 5, 2026
  5. os-zhuang commented on Aug 5, 2026

    @os-zhuang
    ContributorAuthor

    认领:PM 循环第 2 轮(services 车道)
    会话:session_01BWS4heBoAitLmzCLhcYdbK
    分支:claude/issue-5198-queue-debt-ledger-close
    Worktree:objectstack-issue-5198
    域:domain:services
    文件面:packages/services/service-queue/src/db-queue-adapter.test.ts、scripts/engine-double-contract.baseline.json(台账条目删除,门禁基线,跨 devx 面 —— 已申报供全局在飞检查)、必要时 .changeset/*.md


    Generated by Claude Code

  6. os-zhuang commented on Aug 5, 2026

    @os-zhuang
    ContributorAuthor

    复核:ACCEPT → PR #5533(draft,已 23/23 全绿,待配额恢复后转 ready 入合并队列)。

    已核项:

    • 前提复核成立(devDependency 已在、台账 why 已过期);
    • 范围:2 个文件恰好等于认领申报面;超出「4 行」的两点扩展职责同一且必要 —— (1) double 钉到 producer 的 ENGINE_DELETE_DISPATCH_CASES(门禁只证「被调用」,用例证「被正确回答」);(2) 显式补回 [P2] A direct engine call silently drops sort/select/skip/populate — declared query contract, zero enforcement #4371 由旧 mirror 承载、producer 用例集不含的「顶层 { id } 口袋必须拒」性质 —— 删 mirror 而不丢它守的行为;
    • 手抄守卫双向失配的论证成立并被反向验证钉住(mirror 放回 → 5 红,两个方向各红两条 + 路由一条;门禁同步转红 PINNED);诚实标注了一条在 mirror 下也绿的 case,方向判断不依赖它;
    • changeset 走 skip-changeset 标签(门禁自述首选;测试 + 台账不发布任何东西)—— 标签落上后门禁转 skipped ✓(dev 声明了路径但标签一度缺位,由 PM 补上,后续派发词会把「标签要真的挂上」写明);
    • 台账净变化:pinned 23→24,DEBT 32→31,双向 ratchet 同 PR 收敛 ✓。

    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

domain:servicesRetired 2026-10-22, alias of domain:server (services surface); in-flight cards keep it until landedpm:dispatchedDispatched to a dev agent by /pm-dispatchpm:queueReady for the PM dispatch loop

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions