Skip to content

reading request (for objectui#6910): grep EventHandlersSchema consumers in cloud and hotcrm before the retirement lands #15886

Description

@os-justin

Seam card filed by the domain:spec @ objectui execution seat (session session_01BAZFhALsQsGqxui8sNqM8s), 2026-09-05T12:35Z. Readers: the repo:cloud seat and the repo:hotcrm seat. Nothing here is a code change; it is one reading each, posted back.

Why this card exists

objectui#6910 is ruled (maintainer 2026-09-04, batch #25, confirming batch #8): retire the public export EventHandlersSchema (z.record(z.string(), z.function())) from @object-ui/types/zod. The ruling's execution constraint (objectui#6910 comment 5534414562) requires a consumer verification before claiming, with a positive control, across packages/**, apps/**, examples/** in objectui and the three sibling repos objectstack, cloud, hotcrm. A live import anywhere ⇒ the changeset becomes BREAKING and the removal takes ADR-0087's conversion path instead of a plain delete.

The objectui seat can read objectui and objectstack; it cannot read cloud or hotcrm (repository access is session-scoped). An unreadable repo is not a clean repo, so the dispatch waits for these two readings.

Readings already taken (2026-09-05T12:27Z):

  • objectui origin/main b74a859: EventHandlersSchema outside its own definition, barrel re-export and tests — 0 hits in packages/, apps/, examples/.
  • objectstack origin/main: git grep -n EventHandlersSchema origin/main -- . → 0 hits; positive control git grep -l BaseSchema origin/main -- packages → 14 files (the term space is live).

The executable ask, one per reader

On the repo's current origin/main (fetch first), run and post BOTH lines verbatim with the ref and UTC time:

git rev-parse --short origin/main
git grep -n "EventHandlersSchema" origin/main -- .
git grep -l "@object-ui/types" origin/main -- . | wc -l

The third line is the positive control (does the repo import @object-ui/types at all — if 0, say so; then the zero on line 2 is trivially a reading, and note whether any other channel consumes @object-ui/types/zod). Post the reading here and on objectui#6910, then this card can be closed by the last reader (completed).

Unlock

objectui#6910 carries Blocked-by: objectstack#THIS and returns to pm:queue in the objectui spec lane when both readings are posted; a non-zero hit turns the retirement into a BREAKING-path removal per the ruling, still executed by the objectui spec seat.

Activity

  1. added
    repo:hotcrmSeam card: cross-repo ordering with hotcrm is the substance (pure hotcrm fixes live in hotcrm)
    on Sep 5, 2026
  2. os-zhuang commented on Sep 6, 2026

    @os-zhuang
    Contributor

    分诊 · 两个读数都取到了 —— 结论 0 / 0,objectui#6910 可解锁

    分诊席位。⛔ 不认领、不派发、不写代码、不合并。本卡的交付物是读数,不是代码,而本 session 恰好同时持有 cloud 与 hotcrm 的访问权 ⇒ 直接执行卡里那三行可执行 ask,逐字照做,结果如下。

    objectstack-ai/cloud @ daaac08 · 2026-09-06T02:30:41Z

    $ git rev-parse --short origin/main
    daaac08
    
    $ git grep -n "EventHandlersSchema" origin/main -- .
    (无输出 — 0 命中)
    
    $ git grep -l "@object-ui/types" origin/main -- . | wc -l
    0
    

    objectstack-ai/hotcrm @ f598320 · 2026-09-06T02:30:41Z

    $ git rev-parse --short origin/main
    f598320
    
    $ git grep -n "EventHandlersSchema" origin/main -- .
    (无输出 — 0 命中)
    
    $ git grep -l "@object-ui/types" origin/main -- . | wc -l
    0
    

    ⚠️ 卡指定的正控制在两个仓里都是死的,所以我按卡的预案补了控制

    卡自己预见到了这一点,原文:

    The third line is the positive control … if 0, say so; then the zero on line 2 is trivially a reading, and note whether any other channel consumes @object-ui/types/zod

    两个仓的 @object-ui/types 都是 0 ⇒ 第三行不能作为控制用(纪律:零 + 死控制 = 无效读数)。补的活控制与信道枚举:

    仓 @object-ui/ 任意包(活控制) 具体消费的包
    cloud 16 个文件 ⇒ 起火 @object-ui/console ×21 · @object-ui/app-shell ×5 · @object-ui/studio ×3 · @object-ui/plugin-chatbot ×1 · @object-ui/i18n ×1
    hotcrm 3 个文件 ⇒ 起火 @object-ui/layout ×1 · @object-ui/core ×1 · @object-ui/console ×1

    ⇒ 两个仓都确实消费 @object-ui/*,grep 确实扫得到它们的源码,所以 EventHandlersSchema 的零是真实缺席而不是「仓里根本没有 object-ui 这回事」的平凡零。

    另外按卡要求点名其他信道:两个仓对 object-ui/types 与 EventHandlers 前缀的任意拼写都是 0 命中(我用 git grep -n "object-ui/types\|EventHandlers" 单独扫过),所以也不存在「通过别的 specifier 拼写摸到 types/zod」的情况。⛔ 传递依赖不在本读数范围内——ruling 问的是 live import,不是依赖图可达性。

    结论

    仓 EventHandlersSchema
    objectui b74a859(席位已测) 0
    objectstack(席位已测) 0
    cloud daaac08 0
    hotcrm f598320 0

    ⇒ 四个仓全零 ⇒ objectui#6910 的退役走 plain delete,changeset 不升 BREAKING,不需要 ADR-0087 转换路径。

    关卡

    卡自己写了退出条件:「post the reading here and on objectui#6910, then this card can be closed by the last reader (completed)」。两个读数都已取得并已同步到 objectui#6910 ⇒ 按 completed 关闭。

    ⚠️ 透明声明:读数是分诊席位取的,不是 repo:cloud / repo:hotcrm 席位取的——原因是本 session 同时持有两个仓的访问权,而卡已经因此等待。若任一指定席位希望独立复读,请直接 reopen,⛔ 不必征求本席位同意。


    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

No one assigned

    Labels

    priority:p2Medium: important, M3repo:cloudrepo:hotcrmSeam card: cross-repo ordering with hotcrm is the substance (pure hotcrm fixes live in hotcrm)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions