Compute a more accurate front (selfie) camera transform and adjust front-camera params (FOV, distance, height). Replace apply_rear_camera_view with a unified apply_camera_view that selects the correct view_mode for ped/vehicle. Add block-look support to SkyPhoneFocus (Resolve now returns block_look) and make ApplyGameInputControls accept a block_look flag; main.lua tracks phone_block_look and passes it when disabling controls. Update related tests to reflect new camera math and input behavior.
Add a Sky action sheet for gallery and camera profile photos while preserving ordered multi-photo drafts. Make relationship goals directly editable, restore cancelled drafts, localize the new interactions, and cover the flows with focused contracts.
Migrates the Notes list and formatting tools to shared Sky controls, restores a neutral glass FAB variant, and gives the note list a dedicated scroll owner so every entry remains reachable.
Polish calculator modes, key geometry, operator icon states, and the calculation history navigation. Add focused contract coverage for the updated layout and interaction styling.
Moves the first notes editor line into an H1 title, keeps it stable when empty, and removes the separate title field. Includes the remaining pending phone UI, voice, locale, bridge, and test updates on this branch.
Add a development-only setup assistant control that skips the wizard for the current frontend session without persisting setup completion or changing backend state. Localize the control through the phone locale fallback and resource locale.
Migrates the note editor formatting controls to the shared SkyTabBar and SkyTabButton primitives. Removes the app-local toolbar geometry and adds a contract test for the shared component usage.
Remove inferred condition, recovery, and player-health values from the Health UI and NUI contract. Keep browser mocks and tests aligned, correct the default development API port, remove the misleading Medical ID disclosure, and apply the shared page gutter to prevent clipped cards.
Rebuild device unlock around the current iOS-style wallpaper, outlined keypad, telephone letters, status bar, and keyboard support. Require the passcode only for the first unlock of each open device session so a soft lock from the status bar returns directly after the session is authenticated.
Remove the empty title reservation from World Clock and Timer views. Switch running stopwatch and timer actions to the danger treatment and lock both layout and color behavior with contract tests.
Move Photo and Video selection onto Sky UI, separate the bottom controls, and expose the camera movement lock with localized labels. Support smooth wheel zoom down to 0.5x inside the phone crop and extend browser lifecycle coverage and camera contracts.
Keep the rear camera in first person, correct the selfie camera offset, and remove the scripted ultrawide camera that changed the whole game view. Add continuous validated zoom and an explicit look-control lock without blocking player movement.
Replace the selfie dance dictionary with the looping phone camera pose. Apply the same hold animation to rear and selfie modes while preserving vehicle-specific phone animations.
Add Config.Phone.AllowMovement and route it through the central focus resolver. Keep camera and attention overlays authoritative over movement input, document the setting, and cover the focus-state combinations.
Override status-bar foregrounds for apps with intentionally fixed light or dark canvases so indicators stay readable in either system mode. Increase LocalPages light-theme accent contrast after the full app audit.
Store independent Home Screen and Lock Screen wallpaper selections, preserve legacy preferences, and route gallery or camera picks to the selected destination. Add the Settings segmented selector and contract coverage.
Replace the scene-dependent background with a stable layered material and keep the control panel above it. Performance mode now uses the same readable fallback without relying on blur.
Replaces the map atlas and several WebP app/weather icon assets with updated binaries and removes the old feather.svg icon (iconography migrated to WebP). Pure asset refresh / visual update; no code changes. Run the frontend build (build_frontend.bat) if you need to verify the updated NUI bundle.
Use each company definition's validated HTTPS LogoUrl for automatic Phone contacts and populate Company or Group with the configured company name. Keep uploaded company logos as profile overrides, update browser mocks and tests, and document the required LogoUrl config field.
Root cause: the Memos dialogs and action sheet render beside the themed SkyAppPage, so they inherited light root tokens even while the phone was in dark mode.
Attach the SKYUI provider theme to every Memos overlay and preserve the app's red accent across recording, discard, delete, and action surfaces.
Root cause: the Memos app still owned its layout and dialogs through legacy Konsta primitives, which kept the header, empty state, and recording actions outside the shared SKYUI patterns.
Replace the list, player, footer composer, empty state, and centered recording dialogs with SKYUI components. Move search and recording controls into the bottom composer and keep the recording actions inside the popup.
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.
Make the App Store part of the phone shell (remove preload helper/loadAppStoreComponent and App.vue preload) by importing AppStoreApp in PhoneAppWindow and selecting it when app.id === 'app-store'. Update the apps registry to use an inline import for the async component. Replace unsupported CSS features (:has, color-mix) with CEF-safe alternatives using semantic tokens (--sky-app-accent-soft, --sky-danger-soft) and add explicit .store-action-button/.store-action-button--icon and .store-detail__action classes. Add contract tests to assert the App Store is bundled with the shell and that styles remain compatible with the FiveM CEF target.
Load the server-canonical own contact instead of constructing an unsupported profile payload in the Phone app. Move canonical contact resolution before payload sanitization so self-contact transfers are validated and received correctly, with a regression contract test.
Replace the circular reset ornament with a layered device mark and add a modern restrained gradient surface while preserving the existing reset progress and protection status behavior.
Preload and cache the App Store route module when the phone shell starts so FiveM CEF does not fetch it only after the user opens the app. Cover the shared loader contract with a focused registry test.
Update sky_phone/config/companies.lua to use short 3-digit service numbers. Replaces long strings for Police, Medical, and Fire service lines with '911', '912', and '913' respectively to match expected dialing behavior; no other changes made.
Merge the Picstagram Sky UI work and its dependent phone, media, voice, gallery, app store, setup, and UI parity updates into weather-app.
Resolve the frontend development port configuration and retain the Sky UI EasyShare implementation. Frontend validation and local resource deployment completed; included configuration, locale, and SQL updates require no separate migration step beyond this merge.
Migrate the Weather app to the Sky UI primitives with richer condition effects, updated WebP icons, and pull-to-refresh feedback.\n\nAdd a shared reload cooldown for weather, banking, and housing actions, including localized status feedback and test-server coverage.
Replace the legacy Konsta-based layout at its source with SKYUI components and responsive app-specific styling. Add media creation, profile and social improvements, comment reactions and replies, plus Activity and phone notification delivery with the required database migration.