Introduce a browserPreview mode (isBrowserPreview) with adjusted viewport scaling and CSS (.phone-stage--browser-preview) and update related contract tests. Allow apiBase via URL params in nui utils so the dev build can call a local browser API base. Replace many SVG app icons with WebP (and update imports), swap crypto header PNG to WebP, and add a demo wallpaper image. Testserver now installs demo apps and configures a demo wallpaper; smoke tests updated to assert these browser-demo conditions.
Clarify the supported database, framework, and inventory requirements in the README. Add a compatibility table covering metadata support, unique phone behavior, and adapter-specific notes for ESX, QBCore, and Qbox setups.
Remove frontend/src/assets/img/app-icons/settings.svg and update frontend/src/config/apps.ts to import the rasterized settings.webp instead of the deleted SVG. Aligns the settings icon format with other app icons (WebP) without behavioral changes.
Small documentation edits in README.md and sky_phone/README.md: update image alt text to "Sky Phone, the free FiveM phone script", change title punctuation from an em dash to a colon ("Sky Phone: Free FiveM Phone Script"), and adjust a sentence comma/em-dash usage for clarity. No functional changes.
Add readme preview PNG and tweak live-demo-button.svg visuals: introduce a banner clipPath, add a shadowed background rect, wrap the main artwork in a clipped group, and move the outer border stroke outside the clipped area so the stroke renders correctly. Also remove a small teal accent circle. These changes improve rendering and provide a preview asset for the README.
Add readme-assets/live-demo-button.svg and update README.md and sky_phone/README.md to reference the local SVG instead of the external shields.io badge. Replaces the remote badge with a bespoke SVG (larger, styled) and updates image paths/attributes for consistent appearance and offline reliability.
Bump the 'TRY_THE_LIVE_DEMO' badge height from 76 to 156 in README.md and sky_phone/README.md to improve visibility of the live demo link in repo and package views. No functional changes; purely presentational.
This commit updates the live demo badge sizing in both README files and removes the outdated 'Updating Sky Phone' guidance from the published documentation. The goal is to keep the docs aligned with the current branding and avoid directing users through obsolete upgrade steps.
Insert an interactive "Try the live demo" badge and a short call-to-action into README.md and sky_phone/README.md, and add a "Live demo" link to the header links. Also remove an outdated sentence about maintaining separate ESX/QBCore/Qbox phone versions from the top-level README.
Restructure root and resource READMEs with professional header, badges, and visual hierarchy. Expand feature documentation organized by category (communication, social, business, media, games, system). Add hex_4_inventory and native ESX inventory support with adapter notes. Enhance custom app section explaining native API and compatibility. Update LB Phone migration docs with Flare support. Add Support and Community section with Discord link. Explicitly license under GPL-3.0.
Keep the suggestion profile trigger separate from the shared follow button so the follow label no longer stretches across profile cards. Use the shared Sky scroll rail with a visible CEF-compatible scrollbar for mouse-wheel and pointer navigation, and cover the layout contract with focused tests.
Enable verbose tracing for custom apps and wire diagnostics through the stack. Sets Config.CustomApps.Debug = true, adds a debug_custom_app logger exposed as SkyPhoneApps.Debug, and instruments client and shared compatibility code (registration, normalization, provider exports, catalog sync, lifecycle hooks, resource stop, and app add/update/remove) with structured debug messages. Frontend sends a debug flag with the catalog and will call back to NUI (custom-app:catalog-debug) when debug is enabled. Tests updated to enable debug and assert fixBlur preservation and NUI catalog ACK handling. This provides detailed traces for exports, registration, catalog sync and lifecycle events.
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.
Resolve DarkChat participant profiles only after confirming that a source channel contains exactly two members. This lets incomplete and group channels be counted as unsupported while the remaining LB Phone migration domains continue without a nil-index failure.
Relocates the project README from the repository root into the sky_phone resource directory so it sits alongside the resource files and matches the project layout.
Auto-detect hex_4_inventory and add a count-based ESX adapter for non-unique, virtual-SIM phone configurations. Expose the LB Phone IsOpen alias required by HEX and document/test the supported configuration boundaries.
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.
Provide English active and archived population warnings plus stateful publish, update, resolve, and read-only scenarios for live preview. Extend the browser smoke suite to verify CityWarn bootstrap content and publisher access.
Disable the persistent compositor hint for the CityWarn app window so text does not alternate between blurred and sharp states during interaction. Keep the exception scoped to CityWarn and cover the host-class contract.
Bridge CityWarn bootstrap, publish, update, and resolve callbacks through the phone client. Apply server broadcasts to the active store and surface eligible alerts as localized phone notifications with deep links.
Register CityWarn as a built-in, non-removable phone app with notification defaults and catalog ordering. Add its runtime WebP icon and update app inventory contracts to cover installation and launch metadata.
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.
Keep login and registration actions visible in a dedicated footer and enlarge the password guidance. Remove the network badge, gradients, and glows from VaultX action buttons. Fix the registration mock by tracking registration state and persisting the submitted password so the new mock account can authenticate afterward.
Match the video profile action container to the avatar geometry so the follow control centers beneath the image. Remove visible authentication header titles while retaining accessible labels, and anchor connection fallbacks to their avatar frames.
Integrate the complete VaultX application, including account flows, server-authoritative trading, live market cycles, wallet transfers, profile management, and the refined mobile interface.
Apply one shared input treatment across trade, transfer, settlement, and profile sheets. Remove redundant header close controls and give wallet-key verification the full popup width.
Render the sheet gradient once on the panel so the transparent drag area joins the content without a background seam. Make the grabber an accessible close button while preserving swipe dismissal.
Give deposit and withdrawal a wider composed form with dedicated field cards, security context, and a stronger submit action. Remove the header close control from settlement sheets while preserving swipe, backdrop, and escape dismissal, and update the UI contract coverage.
Move each centered activity icon-label group downward to correct the visible vertical alignment at the scaled phone size. Keep the three filters on the same baseline and cover the final optical offset in the contract test.
Group each activity filter icon and label into one content-sized flex row so the pair is centered as a unit instead of positioning the icon independently. Preserve the optical vertical offset and verify all three groups through the VaultX contract.
Offset the activity filter icons and labels together to compensate for the font baseline and Lucide SVG view boxes at the scaled phone size. Preserve equal alignment across all three filters and cover the optical offset in the contract test.
Remove the remaining profile-only navbar root, gradient, blur, and divider behind the sign-out action. Keep all other VaultX headers unchanged and verify the profile header layers remain transparent.
Remove the navbar slot glass surface behind the profile sign-out action while preserving the styled button, hover state, and accessible touch target. Cover the transparent slot treatment with the VaultX contract test.
Center every activity filter icon and label on the segmented control axis so differing SVG baselines no longer shift the visual height. Keep the alignment covered by the VaultX contract test.
Drive server-authoritative prices through alternating global and per-market trend phases with eased transitions, reduced noise, momentum, mean reversion, and rare bounded shocks. Mirror the cycle model in browser mocks and slow development preview ticks so charts show readable highs and downs.
Scope the detail title text layout to its final span so it no longer overrides CryptoLogo's centered grid. This keeps every market SVG centered inside its header mark.
Replace the ambiguous profile header icon circle with a compact labeled sign-out pill. Add clear danger styling, hover and pressed feedback, and keep the action within the navbar bounds.
Remove the profile sheet close affordance and eliminate the nested outline inset so the editor aligns with the sheet interaction surface. Restyle the fields, password autocomplete, security note, and primary save action as a cohesive full-width form.