* FIX - repair inventory metadata and ESX contracts
Use the stable core_inventory metadata setter and validate the complete inventory adapter contract after provider bridges load. Preserve the real ESX configuration error instead of cascading into a missing RegisterUsableItem failure.
* FIX - clarify phone opening without SIM
* FIX - harden inventory and device contracts
Validate SIM number configuration before item handling, preserve QB metadata mutation contracts, and propagate phone-open failures to callers. Extend regression coverage for inventory bridges and device bootstrap errors.
* FIX - resolve reported phone interaction issues
Stop game-input passthrough while NUI text fields are focused and add an independent hold-to-look option. Propagate SIM number formatting to the frontend, migrate configured currency symbols to utf8mb4, and clarify SkyRide, VaultX, and DarkChat behavior with focused contract coverage.
* FIX - detect missing packaged phone UI
Validate the generated NUI entrypoint, its referenced assets, and required static media when the resource starts. Print an actionable server-console warning for incomplete source archives, package phone sounds through the manifest, and cover the detection contract with Lua regressions.
Compare the fxmanifest version against the latest published sky_phone release tag and report update, current, ahead, and failure states without blocking resource startup.
Document the startup check and cover the HTTP and version comparison behavior with a focused Lua test.
Add a contract test to ensure bootstrap data providers (memos/notes) are initialized before phone startup. Reorder fxmanifest.lua so source/server/memos.lua and source/server/notes.lua load prior to phone.lua. Fix lb_phone_migration.lua dark chat migration to avoid indexing missing usernames by only resolving profiles when a channel has exactly two members, preventing nil lookups and incorrect comparisons.
Add the Health app with server-authoritative health, wellness, medical ID, and emergency-contact data flows.
Register the app in the phone UI, add localized configuration and NUI coverage, persist its schema through the resource migration and install SQL, and include design references and the WebP app icon.
Company service lines were validated as full-length SIM numbers, which rejected short configured numbers such as 911 and stopped dependent server modules from initializing.
Accept non-empty service numbers up to the configured SIM length, resolve configured service lines before direct SIM dialing for phone and payphone calls, and load Companies and SIM before Phone. Add focused normalization boundary tests.
Replace the mixed legacy Konsta presentation and fixed light surfaces with the shared Sky UI system. Add FlipTok comment replies and reactions, editable profile media, follower lists, external sound metadata, and the required schema migration.
Preserve the Housing app registry while integrating the Music app and its frontend, server, configuration, database, and locale changes from origin/dev.