Releases: sendbird/sendbird-ai-agent-messenger-ios
0.10.6
Features
- Conversation Header Customization
- Made
SBAConversationModule.Header.TitleView
public for custom title view implementation
- Made
Improvements
- Improved Japanese translation quality with more natural expressions
- Date separators now respect user's system locale settings
Bug Fixes
- Fixed theme not applying
Performance
- Fixed infinite
setupStyles()
recursion issue - Optimized streaming event handling to prevent duplicates
- Improved table view reload performance with debouncing
0.10.5
Changed
- Exposed public properties in SBAConversationModule.Header:
menuButton
,closeButton
, andhandoffButton
0.10.4
Improvements
- Profile Image Hidden Options in Conversation
- Added
SBAConfig.Conversation.Header.shouldShowProfile
- Controls profile image visibility in conversation header
- Added
SBAConfig.Conversation.List.shouldShowSenderProfile
- Controls sender profile image visibility in message list
- Added
0.10.3
Improvements
- Profile Image Hidden Options in Conversation
- Added
SBAConfig.Conversation.Header.shouldShowProfile
- Controls profile image visibility in conversation header
- Added
SBAConfig.Conversation.List.shouldShowSenderProfile
- Controls sender profile image visibility in message list
- Added
0.10.2
Improvements
- Supports minimum version to iOS 14
0.9.16
0.10.1
Improvements
- iOS minor version issue supports
0.10.0
Features
-
New Authentication Flow: Streamlined authentication with automatic connection
AIAgentMessenger.authenticate(aiAgentId: "agent123") { result in // Returns activeChannelURL on success }
- Added
authenticate(aiAgentId:paramsBuilder:completionHandler:)
method - Added
AuthenticateParamsBuilder
for configuration - Added
AuthenticateResultHandler
returningactiveChannelURL
on success
- Added
-
Conversation Creation: New API for creating conversations programmatically
AIAgentMessenger.createConversation(aiAgentId: "agent123") { result in // Returns channelURL of created conversation }
- Added
createConversation(aiAgentId:paramsBuilder:completionHandler:)
method - Added
ConversationCreateParamsBuilder
- Added
ChannelURLResponseHandler
for conversation creation results
- Added
-
Enhanced Builder Pattern Support: All major APIs now support builder pattern
baseInitialize(appId:paramsBuilder:completionHandler:)
withInitializeParamsBuilder
attachLauncher(aiAgentId:channelURL:paramsBuilder:)
withLauncherSettingsParamsBuilder
presentConversation(aiAgentId:channelURL:paramsBuilder:)
withConversationSettingsParamsBuilder
presentConversationList(aiAgentId:paramsBuilder:)
withConversationSettingsParamsBuilder
-
Session Factory Methods: Simplified session creation
// For authenticated users let session = AIAgentMessenger.SessionInfo.manual( userId: "user123", sessionToken: "token", sessionDelegate: delegate ) // For anonymous users let session = AIAgentMessenger.SessionInfo.anonymous()
-
Enhanced Template Support: Extended message template configuration
- Added
Cascade
template configuration inSBAConfig.Conversation.Template.InternalVariables
- New cascade spacing and padding properties:
spacing
,paddingRight
,paddingLeft
- Added
Improvements
-
Color Scheme Updates: New method for updating color scheme
update(colorScheme:)
method for dynamic color scheme changes
-
Session Delegate Enhancements: Improved session token management
SessionDelegate
protocol now properly handles token updates- Automatic session token refresh through delegate callbacks
- Optional methods in
SessionDelegate
with default implementations
-
Error Handling: New error types for better error classification
SBAErrorType.authenticateFailed
for authentication failuresSBAErrorType.invalidAuthentication
for invalid authentication stateSBAErrorType.invalidAgentInfo
for invalid agent information
-
Push Notification: All completion handlers now execute on service queue
registerPushToken(deviceToken:unique:completionHandler:)
unregisterPushToken(completionHandler:)
unregisterAllPushToken(completionHandler:)
Bug Fixes
- Localization: Fixed duplicate locale updates
SBALocalization.updateLocale(_:)
now checks for duplicate updates before applying
Performance & Stability
- UI Performance: Fixed infinite recursion issues
- Memory Management: Better resource cleanup
- Template Configuration: Extended template system
- Type Safety: Improved type definitions
BREAKING CHANGES
-
Session Management: Complete overhaul of session management system
UserSessionInfo
class has been replaced with newSessionInfo
hierarchyManualSessionInfo
for authenticated users with custom user dataAnonymousSessionInfo
for anonymous users (requires app attribute settings enabled)updateSessionInfo(with:)
now acceptsSessionInfo
instead ofUserSessionInfo
- Session info must be reset after calling
deauthenticate()
or when authentication expires
-
Initialization Parameters:
InitializeParams
constructor removed- Properties are now mutable:
logLevel
,startHandler
,migrationHandler
,apiHost
,wsHost
- Use builder pattern instead of constructor parameters
- Properties are now mutable:
Migration Guide for v0.10.0:
-
Update Session Management:
// OLD (v0.9.x) let sessionInfo = AIAgentMessenger.UserSessionInfo( userId: "user123", sessionToken: "token", sessionDelegate: delegate ) // NEW (v0.10.0) let sessionInfo = AIAgentMessenger.SessionInfo.manual( userId: "user123", sessionToken: "token", sessionDelegate: delegate )
-
Update Initialization:
// OLD (v0.9.x) let params = AIAgentMessenger.InitializeParams( logLevel: .info, apiHost: "custom.host" ) // NEW (v0.10.0) AIAgentMessenger.baseInitialize(appId: "app123") { params in params.logLevel = .info params.apiHost = "custom.host" }
-
Use New Authentication API:
// NEW in v0.10.0 AIAgentMessenger.authenticate(aiAgentId: "agent123") { result in switch result { case .success(let activeChannelURL): print("Authenticated with channel: \(activeChannelURL)") case .failure(let error): print("Authentication failed: \(error)") } }
-
Update Builder Pattern Usage:
// NEW builder pattern support AIAgentMessenger.attachLauncher(aiAgentId: "agent123") { params in params.options.position = .bottomRight params.parent = viewController }
0.9.15
Improvements
- Fixed image ratio handling.
0.9.14
Improvements
- Fixed an issue where the file attachment view was not appearing.