- Fix rustfmt formatting in cache.rs, patches.rs, system.rs, routes.rs, main.rs - Add Default impl for PackageCacheState (clippy new_without_default) - Change apply_with_cache_retry generic bound from Fn to FnMut - Add mut to refresh_fn parameter for FnMut compatibility - Replace bool comparison with ! operator (clippy bool_comparison) - Update todo.md with completed status
2.4 KiB
2.4 KiB
Issue #2 Implementation Todo
Spec: tasks/issue-2-package-cache-refresh.md Version: 1.1.17 Status: Complete - PR #3 Open
Implementation Checklist
- 1. Create
src/packages/cache.rs- Core cache types, stale detection, state persistence, 404 retry logic - 2. Add
mod cache;tosrc/packages/mod.rs - 3. Implement
refresh_package_cache()on AptBackend - 4. Implement
refresh_package_cache()on DnfBackend - 5. Implement
refresh_package_cache()on YumBackend - 6. Implement
refresh_package_cache()on ApkBackend - 7. Implement
refresh_package_cache()on PacmanBackend - 8. Implement
last_cache_update()on all backends (shared state) - 9. Add
refresh_package_cacheandlast_cache_updateto PackageManagerBackend trait - 10. Enhance health check in
src/api/handlers/system.rs- add cache status, trigger refresh - 11. Update HealthData struct with
last_cache_updateandcache_statusfields - 12. Add pre-apply cache refresh in
src/api/handlers/patches.rs - 13. Bump version in
Cargo.tomlto 1.1.17 - 14. Update
ARCHITECTURE.mdwith cache refresh flow - 15. Update
REQUIREMENTS.mdwith FR-007 - 16. Implement state file persistence (cache.json read/write)
- 17. Write unit tests for cache module
- 18. Build and verify compilation
- 19. Commit and push to fix/package-cache-refresh branch
- 20. Create PR and reference Issue #2
Review
PR: #3
Branch: fix/package-cache-refresh
Commit: cf3d597
Files Changed: 12 files, 944 insertions, 15 deletions
Issue Resolution
All 4 requirements from Issue #2 addressed:
- ✅ Pre-Upgrade Cache Refresh (MUST) - Mandatory cache refresh before every patch_apply
- ✅ Regular Interval Cache Refresh (MUST) - Cache refresh triggered on health check when stale (>4h)
- ✅ 404/Fetch Error Handling (SHOULD) - Auto-retry with cache refresh on fetch errors (1 retry)
- ✅ Stale Cache Detection (SHOULD) - Tracks last_cache_update, reports in health response
Known Issue
- SSH key
git_echo_id_ed25519was rejected by Gitea on port 2222 - pushed via HTTPS + API token instead - Root cause: Key fingerprint SHA256:W1BK9fCA53/or7iJkONbFSf3KJ6+oiAggPgisZNPhsc not registered in git-echo Gitea account
- Needs investigation: SSH key may need re-registration in Gitea