You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Restart-when: a second subsystem needs its own self-bound afterDelete cleanup for a polymorphic weak-reference attach table, or an actual orphan-row defect is filed against the attachment / comment / approval family — write the ADR before dispatch
a second subsystem needs its own self-bound afterDelete cleanup for a polymorphic weak-reference attach table, or an actual orphan-row defect is filed against the attachment / comment / approval family
Closed not_planned: a design card whose own restart waits on a second subsystem that has not appeared
Triage seat (objectstack-wide, seat post #6015) · session_01W89enF2dYV7K4N2Fbfj33f · 2026-09-27T16:01Z. ⛔ Not a claim, ⛔ not a dispatch.
Provenance:who — the maintainer; verbatim — 「同意」, answering the triage seat's on-hold cleanup plan (which named this card and this disposition); where — the maintainer's chat with the triage session session_01W89enF2dYV7K4N2Fbfj33f, 2026-09-27.
This design card, for a platform-level delete cascade across polymorphic weak-reference attach tables (sys_record_share / attachment / comment), holds on its own condition: 「a second subsystem needs its own self-bound afterDelete cleanup …, or an actual orphan-row defect is filed」. Neither has happened since 2026-08-04.
Reopen is free on exactly this card's condition: a second subsystem needs its own afterDelete cleanup for such a table, or an orphan-row defect is filed. The design notes here stay the starting point.
Activity
fix(sharing): 记录删除时撤销该记录的全部 `sys_record_share`(不分 source)+ boot 期按记录存…
os-zhuang commentedon Aug 6, 2026
存量裁决轮(维护者 2026-08-06 委托,session_01LeEfA7CFwbJb7JJmXm2KM3):裁定停放(
pm:on-hold)。#5103 已按 A 案恢复 sys_record_share 的不变量;通用删除级联机制需要 ADR、横跨 spec+engine,当前无第二个挂靠表的实际孤儿缺陷在拉动——创业阶段聚焦原则下刻意延后。重启条件:attachment / comment / approval 族任一挂靠表出现实际孤儿行缺陷单,或第二个子系统需要重复自绑 afterDelete 清理时重启,重启后先出 ADR 再派发。Generated by Claude Code
objectstack-fleet commentedon Sep 23, 2026
维护者裁定:保留挂起 —— 记下来,因为本卡的
Restart-when:已经被触发过,以后不要再按它唤醒分诊席(
session_01Tw7jnJinGHvoGSi8aFkhPJ),2026-09-23T07:43Z。⛔ 不改状态、⛔ 不改标签。维护者 2026-09-23 在分诊会话里逐张复核pm:on-hold卡,对本卡的回复原文:「#2657 + #3257 5180 保留」。维护者做决定时已经知道的事实
本卡的
Restart-when:(正文第一行):这个条件 在 2026-08-31 就已经满足了,只是没有被扫到:#13568(维护者 2026-08-31「同意」)让
plugin-approvals自己绑了一个全局afterDelete钩子,用来撤销已删除记录上还没处理的审批请求(packages/plugins/plugin-approvals/src/lifecycle-hooks.ts,bindRecordDeleteCancelHook)。这正好就是「第二个子系统自己绑删除清理」,而且落在 approval 这一族。呈给维护者的另外两点:
source: 'manual'的sys_record_share仍是孤儿 —— #4779 的 afterDelete 只覆盖规则共享,且只覆盖有规则的对象 #5103 共享、[finding] 删除记录后,它的审批单仍留在审批收件箱:pending 与 approved 两种都留,记录引用退化为原始 id #13568 审批);sys_attachment关联行和sys_comment行仍会留下,但还没有人为此提过孤儿行缺陷。以后怎么读这张卡
维护者是在知道 #13568 已经触发条件的前提下选择了保留挂起。⇒ ⛔ 以后的巡检不要把 #13568 当成新的唤醒信号。本卡仍等 2026-08-06T08:04Z 那条裁定里的其余情形:attachment / comment 这一族出现实际的孤儿行缺陷,或者又有一个子系统需要自己绑删除清理。重启后先写 ADR,再派发。
5202037737)。卡片最后更新时间是 2026-08-24,另一条评论很可能就是那一次留下的,发评论的账号已被隐藏,和 09-21 那批 404 卡是同一个原因。⛔ 本席没有读到它的内容,所以也不对它做任何断言。Generated by Claude Code
objectstack-fleet commentedon Sep 27, 2026
Closed
not_planned: a design card whose own restart waits on a second subsystem that has not appearedTriage seat (objectstack-wide, seat post #6015) ·
session_01W89enF2dYV7K4N2Fbfj33f· 2026-09-27T16:01Z. ⛔ Not a claim, ⛔ not a dispatch.Provenance: who — the maintainer; verbatim — 「同意」, answering the triage seat's on-hold cleanup plan (which named this card and this disposition); where — the maintainer's chat with the triage session
session_01W89enF2dYV7K4N2Fbfj33f, 2026-09-27.sys_record_share/ attachment / comment), holds on its own condition: 「a second subsystem needs its own self-bound afterDelete cleanup …, or an actual orphan-row defect is filed」. Neither has happened since 2026-08-04.pm:queuecardsnot_planned#19458): 「an open card is read by every sweep, a closed one costs nothing and stays searchable」.Reopen is free on exactly this card's condition: a second subsystem needs its own afterDelete cleanup for such a table, or an orphan-row defect is filed. The design notes here stay the starting point.