The generic mutable-table blank template persisted incomplete company definitions before runtime domain validation. Seed valid company defaults, validate before SQL writes, and repair legacy blank entries.
* FIX - honor configured camera look control
Camera focus was owned by hard-coded Space DOM handlers, bypassing Config.Phone.HoldToLook. Move focus input to the FiveM client and add a bounded scripted-camera orbit so selfie mode can rotate while the configured control is held.
* FIX - preserve camera movement passthrough
* FIX - restore Phone Configurator startup warning
* FIX - keep camera modifier input readable
* 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.
Quote the VaultX portfolio return key in the English and German locale tables. This preserves the existing locale lookup while allowing Lua to parse both files successfully.
Simplify the VaultX login and registration flow around the linked Sky Cloud identity, enlarge the authentication controls, and use the application logo. Add a confirmed sign-out dialog with localized copy and update the VaultX contracts.
Add the Pinia domain, citizen feed, map, archive, settings, alert detail, and authorized publishing workflows. Ship complete German and English locale trees with a browser-safe fallback and contract coverage for every CityWarn label.
Integrate the complete VaultX application, including account flows, server-authoritative trading, live market cycles, wallet transfers, profile management, and the refined mobile interface.
Complete the VaultX frontend fallback locale for auth, transfers, profile keys, and activity labels so browser previews never render raw translation paths. Shorten and constrain the send quick action so all four cards remain equal-width on the phone surface.
Add explicit Copy and Share actions to the profile key card. Use the CEF-compatible clipboard helper for reliable copying and route sharing through the phone-owned EasyShare flow with localized payload text.
Give every VaultX profile a unique public receiving key and migrate existing profiles safely. Add server-authoritative, password-confirmed, idempotent crypto-only transfers with atomic balance and ledger updates, recipient refresh events, detailed auth flows, profile key display, localized transfer UI, and browser mock coverage.
Pin Buy and Sell actions to the crypto detail footer, rebuild the trade sheet around protected quote review, and invalidate stale quotes after side or quantity changes. Add localized trading labels without config or SQL migrations.
Move profile identity edits into a secure sheet, add header sign out, persist preferences immediately, and support authenticated password rotation with the existing scrypt provider.
Integrates the weather-app interface refinements while preserving the newer dev Dynamic Island and cross-platform contract tests. Adds the matching German Notes deletion confirmation strings required by the merged locale contract.
Replace the decorative market sparkline with a holdings-weighted profit and loss chart. Anchor the solid history and dashed forecast to the same current-position point and localize the new labels.
Rebuild the portfolio, market, activity, asset-detail, and profile surfaces with a denser premium hierarchy and richer data visualization. Remove manual refresh controls, retain server-authoritative financial flows, and add localized allocation copy plus regression coverage.
Authenticate CityMarkt profiles with the linked iFruit account password, including server-side validation and rate limiting. Update the shared auth UI, localized copy, frontend state, browser mocks, and regression coverage for login and registration flows.
Register a configurable F1 phone toggle through a server-authoritative open request and retain the selected unique handset by IMEI. Verify usable-item support for every inventory adapter, fail visibly on registration errors, and document the behavior.
Resolve configured and regional locales through a centralized English fallback for Lua and NUI consumers. Complete the German and English app translation keys, localize remaining picker and attachment copy, and add contract tests that detect missing locale entries.
Overlay accessible hit targets on the rendered phone frame for mute, volume, and power controls. Add the compact iOS volume HUD, localized labels, and full passcode locking when the device is explicitly locked.