|
1 | | -## OpenCore Framework v1.0.5-beta.2 |
| 1 | +## OpenCore Framework v1.0.5 |
2 | 2 |
|
3 | | -### Highlights |
4 | | -- Added an explicit server adapter API for platform-specific runtimes. |
5 | | -- Player creation and remote hydration now support adapter-owned subclasses while preserving the public `Player` type. |
6 | | -- Added an explicit client adapter API and removed the built-in `ClientPlayer` singleton. |
7 | | -- Added client UI bridges for markers, blips, and notifications. |
8 | | -- Added lifecycle services for NPC and Vehicle management. |
9 | | -- Improved Player management with spawn, teleport, and respawn actions. |
| 3 | +### Added |
| 4 | +- Added new client adapter ports for camera, ped, vehicle, progress, spawn, local player, runtime bridge, and WebView integration, with matching node runtime implementations. |
| 5 | +- Added support for WebView chat mode, richer client UI/runtime abstractions, and cleaner adapter-facing contracts/exports. |
| 6 | +- Added server-side improvements for command handling, including command validation, default function parameter support, and standardized system event names. |
| 7 | +- Added more coverage around parallel compute, vehicle modification, vehicle sync state, player state sync, adapters, and command execution flows. |
| 8 | +- Added Husky pre-commit and pre-push hooks for local quality checks. |
10 | 9 |
|
11 | | -### New Features |
12 | | -- `Server.init()` now accepts `adapter` to install a single server adapter during bootstrap. |
13 | | -- Added public server adapter helpers in `@open-core/framework/server` for custom adapter packages. |
14 | | -- Added adapter-aware Player serialization hooks for CORE/RESOURCE flows. |
15 | | -- `Client.init()` now accepts `adapter` to install a single client adapter during bootstrap. |
16 | | -- Added client runtime bridge contracts so event processors, WebView callbacks, key mappings, and ticks no longer depend directly on CFX globals. |
17 | | -- Added client UI bridges for markers, blips, and notifications. |
18 | | -- Added lifecycle services and contracts for NPC and Vehicle management. |
19 | | -- Added `ISpawnActions` interface and implementation for managing player spawn, teleport, and respawn actions. |
20 | | -- Added `ClientLoggerBridge` to abstract client-side logging from direct console calls. |
21 | | -- Added `playerCommand` runtime event. |
22 | | -- Added RedM-specific ped appearance adapter and client services for RDR3 profile appearance logic. |
23 | | -- Added runtime platform and game profile detection with duplicate DI registration prevention. |
24 | | -- Added `useAdapter()` function to pre-set the client adapter before initialization. |
25 | | -- Added project-level adapter injection and runtime hints for server and client adapters. |
26 | | -- Added WebView abstraction for client UI interactions. |
27 | | -- Renamed routing bucket methods to dimension. |
28 | | -- Added dedicated client and server contract files with updated exports and package entry points. |
| 10 | +### Changed |
| 11 | +- Refactored client services to rely on explicit adapter ports instead of direct runtime assumptions, especially for camera, ped, progress, spawn, and vehicle flows. |
| 12 | +- Refactored logging so logger writes use string log levels and runtime log domain labels are derived dynamically from the active resource. |
| 13 | +- Refactored worker execution to use inline worker scripts with performance tracking in the parallel compute pipeline. |
| 14 | +- Updated package/tooling setup to TypeScript 6 and refreshed package exports, scripts, and dependency configuration. |
29 | 15 |
|
30 | | -### Breaking Changes |
31 | | -- Server bootstrap now defaults to the built-in Node adapter when no explicit runtime adapter is provided. |
32 | | -- Platform-specific Player APIs should move into adapter packages through Player subclassing/module augmentation. |
33 | | -- `ClientPlayer` is no longer exported from `@open-core/framework/client`. |
34 | | -- Client bootstrap no longer uses `register-client-capabilities`; external adapters should be installed through `Client.init({ adapter })`. |
35 | | -- `WebViewBridge` is now the preferred embedded UI abstraction; `OnView` now represents WebView callbacks directly, while `NuiBridge` and `NUI` remain as deprecated compatibility aliases. |
36 | | - |
37 | | -### Bug Fixes |
38 | | -- Fixed lint issues and removed unused variables. |
39 | | -- Fixed exportation issues. |
40 | | -- Added tests for lint and unused variable fixes. |
| 16 | +### Fixed |
| 17 | +- Fixed command schema handling so exported/remote commands support default parameters more reliably. |
| 18 | +- Fixed transport/event contract alignment across node events and RPC layers. |
| 19 | +- Fixed several test, lint, and export consistency issues while expanding automated coverage. |
41 | 20 |
|
42 | 21 | ### Notes |
43 | | -- Migration path for external adapters: |
44 | | - 1. Create an adapter with `defineServerAdapter({ name, register(ctx) { ... } })`. |
45 | | - 2. Register platform contracts inside `register(ctx)` with `bindSingleton`, `bindInstance`, or `bindMessagingTransport`. |
46 | | - 3. If you extend `Player`, provide `ctx.usePlayerAdapter({ createLocal, createRemote, serialize, hydrate })`. |
47 | | - 4. Pass the adapter to `Server.init({ mode, adapter })` in both CORE and RESOURCE resources. |
48 | | -- RESOURCE hydration now validates adapter identity before rebuilding remote `Player` instances. |
49 | | -- Client adapter migration path: |
50 | | - 1. Create an adapter with `defineClientAdapter({ name, register(ctx) { ... } })`. |
51 | | - 2. Register transport, appearance, hashing, and runtime bridge contracts inside `register(ctx)`. |
52 | | - 3. Pass the adapter to `Client.init({ mode, adapter })`. |
53 | | -- Client files now safe to remove from core once moved to external adapter packages: |
54 | | - - `src/adapters/register-client-capabilities.ts` |
55 | | - - `src/adapters/fivem/fivem-ped-appearance-client.ts` |
56 | | - - `src/adapters/redm/redm-ped-appearance-client.ts` |
57 | | - - `src/adapters/node/node-ped-appearance-client.ts` |
58 | | - - Any remaining client-only transport/runtime bindings that your external adapter reimplements. |
| 22 | +- This release covers the full `master...v1` delta and keeps the release notes compact by grouping related adapter/runtime refactors instead of listing each port separately. |
0 commit comments