Feat: SDK v1.2.1 - Async Interaction APIs, Enhanced Sidebar & Testing Robustness
This update refines the interaction model of the SipLine SDK by introducing asynchronous user feedback loops and improving the UI management of plugin-specific components. It focuses on
reliability and developer experience for complex workflow integrations.
🏗️ Key Improvements
💬 Async Dialog Service (User Feedback):
Plugins can now trigger native modal dialogs to request user confirmation before critical actions.
- New method: ShowDialogAsync(title, message, primary, secondary).
- Fully asynchronous implementation to prevent UI thread blocking.
📂 Smart Sidebar Management (UI Hook):
Enhanced PluginSidebarTab with direct ownership tracking.
- Added PluginId property to allow the host application to intelligently manage and identify custom plugin tabs.
- Improved focus handling for sidebar navigation.
🛠️ Technical Improvements & Fixes
- Testing Library: SipLine.Plugin.Testing updated with a full implementation of MockPluginContext.ShowDialogAsync. This enables unit testing of user-interaction logic without manual UI
intervention. - Dynamic Versioning: Refactored .csproj to use self-resolving path logic for sipline-sdk-version.txt. This ensures perfect version parity across both the development Monorepo and
standalone GitHub Exports. - Build Reliability: Fixed a major compilation regression in PluginContextFactory and MockPluginContext by completing missing interface members.
✅ Checklist
- All new async interfaces implemented in the SDK.
- MockPluginContext updated for end-to-end testing scenarios.
- Version synchronization verified between text files and NuGet metadata.
- UI Host adapters (PluginContext) verified for thread safety (Dispatcher aware).
- CI/CD compatibility confirmed for v1.2.1 packaging.