Parent
Sub-issue of #9515 (Rebuild Video.availableLanguages as one cycle-safe, recursively-correct source of truth).
What to build
The worker that syncs the children relation from the childIds scalar array is changed from additive-only to a true replace, so a relation edge removed from childIds by any write path can't persist forever as a stale connection. This is independent of the recompute engine — it's a data-integrity hardening of the relation the cascade walks, not a change to the cascade itself.
Acceptance criteria
Blocked by
None (can start immediately) — independent of the recompute engine work.
Parent
Sub-issue of #9515 (Rebuild Video.availableLanguages as one cycle-safe, recursively-correct source of truth).
What to build
The worker that syncs the
childrenrelation from thechildIdsscalar array is changed from additive-only to a true replace, so a relation edge removed fromchildIdsby any write path can't persist forever as a stale connection. This is independent of the recompute engine — it's a data-integrity hardening of the relation the cascade walks, not a change to the cascade itself.Acceptance criteria
childIdsshrinks (a child id removed) has that child correctly disconnected from thechildrenrelation after the worker runs, not just new children connected.childIdsgrows continues to get the new child correctly connected (no regression).Blocked by
None (can start immediately) — independent of the recompute engine work.