Allow retrying stale box container updates
Outcome: operators can resend a container update when its pending/running status is stuck, including a request missed while a box was offline. Reuse the dashboard's existing 15-minute stale-command policy; keep fresh requests disabled and label stale requests Retry update with guidance that delivery is not queued and the box should be online. Protect the latest update status from replies belonging to an older command. No live update/deployment or automatic offline delivery is in scope. Acceptance: stale or missing/invalid-timestamp in-flight requests are retryable; fresh requests and local submissions remain busy; terminal states retain normal update behavior. A retry uses the existing API to create a fresh command and resets progress. Older command statuses cannot replace the current command. Relevant dashboard tests/build and router regressions pass. Verified implementation: committed as 114244a (fix: Allow retrying stale box container updates) on fix/retry-stale-container-updates, based directly on latest origin/main and pushed with upstream tracking. The original fix/retry-stale-box-updates branch was left untouched; unrelated release-version history is excluded. Shared command staleness helper applies the existing 15-minute cutoff to container updates, with Retry update labels, missed-message/possibly-running guidance, and a reactive clock that releases busy controls even when polling fails. Accepted update responses locally reset pending progress before polling. Router status writes now require the currently tracked command ID, so superseded reports do not overwrite retry status. Validation: both new router regressions failed before the correlation fix and pass afterward; full cloud-router suite has 115 passing tests and 2 existing opt-in NATS tests ignored. Dashboard has 13 passing tests and production build passes. cargo fmt check, cargo check -p cloud-router and git diff --check pass. Clippy completes with seven existing warnings in untouched code. Chrome acceptance was cancelled and explicitly skipped at the user's request; no browser assertions completed. Temporary local mock server stopped. No live box update or deployment performed. Re-ran dashboard tests/build, router tests/check and formatting checks on the final branch successfully; working tree clean after commit. Pull request #133: https://git.kaukus.no/Kaukus/streaming-engines/pulls/133 Head: fix/retry-stale-container-updates; base: main.
Checklist
2 of 2 complete- Expose stale container-update retries using shared busy-state policy and verify dashboard boundaries and build.
- Correlate container-update reports to the latest command and verify retry/status regressions.
- Area
- Streaming
- Project
- streaming-engines
- Kind
- Bug
- Task ID
tsk_dv86wd72gr- Updated