mirror of
https://github.com/wgtunnel/Nucleus.git
synced 2026-10-09 14:40:54 -07:00
The window and dialog openers had their composition target inferred, so a single non-UI-targeted composable called in the `nucleusApplication` scope (the Compose compiler bakes `@ComposableTarget` onto any unmarked factory forwarding a target-marked content lambda) reclassified the whole scope — nested windows included — and every `@UiComposable` call in it warned, which is fatal under `-Werror`. Declare each opener `@ComposableOpenTarget(-1)` with a `@UiComposable` content lambda, the way Compose Desktop's own `Window`/`Dialog` are open: they are callable from any applier and always compose UI content in the new window's own composition, so neither direction of the applier leak survives. Covers `DecoratedWindow`/`DecoratedDialog`, the `NucleusWindowHost` / `NucleusDialogHost` interfaces with their default implementations, `HostedWindow`/`HostedDialog`, and Tao's `DecoratedWindow`, `DecoratedDialog` and `TaoStandalonePopup`. The Material/Jewel wrappers inherit the same scheme through inference (`[_[UiComposable]]`). `COMPOSE_APPLIER_CALL_MISMATCH` is only a warning, so both test compilations escalate it to an error and a fixture per module compiles the reported shape (non-UI factory in the application scope, UI content in the windows).