Preserve app mutation keys through shared action runs
Closed
TE
18d ago+3538+3538+0123456789012345678901234567890123456789-60-60-01234567890123456789
App action retries lost their original mutation key before reaching the shared router, allowing duplicate execution. Forward the provider's key unchanged; params cannot replace the key or origin.
Validation: all four regression methods pass on the reviewed fleet, covering replay, changed-intent conflicts, daemon command keys and keyless calls. The same regressions fail before the fix. Replay remains limited to the existing router cache lifetime.
Stacked on #21414.
Changelog
Fixed: App action retries retain their original mutation key.