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
The webhook path reused tasks$, which intentionally filters parentId = null. Child rows were therefore excluded before payload
serialization; changing the serializer alone could not repair the behavior.
Test plan
LiveKit package test suite (142 passed)
TypeScript checks for packages/livekit and packages/livekit-cf
Biome check for all modified files
git diff --check
Boundary
No database schema or webhook payload contract changes. The patch only changes
which recently updated task rows are eligible for webhook delivery. The local
pre-push script also requires Bun, which is unavailable on this workstation;
the focused suites above passed and the upstream CI remains the full-repository
gate.
Thanks for checking. I do not operate the reporter's Ragdoll deployment, so I
cannot claim an independently captured production payload. I took the concrete
use case from #1663 and verified the corresponding source path:
v1.TaskInited persists a child task's parentId in tables.tasks.
LiveStoreClientDO.onTasksUpdate() used tasks$, whose explicit parentId = null predicate returns only root tasks.
WebhookDelivery spreads the task row into the payload, but child rows
never reached that serializer. A downstream consumer such as the Ragdoll
integration described in Bug: parent id is not included in livekit-cf webhook #1663 therefore receives root-task updates only
and cannot reconstruct the child-to-parent relationship.
The patch does not synthesize or rewrite parentId; it lets an updated child
row reach the existing task.updated payload with its stored parent ID. The
trade-off is that webhook volume now includes updated subtasks as well as root
tasks.
If the intended webhook contract is root tasks only, this PR should be closed.
If integrations are expected to consume subtask lifecycle events, I can replace
the current query-contract regression with a focused delivery-path test before
merge. A sanitized payload or expected Ragdoll contract from the reporter would
also let me validate that boundary more directly.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
parentIdreaches the existing payload serializerFixes #1663
Root cause
The webhook path reused
tasks$, which intentionally filtersparentId = null. Child rows were therefore excluded before payloadserialization; changing the serializer alone could not repair the behavior.
Test plan
142 passed)packages/livekitandpackages/livekit-cfgit diff --checkBoundary
No database schema or webhook payload contract changes. The patch only changes
which recently updated task rows are eligible for webhook delivery. The local
pre-push script also requires Bun, which is unavailable on this workstation;
the focused suites above passed and the upstream CI remains the full-repository
gate.