Repository navigation
[Decision] 半状态巡逻改用 composite action 时,objectui「不设锚点」的设置在 action 里没有落脚处:给 action 加一个显式开关,还是 objectui 改设锚点 #20793
Description
Activity
- addedpriority:p2Medium: important, M3Medium: important, M3
on Sep 30, 2026 objectstack-fleet commented
on Sep 30, 2026 ContributorAuthorMore actionsRuling: decision A (an opt-in action input). The maintainer answered in the chat of
domain:devxseat 2's session (session_01TdiauJaVCHuj45EzZGUxHh); recorded 2026-09-30T07:04Z.- The question as put: "objectui#11174: objectui runs its half-state patrol with no anchor issue (your fix(driver-memory): render the analytics echo as the query it describes (#7117) #7852 decline; objectui#8740 made it a supported setting), but objectstack's shared composite action errors on an empty anchor, so a plain switch turns objectui's 4 daily scheduled runs red. How should objectui move onto the action? (decision card objectstack#20793)"
- The maintainer's answer, verbatim: "A: opt-in action input (Recommended)". The option read: "objectstack adds one declared input, default off: when a caller opts in, an empty anchor gives a notice and passes; otherwise it still fails loudly. ~20 lines in objectstack first, then objectui switches mechanically."
Execution:
- objectstack's
.github/actions/half-state-patrol/action.ymlgains one declared input, default off.- With it on, an empty
anchor-issuegives a::notice::and exit 0, and delivers the findings to the run summary, matching objectui#8740's behaviour. - With it off, an empty anchor fails loudly exactly as today.
- A non-numeric anchor fails either way.
- This lands as its own objectstack card and PR, filed and dispatched by this seat.
- With it on, an empty
- ci(half-state-patrol): run objectstack's composite action pinned to a sha instead of checking out objectstack
main— objectui's half of objectstack-ai/objectstack#18471 (ruling 只做②) objectui#11174 then switches mechanically. ItsBlocked-by:moves from this card to that execution card. - The sha pin follows the seat ruling on objectui#11174 (
5905360637): objectstackmain's tip at implementation time.
State:
needs-user-decisionremoved. This card closescompleted: the decision is made, and execution lives on the new card and objectui#11174.objectstack-fleet commented
on Sep 30, 2026 ContributorAuthorMore actionsClosed
completedat 2026-09-30T07:05Z: the maintainer ruled decision A (record5905998989). Execution continues on the objectstack execution card for the action input, and on objectstack-ai/objectui#11174.objectstack-fleet commented
on Sep 30, 2026 ContributorAuthorMore actionsRuling: batch #253 item 1 · letter A · maintainer 「20793 同意」 2026-09-30T07:06Z
Director seat (objectstack#12708, summon #30 续 2,
session_01AsCNgFBs8HCjwhyHQsFbx3). Provenance: maintainer, live PM chat with the director seat, 2026-09-30, replying 「20793 同意」 to batch #253 as presented (this card as item 1; the director's recommendation was A). The same letter reached this card first throughdomain:devxseat 2's chat and is recorded as the ruling of record at 5905998989 (07:04Z) — one decision, two channels; this comment adds the batch reference and concurs. ⛔ No second execution: the seat's execution list (an opt-in action input, default off, landing as its own objectstack card and PR; objectui#11174'sBlocked-by:moving to that card; the sha pin at implementation time) stands as written.Ruled: A. Readings recorded with the batch: long-run — objectui's already-ruled "no anchor" setting becomes the action's explicit contract, and objectui keeps no patrol logic of its own; pull — the configuration objectui's last eight scheduled runs actually use; AI-safety — the default stays strict and the relaxation is declared by name; scope — one input with a named need, not a gate. Confidence gap: cloud's anchor state unmeasured; if cloud has none, the same input covers its switch.
State:
needs-user-decisionalready off (the seat's act); the Ruled line goes on the body in this stroke; the card closescompletedunder the seat's ruling once its execution card is filed.
Ruled: 5905998989 · letter A — an opt-in input on the half-state patrol action (default off: empty anchor → notice + exit 0 + run summary; off → fails loudly); own objectstack execution card + PR by devx seat 2, objectui#11174 re-blocks on it; director batch #253 concurrence 5906024645 · 2026-09-30T07:06Z
Filing gate: ② 只有维护者能做的决定。本卡承 #18471(裁定「只做②」,
5713650969)执行中新生的问题,按「另立卡并回链已裁卡」单开。实测来自 objectstack-ai/objectui#11174 dev 报告5905306134。立卡:domain:devx2 号席(objectstack-ai/objectui#10917),session_01TdiauJaVCHuj45EzZGUxHh。查重:objectstack 与 objectui 的needs-user-decision卡(开 0、关 127)按anchor|half-state|半状态|patrol|巡逻查,命中 4 张,均为无关的旧文档/协议卡。维护者速读
action.yml:313-315报错并退出 1。决策:objectui 的「无锚点」配置怎么迁到 composite action 上
实测:
43d492ff9和fb7b74691(它最后一次改动)上都对空锚点报错退出。github-token、anchor-issue、closed-floor里,没有一个能表达「没有锚点也算正常」。选项 × 真实代价
tracking锚点 issue,并设仓库变量HALF_STATE_ANCHOR_ISSUE;action 不改。(消费端绕过——在 objectui 里用
continue-on-error或if:跳过——不列为选项:它会把巡逻自身的失败一起吞掉,属于消费端宽容。)业务含义直译:
os-decision-facets
① 项目长远合理性:A 把 objectui 已裁的设置变成 action 的显式契约,objectui 不再保留巡逻逻辑;B 零新表面,但回退你的决定;C、E 不解决问题。
② 实际业务拉动:A 服务 objectui 实测在用的设置(最近 8 次定时运行);hotcrm 有锚点(#15009),cloud 的锚点状态未测。
③ 防 AI 犯错:A 默认行为不变,开关必须按名字显式声明;C 训练人忽略红色;消费端绕过会吞掉巡逻自身的失败。
④ 创业阶段不扩散:A 多 1 个有具名需求的输入,不是门禁;B 不加输入,但每天 4 次写看板、占用你的时间。
Prior rulings read: #18471「只做②」(
5713650969);objectui#7852(not planned);objectui#8740(空锚点为受支持配置);thread: objectui#11174 dev 报告5905306134。推荐:A,回退 B。只看①选 A;②③④ 是否翻转:否。
置信缺口:cloud 是否有锚点未测;若 cloud 也没有,A 同时覆盖 cloud 的切换。
回一行即可,例如「11174 A」。