Skip to content

fix(updates): scan all filesystem stacks for image updates#514

Merged
AnsoCode merged 1 commit into
mainfrom
fix/image-update-stack-coverage
Apr 12, 2026
Merged

fix(updates): scan all filesystem stacks for image updates#514
AnsoCode merged 1 commit into
mainfrom
fix/image-update-stack-coverage

Conversation

@AnsoCode

Copy link
Copy Markdown
Collaborator

Summary

  • Root cause: ImageUpdateService.checkNode() discovered stacks by iterating Docker containers, meaning stacks without containers (e.g. after docker compose down) were silently excluded from update checks
  • Fix: Hybrid discovery approach that enumerates stacks from the filesystem, parses compose YAML for image refs with .env variable resolution, then augments with container-based image discovery for running stacks
  • Secondary fix: Stale stack_update_status entries are now cleaned up when stacks are deleted and pruned during scans for stacks no longer on disk
  • UI: Replaced the plain title="Update available" tooltip on the sidebar update dot with the animated cursor-follow pattern

Test plan

  • TypeScript compilation passes (backend + frontend)
  • Code review via /simplify (3 parallel agents)
  • Verified production instance shows 17 stacks on filesystem but arr-net (no containers) was missing from image-update status
  • Confirmed compose stale entry exists in update status but not on filesystem (stale cleanup addresses this)
  • Deploy and verify all stacks appear in /api/image-updates response
  • Verify manual refresh logs show all stacks being scanned
  • Verify stack deletion clears update status entry

ImageUpdateService previously discovered stacks by iterating Docker
containers, which meant stacks without containers (e.g. after
docker compose down) were silently excluded from update checks.

Switch to a hybrid discovery approach: enumerate stacks from the
filesystem via FileSystemService.getStacks(), parse compose files
for image refs with .env variable resolution, then augment with
container-based image discovery for running stacks.

Also cleans up stale stack_update_status entries when stacks are
deleted or no longer exist on disk, and replaces the plain
update-available tooltip with an animated cursor follow pattern.
@AnsoCode
AnsoCode merged commit 4950cd0 into main Apr 12, 2026
6 checks passed
@AnsoCode
AnsoCode deleted the fix/image-update-stack-coverage branch April 12, 2026 07:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant