* feat(client): implement default date range
* feat(client): resolve errors
* feat(client): replace constructor based DI with inject function
* feat(client): enforce encapsulation
* fix(client): remove dead code
* feat(client): enforce immutability
* feat(client): replace deprecated getDeviceInfo
* feat(client): convert errors to signal
* feat(client): convert hasImpersonationId to signal
* feat(client): convert user to signal
* feat(client): convert to computed signals
* feat(client): convert historicalDataItems and isLoadingPerformance to signals
* feat(client): convert performance and precision to signals
* feat(client): implement OnPush change detection strategy
* fix(common): revert DateRange type change
* fix(client): format file
* fix(client): resolve errors
* feat(client): replace constructor based DI with inject function
* feat(client): enforce encapsulation
* fix(client): remove dead code
* feat(client): replace deprecated getDeviceInfo
* feat(client): convert isLoading to signal
* feat(client): convert hasImpersonationId to signal
* feat(client): convert summary to signal
* feat(client): convert user and hasPermissionToUpdateUserSettings to signals
* feat(client): implement OnPush change detection strategy
* fix(client): remove nested subscription
* feat(client): resolve error
* feat(client): enforce encapsulation
* feat(client): enforce immutability
* feat(client): replace constructor based DI with inject function
* feat(client): replace deprecated getDeviceInfo
* feat(client): convert benchmarks to signal
* feat(client): convert historicalDataItems to signal
* feat(client): convert fearAndGreedIndex to signal
* feat(client): resolve errors
* feat(client): migrate constructor based DI to inject function
* feat(client): implement view child signal
* feat(client): replace deprecated getDeviceInfo
* fix(client): enforce encapsulation and immutability
* fix(client): make tag as optional to cover tag creation use case
* feat(client): migrate constructor based DI to inject function
* feat(client): implement view child signal
* feat(client): replace deprecated getDeviceInfo
* feat(client): implement input signal
* fix(client): enforce encapsulation
* fix(client): make platform as optional for platform creation
* feat(client): resolve errors
* feat(client): migrate constructor based DI to inject function
* feat(client): implement view child signal
* feat(client): replace deprecated getDeviceInfo
* fix(client): enforce encapsulation
* feat(client): implement input signal
* fix(common): accept undefined for value in update property DTO
* fix(common): accept undefined for language code parameter
* fix(client): enforce encapsulation and immutability
* feat(client): migrate constructor based DI to inject function
* fix(client): info and getter encapsulation
* Resolve exception in portfolio details endpoint when an asset profile is unmatched
* Use asset profile identifier for value uniqueness
* Update changelog
* Upgrade ai
* @openrouter/ai-sdk-provider to version 2.9.0
* ai to version 6.0.174
* Add AI service health check and improve layout
* Update changelog