Skip to content

[finding] The half-state patrol sweeps objectstack ONLY — 37 blocked cards in objectui/cloud/objectos have never been machine-swept, and 7 stale blocks were sitting in the gap #11217

Description

@os-zhuang

Finding — recording only, not claimed. Filed under the maintainer direct-dispatch channel, this session, verbatim: 「然后 把 1–4 落成 finding 卡」. PM session session_0124Qg8rLvpXnQDwCmpKUmaJ.

Measured

.github/workflows/half-state-patrol.yml runs check-half-states.mjs against ${{ github.repository }}. It is installed in this repo only, so the sweep covers objectstack and nothing else. The anchor #9857 says so in its own header: "…in objectstack-ai/objectstack — 94 half-state(s) found."

Open pm:blocked inventory across the four repos, 2026-08-23:

repoblockedmachine-swept
objectstack22yes
objectui28no
cloud7no
objectos2no

37 of 59 blocked cards are outside any patrol.

The cost, measured rather than asserted

A hand-run of H19's predicate over objectui's 12 blocked cards that carry a resolvable Blocked-by: target found 7 whose blocker was already closed:

cardblockerblocker closeddays stale
objectui#4676#90192026-08-167
objectui#4664#87042026-08-167
objectui#5233#99332026-08-194
objectui#5210#99342026-08-194
objectui#5329objectui#51272026-08-203
objectui#5601#100542026-08-21(stays blocked — unreleased, see below)
objectui#5120objectui#51492026-08-212

Six were returned to pm:queue this round; #5601 stays blocked because its blocker's change is closed but unreleased. 58% of objectui's machine-readable blocks were false. The same predicate runs hourly in objectstack and caught its four (H19 rows on #9857) — the difference is not discipline, it is that one repo has a caller and three do not.

Second-order

The same absence hides the other predicates too. Spot-checked while sweeping: objectui#5127 and #5149 are both closed while still carrying pm:dispatched — the H22 shape — and nothing in objectui will ever report it.

Shape of the fix

Parameterise the workflow's target repo and install it (or a matrix leg) for objectui, cloud and objectos. The script is already repo-agnostic — --format=markdown exists precisely so a caller can stamp its own provenance, and the anchor-issue-per-repo pattern carries over unchanged. The open questions are the token's cross-repo scope (see the sibling finding on H19's 404) and one anchor issue per repo to rewrite in place.

⛔ Not filed as queue work: whether four separate scheduled callers or one matrix job is right, and who owns the anchors, is a routing call for triage.

Re-check

git show origin/main:.github/workflows/half-state-patrol.yml | grep -n 'github.repository'

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions