Commit Graph

306 Commits

Author SHA1 Message Date
Dominik 734f4651cb ADD - add housing provider bridges (#6)
Co-authored-by: DerEchteAlec <alec.schitzkat@luwan.io>
2026-08-19 20:11:36 +02:00
DerEchteAlec 64a7bc78c6 FIX - Improve test data idempotency and reliability (#7)
Refactor test data seeding to use deterministic identifiers for DarkChat and Flare, ensuring re-runs don't create duplicate entries or inconsistent states. Implement robust SIM card movement logic and add contract tests to verify seeding constraints and default configuration safety.
2026-08-19 19:41:54 +02:00
Leon.Schmidt 7985ca08d9 ADD - integrate Yaca voice support (#5) 2026-08-19 17:04:23 +02:00
Leon.Schmidt ba37777435 fix LB Phone migration and German locale 2026-08-19 08:18:20 +02:00
Leon.Schmidt dcf7b47113 FIX - Add detailed custom-app debug logging
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.
2026-08-19 01:27:38 +02:00
Leon.Schmidt c37c2a7628 FIX - validate migration channel participants
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.
2026-08-19 01:18:13 +02:00
Leon.Schmidt df6b06c6db FIX - support HEX inventory compatibility
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.
2026-08-18 20:06:50 +02:00
Leon.Schmidt 514f4a3981 ENH - connect CityWarn live notifications
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.
2026-08-18 15:36:35 +02:00
Leon.Schmidt 1a2189ceb8 ADD - implement authoritative CityWarn service
Add server-owned warning persistence, immutable update history, publishing limits, and CityWarn callbacks. Enforce framework job, grade, duty, category, severity, session, and rate-limit checks before every state change.
2026-08-18 15:36:08 +02:00
smx.pusha f657d1f63b ENH - add slow VaultX market cycles
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.
2026-08-18 12:49:35 +02:00
smx.pusha 3b66b13e43 ENH - stream live VaultX market movement
Run smaller server-authoritative market ticks every few seconds, update portfolio and chart values from batched prices, and mirror the live feed in the browser test server.
2026-08-18 12:23:56 +02:00
smx.pusha 8b8c88f029 ADD - enable secure VaultX crypto transfers
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.
2026-08-18 12:01:40 +02:00
smx.pusha 604d2b4084 ENH - simulate live crypto markets
Drive market prices from randomized server intervals with per-market momentum, global trend, mean reversion, bounded shocks, and retained history. Stream authoritative market updates into live holdings, portfolio valuations, and real detail charts while invalidating stale quotes.
2026-08-18 11:41:56 +02:00
smx.pusha 69d55cc9da ENH - rebuild VaultX profile management
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.
2026-08-18 10:49:36 +02:00
smx.pusha 386a8d50eb ADD - expand VaultX fictional markets
Add 24 server-defined markets with unique symbols and broad price and supply ranges. Update the market DTO, UI, browser mocks, and contract coverage.
2026-08-18 09:32:02 +02:00
smx.pusha 1cf08cbc6b ENH - expand VaultX trading experience 2026-08-18 09:11:24 +02:00
smx.pusha 7e2bd38599 ADD - implement secure VaultX exchange
Add the VaultX phone UI, stateful browser mocks, localized copy, and generated WebP icon. Implement character-bound authentication, fixed-point balances, finite treasury markets, idempotent quote execution, settlement reconciliation, Scrypt credentials, SQL schema, limits, audit records, and contract tests.
2026-08-18 08:47:05 +02:00
smx.pusha 77c1790f8b ENH - add CityMarkt password authentication
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.
2026-08-18 07:31:55 +02:00
Leon.Schmidt cc1a8ae151 ENH - detect payphones and spawn custom locations
Remove the static vanilla payphone coordinate list so configured prop models are detected directly in the streamed world. Add vector4-based custom locations that spawn the selected custom prop, and validate detected booth models and player proximity server-side.
2026-08-17 23:14:33 +02:00
Leon.Schmidt e5a1c2bf40 ADD - open unique phones by item and hotkey
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.
2026-08-17 15:57:56 +02:00
Leon.Schmidt e58f1b6c18 FIX - complete phone locale fallback
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.
2026-08-17 15:01:57 +02:00
smx.pusha 05444c84ec ENH - refine CrewLink layouts and authentication 2026-08-17 09:46:33 +02:00
DerEchteAlec 6a8be4d679 FIX - harden server startup diagnostics 2026-08-17 05:16:10 +02:00
DerEchteAlec d121370159 ENH - expand Settings controls and wallpaper imports 2026-08-17 05:16:03 +02:00
DerEchteAlec a888f206ff FIX - resolve radio members by character identity 2026-08-17 05:14:34 +02:00
Leon.Schmidt 7d770b838a refactor: move media settings into dedicated config 2026-08-17 02:13:07 +02:00
Leon.Schmidt 3e35a12efd feat: add LB migration and reorganize configuration 2026-08-17 02:08:31 +02:00
Dominik ecfe089051 fix(flare): enforce real profile photos 2026-08-17 01:30:41 +02:00
Dominik ae8134bf98 feat(companies): improve requests and service line calls 2026-08-17 00:34:17 +02:00
Leon.Schmidt 335b9a98b5 FIX - polish banking interactions and transaction details 2026-08-17 00:25:14 +02:00
Dominik 1c085f975f feat(messages): overhaul messaging and contact flows 2026-08-16 23:37:40 +02:00
Leon.Schmidt 102af69e48 FIX - stabilize FlipTok media interactions
Complete the FlipTok UI, store, mock API, and server audit. Add reliable photo-slide publishing, comments, privacy checks, action error handling, deletion, localization, and profile interaction states.

Replace the photo carousel scroll path with a GPU-accelerated drag and swipe track that supports rapid consecutive gestures, and cover the corrected behavior with focused contract, store, and mock smoke tests.
2026-08-16 23:32:46 +02:00
DerEchteAlec 0d351f9743 ENH - complete Mail and Radio Sky UI 2026-08-16 22:53:20 +02:00
Leon.Schmidt 1bcf04d021 feat: overhaul FlipTok and garage interfaces 2026-08-16 21:51:04 +02:00
Dominik 3b7f0b8858 ENH - add Flare account controls and photo overview
Use the centered SkyNavbar surface back action, expose every owned profile photo as a selectable thumbnail, and add confirmed Sky Cloud sign-out plus server-authoritative Flare account deletion. Keep client, server, localization, stateful mocks, and regression coverage aligned.
2026-08-16 20:34:43 +02:00
Leon.Schmidt fbb304c23c FIX - block all phone input groups
Disable control groups 0, 1, and 2 while the phone cursor owns focus so movement, combat, camera, and mapped actions such as hands-up cannot leak through. Update the focus contract test to verify every group.
2026-08-16 18:17:12 +02:00
Dominik a25508c89e ENH - refine Weazel News experience 2026-08-16 17:38:32 +02:00
Leon.Schmidt 0a43a96744 Camera: front-camera transform and focus changes
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.
2026-08-16 17:16:01 +02:00
Leon.Schmidt 1071b4bde7 feat: unify phone apps with Sky UI 2026-08-16 15:23:21 +02:00
Type 8d9cdb5d6b Merge branch 'weather-app' into dev 2026-08-16 13:07:45 +02:00
Leon.Schmidt b6679a5a7d FIX - stabilize camera movement and selfie view 2026-08-16 00:49:24 +02:00
Type 81cdc8fb87 ENH - refine phone notes experience
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.
2026-08-16 00:36:30 +02:00
Type 6fba5bcc10 FIX - align health app with observable data
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.
2026-08-16 00:29:13 +02:00
Leon.Schmidt 493375bbfa FIX - stabilize gameplay camera controls
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.
2026-08-15 22:18:43 +02:00
Leon.Schmidt 3e058d8e1a FIX - use a stable camera hold pose
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.
2026-08-15 22:18:10 +02:00
Leon.Schmidt 9afafe4a27 ENH - allow movement while phone is open
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.
2026-08-15 22:17:41 +02:00
Leon.Schmidt d31ca9960d FIX - map company contacts from config
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.
2026-08-15 15:35:28 +02:00
Type 56ca2c5ba9 ADD - introduce Health phone app
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.
2026-08-14 23:23:46 +02:00
Leon.Schmidt 25c8adb737 FIX - support configurable company service numbers
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.
2026-08-14 21:24:35 +02:00
smx.pusha 6cdbe753ad FIX - share phone contacts through EasyShare
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.
2026-08-14 19:51:32 +02:00