Recover agent updates across app restarts

Merged
TE
17d ago
+3128-205

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.