FORTECA TRAY — Tray Plugin · v420.3

INSTALL LOCATION
C:\Fehu_Updater

ONE CLICK INSTALL / UPDATE / REPAIR
Run INSTALL FEHU UPDATER.bat from the extracted ZIP.
The installer detects an existing FORTECA TRAY installation automatically. It shows INSTALL
on a fresh machine, UPDATE TO 420.3 for an older release, REPAIR for 420.3, and blocks
an accidental downgrade when a newer release is installed. UPDATE and REPAIR replace
and SHA-256 verify application-owned files, create a lightweight rollback snapshot,
start the tray and local agent, verify localhost:8766 and register Windows autostart.

PERSISTENT DOWNLOADS
Normal INSTALL-over-existing, UPDATE and REPAIR preserve _engine\Cache, Profiles,
data and Backups. Cached mod ZIPs stay in place and are reused when their recorded URL
and expected hash still match. A missing, wrong-version or corrupt archive is handled
individually by SYNC; the complete pack cache is not wiped.

HOW IT WORKS
GRiD or RUNiC selects one realm. FORTECA TRAY resolves the complete declaration:
one base pack, every realm-included requirement and the supported optional add-ons selected
for that realm. SYNC builds and verifies the local profiles. USE repairs, snapshots
the exact current Valheim state and composes that complete realm profile. PLAY
MODDED validates it again before launch. PLAY VANILLA disables the BepInEx loader.

INSTALLED means every declared individual mod archive was resolved and installed,
and the extracted BepInEx plugin GUIDs and versions exist on disk.
READY is reported only after the post-launch BepInEx log confirms that every
expected GUID/version loaded and Chainloader startup completed.

FORTECA TRAY does not replace Valheim or Steam.

AUTOSTART
The verified Windows Startup shortcut "FEHU Realm Engine" starts the tray after
Windows login. The tray starts the local Realm Engine when required.

UNINSTALL
Run UNINSTALL FEHU UPDATER.bat or use UNINSTALL in the installer/tray menu.
The recommended/default action removes application runtime and autostart but preserves
downloaded Cache, Profiles, configuration/state and Backups for a future reinstall.
A separate REMOVE APPLICATION + ALL DATA path deletes the complete C:\Fehu_Updater
tree only after a second explicit destructive confirmation. Neither mode removes
Valheim, Steam, game worlds or unrelated user files.

FORTECA CREW TOOLS
_GRiD:    https://forteca.net/_grid/
_FiX:     https://fix.forteca.net/
_DiR:     https://dir.forteca.net/
_DOiT:    https://doit.forteca.net/
_DMiXMOD: https://dmix.forteca.net/

More tools such as AMP, Runtipi, txAdmin and other crew services are available
through the HuB section on the main Forteca website.

DISCORD: https://discord.gg/forteca
SUPPORT: https://forteca.tip4serv.com/

TRUSTED FORTECA RELEASE
Created by Black Viking with AI assistance.
No bundled ads or unrelated software.

FEHU NETWORK
While the tray is running, it sends an anonymous heartbeat approximately once
per minute so FORTECA can show active launcher statistics. The heartbeat contains
only a randomly generated installation ID and Tray Plugin version. It does not send
the Windows login, computer name, file list or selected profile.

1.0k clean manifest architecture:
- /status reports remoteVersions + packVersionState (LOCAL vs PACK).
- /versions?refresh=1 forces a fresh server manifest version check.
- POST /sync accepts a realmKey and force flag for validated repair/resync.
- Managed profile rebuilds remove files no longer present in the declaration graph.
- Composition clears managed BepInEx content before applying the standalone base and selected optional packs.

1.0k hotfix retained:
- FORTECA self-hosted /_modix/?modix_download= URLs normalize to /_modix/modix.php.
- Known direct MODiX storage paths remain safe fallbacks.
- Download failures identify package, URL and HTTP status; partial downloads are removed.

1.0m expanded inventory architecture (preserving the 1.0l safety baseline):
- ProfileEngine.ps1 is the shared resolver and EXPECTED / INSTALLED / LOADED truth.
- Wrapper modpacks are provenance/configuration references; their exact pinned child
  inventories are the real install and counter units.
- Realm-required entries are embedded in each standalone base inventory; they are informational, never separate selections.
- Unsupported or unresolved declarations are blocked instead of reported as READY.
- Primary-source failures may use an approved exact identity/version local MODiX copy;
  fallback source, archive and SHA-256 are retained in diagnostics.
- Unique BepInEx plugin GUID/version inventory is extracted with Mono.Cecil.
- Package layouts, wrapper folders, BepInEx loader files and nested archives are normalized.
- SYNC and USE validate/repair profiles atomically; a broken profile is not launched.
- One active realm plus supported per-realm optional add-ons is composed deterministically.
- Session snapshots include plugins, config, patchers, core and root loader files.
- Vanilla has an empty standalone inventory and launches with the BepInEx proxy disabled.
- /status, /profiles and /events expose authoritative diagnostics to RUNiX and RUNiC.

1.0n Buildheim and global Jotunn normalization:
- Buildheim uses 126 authoritative pinned entries plus exact wrapper expansion.
- ThePack 420.0.639 is provenance/configuration only; duplicate children are removed.
- ServerCharacters is explicitly excluded from Buildheim; Anti-Cheat and Diagnostics remain included.
- HearthBelow 0.3.7 is an exact hashed local-only package from MODiX Other.
- Every active declaration uses the same stable Jotunn 2.29.2 identity.

1.0r Buildheim ConditionalConfigSync compatibility correction:
- The explicit Buildheim pin is user-approved from 1.0.3 to 1.0.4.
- Greylist Thunder is supported again after exact combined-inventory validation.
- Historical 1.0.1/1.0.2 dependency metadata is retained and not silently rewritten.

1.0r installer, local-agent, and stale BUSY-state protection:
- GUI TextBox logging and lifecycle ScriptBlock callbacks are separate, type-safe objects.
- A UI logger failure is recorded but cannot mask the original install/update exception.
- INSTALL, UPDATE and REPAIR use the same verified lifecycle and localhost health check.
- Only FEHU runtime processes whose command line belongs to C:\Fehu_Updater are stopped.
- Port 8766 ownership, live API version and Windows Startup shortcut are verified.
- /status reports live connection, heartbeat, client version and profile state separately.

TRAY PLUGIN RELEASE v420.3
The tray checks the official HTTPS release endpoint at startup and every five minutes.
A newer release produces one notification per version per session and an UPDATE AVAILABLE menu action.
Installation is manual: the downloaded archive must match the published SHA-256 before the original installer starts.
Windows controls notification visibility. Drag the F icon from the hidden-icons flyout onto the taskbar to keep it visible.
Internal Fehu Updater paths and batch filenames remain for compatibility.

TRAY PLUGIN RELEASE v420.3
The GRiD SAMBA tile checks TCP 445 on the private VPN share from this computer. If reachable, clicking it opens the fixed share in Windows Explorer. Windows may request SMB credentials. Mapping a drive letter remains a Windows user action.
