Repository navigation
fix: enforce canonical ownership for legacy namespace rows - #905
Conversation
|
Security exact-head review of
Disposition: Security accepts the source boundary at this exact head. Keep the PR draft until its owner completes the stated combined qualification and normal protected merge. This is not published-image or Cloud-deployment acceptance, and no live service, release, credential or repository setting changed. The two disposable retry cases are a non-blocking candidate for permanent regression coverage. |
rmcdaniel
left a comment
There was a problem hiding this comment.
Maintainer review of exact head 546cb5e: the canonical namespace chain is enforced before cached reads, task claims and replacement mutations; execution/attempt references stay within the task run, and custom bridge behavior is preserved. The lock update changes only Workflow and the ten-file diff preserves native/shared/frozen/CI implementation bytes.
Combined qualification completed at 09:15:18 UTC: 3,652 tests / 73,451 assertions, zero errors or failures, 182 backend skips and six PHPUnit deprecations. Focused ownership/HTTP coverage is 63 / 374; all changed PHP style checks pass. Every installed Core file and the twelve runtime origins match published 2.15.12 before and after. The initial four failures came from my synchronous-queue runner profile; the exact four controls and the full selection pass with the repository database queue profile, without product/assertion/deadline changes. Security's exact-head review is linked in the PR body and all hosted checks are green. No remaining source blocker found. Proceed through the protected merge queue; published Server image acceptance remains separate.
|



Legacy imports can leave a run or task naming one namespace while its canonical instance belongs elsewhere. Cached-summary reads and worker task operations must refuse those inconsistent rows and preserve the foreign owner's state. A batch of foreign activity tasks must also leave valid work visible.
Require exact canonical instance/run/task ownership for reads, mutation locks, polling and both worker-replacement release paths. Check replacement activity execution/attempt references against the task's run before expiring an attempt. Preserve custom activity bridges outside the packaged task table. Adopt published Core 2.15.12 so ownership filtering happens before the activity poll limit, and retain the HTTP regression with ten foreign tasks ahead of valid work.
The final diff contains four PHP runtime files, the Composer dependency pair and four PHP test files. Only Workflow changes in the dependency lock. The branch incorporates main at
6caf527a; subsequent main changes through5c50f9fbaffect Rust and documentation. Native/shared/frozen fixture and CI implementation bytes are preserved.Validation at exact head
546cb5ee0b3a56e0f7d3993155413b39394cd6ac:The initial local full run incorrectly forced the synchronous queue and failed four database-readiness/queue assertions. All four pass unchanged with the repository's database queue setting (4 tests / 52 assertions), followed by the complete successful run above. The failed run is retained as runner diagnosis; no source, assertion, timeout or gate was relaxed.
Source/package qualification does not establish a fixed published Server image. Published-image delivery remains separate; no Server tag/image or Cloud deployment is included here.
Refs #765 and durable-workflow/workflow#928.