Recover agent updates across app restarts
Merged
TE
17d ago+3128+3128+0123456789012345678901234567890123456789-205-205-012345678901234567890123456789
Agent updates now survive app restarts. A Rust ledger saves each batch before dispatch. Refresh restores original jobs without starting work; explicit resume keeps the original target and key. Pending and uncertain executions stay blocked.
Validation: native tests, six Swift suites and seven Settings web tests pass; regressions fail before the fix. Resume controls cover 21 locales. The full web jobs timed out after the focused tests; GUI dogfood is pending. Repository localization checks retain existing failures.
App and remote execution admission remain unsupported. Stacked on #21447.
Changelog
Fixed: Agent updates retain their original jobs and resume intent across app restarts.