Skip to content

Adopt a dropped-in update from the mod drawer - #145

Merged
HLLMR merged 1 commit into
mainfrom
feat/adopt-update-in-drawer
Aug 11, 2026
Merged

Adopt a dropped-in update from the mod drawer#145
HLLMR merged 1 commit into
mainfrom
feat/adopt-update-in-drawer

Conversation

@HLLMR

@HLLMR HLLMR commented Aug 11, 2026

Copy link
Copy Markdown
Owner

Closes #144.

The flow that wasn't working

Updating a ModHub mod = download the new zip into your mods folder over Silo's managed copy (ModHub's CDN blocks direct download). Silo detected the dropped file as foreign (its flatVersion ≠ the archived managedVersion) and kept showing the old version — the only reconcile path was a scary red error + the health panel. So it looked like the update "didn't take".

Fix

The mod's drawer now shows a prominent banner when a foreign build is in the mods folder:

A newer build is in your mods folder — v1.0.3.0. Silo manages v1.0.2.0. This is how ModHub updates arrive — you download the zip into the folder. Adopt it to make it Silo's managed version.
[⬆ Adopt v1.0.3.0] [Keep Silo's v1.0.2.0]

  • Adopt promotes the dropped build into the archive (old copy → backups/, re-projects if active) and the version updates.
  • Keep Silo's restores the managed copy over the dropped file.
  • The catalog "⬆ Update available" line is suppressed while the update already sits in the folder (it was contradictory).
  • resolveForeign is extracted from the health panel and shared, so both entry points do the same thing.

Works whether the mod is active (re-projects the new build) or parked (just updates the archive). svelte-check 0/0, build clean. Frontend-only (reuses the existing adopt_foreign/restore_projection Rust).

Closes #144.

Updating a ModHub mod means downloading the new zip into the mods folder over
Silo's managed copy (their CDN blocks direct download). Silo already detects the
result as a foreign file (flatVersion vs managedVersion) and offers Adopt/Restore
— but only via a red error banner and the health panel, so the version never
appeared to update and the flow was unclear.

The mod's drawer now shows a prominent banner when a foreign build sits in the
mods folder: "A newer build is in your mods folder — vX. Silo manages vY. Adopt
it…" with Adopt vX / Keep Silo's vY buttons. Adopt promotes the dropped build into
the archive (old copy backed up, re-projected if active) and updates the version;
the catalog "update available" line is suppressed while the update is already
sitting in the folder. resolveForeign is extracted and shared with the health panel.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@HLLMR
HLLMR merged commit d8799ec into main Aug 11, 2026
3 checks passed
@HLLMR
HLLMR deleted the feat/adopt-update-in-drawer branch August 11, 2026 23:08
@HLLMR HLLMR mentioned this pull request Aug 12, 2026
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.

Manual update (drop new zip in mods folder) should be adoptable from the mod drawer

1 participant