101 Commits

Author SHA1 Message Date
Jacob Schmidt
ffbfc70be8 Add checkout mutation and defer hot state saves
- Replace bank payment flow with a checkout mutation using explicit source context
- Return backend errors to players instead of silently falling back to local state
- Queue hot state persistence for actors, garages, lockers, orgs, and owned assets
2026-04-02 09:54:32 -05:00
Jacob Schmidt
53bc8db7d0 Handle bank account sync in UI bridge
- Route bank sync payloads through the client bridge
- Refresh account state without rebuilding the full session
- Split CAD dispatcher UI into modular source files
2026-04-02 09:10:12 -05:00
Jacob Schmidt
4ea7cf7d05 Add CAD request workflows and focus actions
- Add request hydration, submission, closing, and response handling
- Wire UI events for dispatch orders, support requests, and map focus
- Expand dispatcher layout for alerts, requests, and detail views
2026-03-31 20:14:45 -05:00
Jacob Schmidt
112488f82e Rename offline status to unavailable
- Update CAD client UI and generated site assets
- Keep dispatcher and sidepanel status lists aligned with server defaults
- Refresh task, assignment, and group repository initialization
2026-03-31 06:21:43 -05:00
Jacob Schmidt
56b560edf2 Support dispatch board and map view switching
- Add dispatchView state to the CAD repository and hydrate payloads
- Toggle the dispatcher between board and map layouts in the UI bridge
- Update side panel logic to hide contract tabs in dispatch map mode
2026-03-30 21:39:39 -05:00
Jacob Schmidt
1ca2499af7 Add dispatcher mode to CAD UI
- Add a dispatcher web view and layout switching
- Route group role updates and dispatcher hydration through the UI bridge
- Refresh top bar and hide map/side panel outside operations mode
2026-03-30 20:22:48 -05:00
Jacob Schmidt
0e9d0d3dc4 Refactor CAD sidepanel to hydrate board data
- Replace task-only refresh flow with hydrate/assignment/group events
- Add contracts, groups, and activity tabs to the client sidepanel
- Introduce server-side CAD store and request handlers
2026-03-29 22:17:07 -05:00
Jacob Schmidt
45a4f7460a Integrate task contracts and CAD UI pipeline
- add the imported server task addon to the current framework with task ownership, task catalog, mission-manager attack generation, org-owned reward routing, participant notifications, and reputation syncing
- restructure org persistence so core org data, assets, fleet, and members are handled through the current Redis/extension model with matching Rust repository and service updates
- wire the client CAD addon into the framework, actor device action, shared web UI bridge pattern, and task listing/acceptance flow
- add a source-driven CAD web UI layout with ui.config.mjs and extend the shared web UI builder to support custom HTML template pages for multi-surface UIs
2026-03-28 02:20:34 -05:00
Jacob Schmidt
65f33ee02a Align client module naming and org member hydrate 2026-03-27 19:00:32 -05:00
Jacob Schmidt
db565d1e51 Refactor module hydration and init flow 2026-03-25 20:29:51 -05:00
Jacob Schmidt
6c0ce9e867 refactor(bank): split monolithic store into focused modules; fix locker grant for attachments
- Split BankBaseStore into SessionManager, Messenger, Model, Store, Validator
- Extract validation logic into BankValidator with try/catch and per-action methods
- Remove duplicate notifications from transaction actions
- Update event handlers to call validator first, forward context to store/session
- Fix locker grantItems: add missing 'attachment' category mapping to 'item'
- Fix locker grantItems: replace exitWith with if/else to prevent skipping remaining items

Co-Authored-By: Oz <oz-agent@warp.dev>
2026-03-16 10:54:25 -05:00
7a8ca6b237 Merge pull request 'Merge development into master: shared Web UI runtime, bridge-driven UIs, and server-authoritative store flow' (#1) from development into master
Reviewed-on: #1
2026-03-14 20:12:08 -05:00
Jacob Schmidt
68218304ab Move store catalog service server-side and rebuild WebUI bundles
- Shift store catalog initialization from client addon to server addon
- Rebuild/minify bank, garage, org, and store WebUI site assets
- Update webui build tooling and npm metadata; ignore node_modules
2026-03-14 20:06:27 -05:00
Jacob Schmidt
603963c935 Refactor bank UI to bridge-driven single-page flow
- Replace separate bank/ATM pages with a unified `index.html` app bundle
- Split bank init into `initClass`, `initSessionService`, and `initUIBridge`
- Route UI events through `BankUIBridge` and refresh session payloads after sync
2026-03-14 12:11:34 -05:00
Jacob Schmidt
bdc1e36e63 Implement interactive garage UI with service-based client bridge
- replace placeholder garage interaction with real UI open flow
- add catalog/session/UI bridge services for hydrate, sync, store, and retrieve actions
- migrate garage web UI bundle to new app shell/runtime structure
- align org/store function naming with shared init and UI bridge patterns
2026-03-14 03:06:18 -05:00
Jacob Schmidt
e15d4b3066 Introduce shared web UI runtime and migrate org/store bridges
- add common ForgeWebUI runtime, site loader, and SQF WebUI bridge base declarations
- migrate org and store web UIs to src-driven bundles and new bridge/bootstrap flow
- update addon configs/prep hooks and document the shared CT_WEBBROWSER framework
2026-03-14 00:40:34 -05:00
Jacob Schmidt
7a214d835d Enable vehicle checkout grants and garage/org sync updates
- Wire store checkout to grant purchased vehicles via virtual garage
- Add org fleet updates for org-funded vehicle purchases and sync to members
- Simplify client garage sync to always apply incoming category patches
2026-03-12 22:20:21 -05:00
Jacob Schmidt
6dda184d54 Wire store checkout flow across client and server
- Add checkout request/response bridge and workspace re-hydration in store UI
- Implement server-side checkout stores for charging bank/cash and granting locker/VA items
- Normalize catalog/cart payload categories and fix locker VA sync event naming
2026-03-12 21:44:19 -05:00
Jacob Schmidt
9771e375b6 Add org credit lines and multi-source store checkout state
- Wire org portal credit-line requests/responses through SQF bridge and UI events
- Sync `creditLines` in org payloads and refresh portal state after org sync
- Add store payment sources (cash, bank, org funds, credit line) and expose selection in cart UI
- Scaffold server-side store addon initialization/config files
2026-03-12 06:36:24 -05:00
Jacob Schmidt
09ab290b5a Add live category hydration and paged store catalog UI
- route new `store::category::request` bridge events from UI to SQF and hydrate category items from game configs
- cache and format generated catalog entries (types, descriptions, prices, images) in the store bridge/class
- update storefront UI with category loading states, image media support, and next/previous catalog pagination
2026-03-10 22:20:38 -05:00
Jacob Schmidt
d178e39164 Refactor client UI stores and normalize docs formatting
- Rework org and store UI state modules (rename/move store/getter files, add runtime and bridge wiring)
- Update store UI components and page structure (navbar/cart split, new StoreView flow)
- Apply broad markdown/YAML/HTML/CSS/JS formatting cleanup across docs, templates, and workflows
2026-03-10 19:13:30 -05:00
Jacob Schmidt
06f1bad878 Refactor store UI into components, logic, and data modules 2026-03-10 06:33:37 -05:00
Jacob Schmidt
4ee6537fbc Refactor store UI into dynamic multi-view shell
- Replace static HTML markup with app root and runtime asset loading
- Rebuild `script.js` as state-driven category/weapon/catalog views
- Add cart overlay scaffold, breadcrumbs, and window-style navigation UI
2026-03-10 00:13:56 -05:00
Jacob Schmidt
9cd7278746 Add org leave/disband bridge flow across client and server
- Introduce `OrgUIBridge` to centralize UI event/request/response handling
- Add leave and disband org requests with server handlers and client bridge events
- Enforce portal permissions for leaving/disbanding and protect owner/self from member removal
2026-03-09 23:06:26 -05:00
Jacob Schmidt
6eb6ac79d1 Revamp UI chrome and add notification sound alerts
- Add desktop-style title bar shell and viewport locking for bank/org UIs
- Redesign notification HUD visuals and behavior (timers, persistence, exposed JS API)
- Register and play a new notification sound via `CfgSounds` on client events
2026-03-09 20:59:02 -05:00
Jacob Schmidt
57267b79b6 feat: Rework org data and UI 2026-03-08 10:17:32 -05:00
Jacob Schmidt
e0e6121a5c Refactor org app structure and portal interactions 2026-03-07 19:54:17 -06:00
Jacob Schmidt
cdfc8dda80 Align org UI with live org data 2026-03-07 15:23:01 -06:00
Jacob Schmidt
964e839625 Removed old zipped _site 2026-03-07 13:21:49 -06:00
Jacob Schmidt
aad0fc61c4 Refactor org UI into single app and addon site 2026-03-07 13:20:43 -06:00
Jacob Schmidt
a373943eca Improve Redis fail-fast behavior and resilient store initialization 2026-03-06 21:45:17 -06:00
Jacob Schmidt
6c8490f299 feat: Implement bank system, actor interaction UI, and notification system with corresponding backend logic and update gitignore. 2026-02-17 21:18:17 -06:00
Jacob Schmidt
2dbcb98817 feat: Add Windows-only terrain SVG export functionality via FFI with configurable rendering options. 2026-02-16 20:26:40 -06:00
Jacob Schmidt
4d7e3520eb feat: Introduce terrain SVG export functionality via FFI to a Windows DLL, providing an Arma 3 exportSVG command. 2026-02-16 19:42:03 -06:00
Jacob Schmidt
082f0c6f8f feat: Implement terrain SVG export functionality via FFI and integrate it into the Arma server extension's command groups. 2026-02-16 19:19:47 -06:00
Jacob Schmidt
abde6649ac (chore) wip of new ui 2026-02-13 19:10:23 -06:00
Jacob Schmidt
096418cc78 chore: refactor store and class initialization across addons
Co-Authored-By: Warp <agent@warp.dev>
2026-02-13 19:09:58 -06:00
Jacob Schmidt
58902f0c29 feat: implement initial in-game store system with web-based UI. 2026-02-06 06:22:32 -06:00
Jacob Schmidt
56f0f1c971 feat: introduce core client and server-side systems for locker, virtual arsenal, and garage management. 2026-02-05 18:26:55 -06:00
Jacob Schmidt
d94cc9d8d5 feat: Implement client-side locker system with UI event handling, ACE Arsenal integration, and inventory management. 2026-02-04 22:46:24 -06:00
Jacob Schmidt
8034632829 remove: dev-arma.ps1 build script 2026-01-31 22:16:45 -06:00
Jacob Schmidt
827d1eb698 feat: Introduce initial class and store definitions for actor, bank, garage, locker, organization, and virtual armory/garage systems. 2026-01-31 19:30:34 -06:00
Jacob Schmidt
27c0ade320 feat: Implement client-side actor system for player state management and UI interactions, alongside server-side locker initialization. 2026-01-31 16:06:14 -06:00
Jacob Schmidt
2b895b7d1a feat: Implement virtual garage system including class initialization and UI for managing player vehicle unlocks. 2026-01-30 21:18:00 -06:00
Jacob Schmidt
c06d9f534a feat: Add virtual garage functionality and bank UI event handling. 2026-01-30 20:59:08 -06:00
Jacob Schmidt
93b2383b2c feat: Add UI event handling for bank and organization modules to manage web browser interactions and data synchronization. 2026-01-30 20:25:02 -06:00
Jacob Schmidt
aef7f9ae48 feat: Implement core game systems for actor, garage, organization, bank, locker, and notifications with client-side UI and server-side data stores. 2026-01-30 20:19:29 -06:00
Jacob Schmidt
9c09976ef2 feat: Initialize core client and server systems for actor, bank, garage, locker, and notifications, including UI components and data models. 2026-01-28 20:07:24 -06:00
Jacob Schmidt
61a9741dc0 Refactor Store system to use BaseStore and update Actor/Org initialization 2026-01-10 15:42:33 -06:00
Jacob Schmidt
ebfe77a340 feat: implement complete Forge framework with Rust/Redis backend and Arma 3 integration
Implemented features:
- High-performance Rust extension with Redis persistence
- Actor/player management with loadout, position, and state tracking
- Banking system with deposit, withdraw, and transfer operations
- Physical and virtual garage/locker systems for vehicle and equipment storage
- Organization management with member tracking and permissions
- Client-side UI with React-like state management
- Server-side event-driven architecture with CBA Events
- Security: Self-transfer prevention at multiple layers
- Logging system with per-module log files
- ICOM module for inter-server communication

Co-Authored-By: Warp <agent@warp.dev>
2026-01-04 12:52:15 -06:00