Skip to content

Apply novonotes internal changes - #107

Draft
satoshi-szk wants to merge 181 commits into
mainfrom
novonotes-internal
Draft

Apply novonotes internal changes#107
satoshi-szk wants to merge 181 commits into
mainfrom
novonotes-internal

Conversation

@satoshi-szk

Copy link
Copy Markdown
Member

No description provided.

satoshi-assistant and others added 30 commits June 10, 2026 23:36
Products need to own their xtask CLI and distribution graph while reusing WRAC build tasks as building blocks.
The old wrac_xtask::run entrypoint was removed when wrac_xtask became a building-block crate, but the template xtask still imported it. This keeps the repository-local CLI behavior while routing commands through WracWorkspace and WracCommand.
The repository-local xtask now uses wrac_xtask as typed building blocks, so keep main.rs focused on workspace wiring and move argument parsing into cli.rs. This also makes the CLI help document the boundary between the template and wrac_xtask.
Keep the template xtask limited to workspace wiring so the CLI help and typed command conversion stay owned by wrac_xtask.
Avoid rebuilding the same SDK validator for every plugin validation run and route the macOS Xcode build through the existing quiet xcbeautify path.
Create the TypeScript package boundary before moving shared WebView runtime behavior into it.
Keep installed frontend dependencies out of the repository while preserving the package scaffold.
Centralize frontend command names and wire payloads before moving behavior helpers into the shared package.
Share host resize queuing and native drag lifecycle while keeping DOM integration optional for product GUIs.
Keep host-specific cursor workarounds in the shared frontend runtime instead of product GUIs.
Share host focus restoration and frontend log forwarding without forcing product-specific UI structure.
Exercise the runtime package in the template GUI and remove local copies of resize, cursor, focus, and log helpers.
Explain the shared runtime scope and keep product-specific GUI contracts out of the package.
Let product GUIs preserve their focus behavior while sharing the host focus restoration helper.
Introduce a shared manifest parser and descriptor generation path so plugin identity can move from Cargo metadata to wrac-plugin.toml without duplicating host-visible IDs.
Keep Vite resolving peer dependencies through the GUI package when the shared runtime is installed from a local file dependency.
Satisfy the workspace clippy configuration while keeping the custom TOML deserialization behavior for package metadata.
…ntime

Share WRAC frontend runtime helpers
Lock down host-visible ID conversions from wrac-plugin.toml so FourCC, VST3 component ID bytes, and AAX product/stem IDs do not regress silently.
Explain each internal crate and package near its entry point so template users can understand the manifest, build helpers, xtask, and frontend package without relying on a stale root-level inventory.
Keep each plugin's AAX stem configs visually attached to its plugin block so template users do not need to understand nested TOML array-of-table context.
Reject plugin crates outside src-plugin and frontend packages outside src-gui so downstream repositories cannot rely on ambiguous fallback discovery.
…ayout

Enforce conventional WRAC plugin layout
xtask launch --plugin-id already validates the requested product before building. Building only that standalone target avoids rebuilding and signing every app in multi-product packages.
VS Code and other debugger workflows need to build a selected standalone artifact without launching it. The build command now accepts the same product selector used by launch.
…standalone

Build only selected standalone app on launch
The adapter should stay a thin safe facade over CLAP instead of exposing higher-level plugin framework abstractions. This splits active and inactive processing, makes parameter query explicit, and moves plugin-originated parameter edits through CLAP flush/output events.
The event-list pair is used by both process and params.flush callbacks. Naming it ProcessEvents made the public API look like flush received process-specific data, so use EventLists to reflect the actual CLAP surface.
PluginInstance initializes the processor lifecycle in its inactive state. The method may also be used to recover after an activation failure, so name and document that lifecycle explicitly instead of making it look like normal deactivation creates a new inactive processor.
satoshi-assistant and others added 30 commits July 11, 2026 16:16
Replace adapter-centric thread contexts with explicit implementation and host-call requirements so product authors can identify affinity, realtime, and concurrency constraints directly.
Place the product-facing API behind a public interface module while keeping raw CLAP constructors crate-private, preserving compile-time encapsulation without an extra bridge crate.
Use explicit interface-module imports throughout the adapter and keep CLAP descriptor conversion outside the product-facing module so the final diff contains no root aliases or ABI conversion leakage.
Make non-realtime requirements explicit in product annotations and collect concrete host callback proxies under one private module so the public interface and adapter implementation remain easy to distinguish.
State product implementation requirements directly and document host callback invocation constraints separately.
Use realtime-safe diagnostics on realtime query callbacks and preserve the concurrency rationale for product entry and factory implementations.
…erface

Move product APIs under the WRAC interface module
Explain why the normal host-requested destroy hook and unconditional Rust Drop paths have different contracts.
Centralize invocation and channel construction so plugin frontends no longer depend on webview-bridge directly.
Pack the local runtime dependency so npm installs its bridge transport in clean CI checkouts, and document the runtime facade in Japanese.
Keep shared build operations mechanism-only and require repository xtasks to supply external validator configuration.
Identify plugins from src-plugin/Cargo.toml so missing or misplaced WRAC manifests fail explicitly in xtask and CI instead of being skipped or accepted through a fallback.
…validation-policy

Make validation operations mechanism-only
Keep the layout contract only where plugin authors configure a project, with one essential line per setup guide and no duplicate schema-reference text.
…ayout-v2

Enforce the WRAC plugin layout contract
Version 0.3.2 can leave validator threads running after a plugin error. Pin the published 0.4.1 assets and unpack their platform-specific nested archive layout so validation completes reliably.
…dator-0.4.1

Update clap-validator to 0.4.1
…or-exclusion

Fix clap-validator test exclusions
…annel-capabilities

Fix AUv2 main channel capability reporting
Preserve the activation frame limit at the ABI boundary so malformed wrapper input cannot reach product processors or trigger repeated panics.
Keep host contract enforcement focused on rejecting invalid blocks without maintaining wrapper fallback behavior or a redundant long-lived regression fixture.
Reject host blocks above the activated limit without adding diagnostic lifecycle state unrelated to processor safety.
…-clap-process

Reject oversized CLAP process blocks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants