refactor(plugin): migrate host and SDK to ABI v2 - #203
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pre-submission checklist
Change type (select one)
Scope (select all that apply)
Related issues
None linked.
Description
Summary
Migrate WinIsland's plugin SDK, package loader, host, and widget rendering to ABI v2.
Motivation and context
ABI v1 exposed Skia drawing callbacks and global service tables to plugins. ABI v2 gives each plugin its own service tables and resource ownership, and has widgets submit validated drawing commands for host replay. ABI v1 plugins now receive an explicit upgrade error.
Changes
Migration and size
No third-party dependency was added. Existing ABI v1 packages need an ABI v2 build; the loader reports this clearly. Existing user configuration remains readable.
UI changes
Widgets render through the validated host command stream in both the island and layout preview. A layout sizing fix keeps widget text stable during expansion. Invalid-frame notifications identify the plugin. The market page opens when its signed catalog contains older ABI entries.
Validation
Documentation and crate release
winisland-plugin-packagecrate beforewinisland-plugin-apion master; the API packaging job waits for registry availability.Deferred acceptance
The following two checks need external materials and are deferred for this merge:
One widget replay took 4.0275 ms when the settings window opened, above the 3 ms soft target. No sustained overrun was observed; the soft-limit observation remains recorded.