Skip to content

Add native platform capability adapters #12

Description

@robinbraemer

Outcome

Expose genuinely native platform experiences through narrow typed capabilities while keeping shared interface state and workflows in the Effect application kernel.

Provide:

  • the protected NativeHost Effect service and schema contracts;
  • one real macOS capability implemented through the reviewed Tauri/Rust/Swift boundary;
  • typed platform availability and authorization failures;
  • lifecycle, interruption, and resource ownership;
  • a documented adapter pattern for Windows, Linux, iOS, and Android; and
  • browser fallback behavior when a native capability is unavailable.

Exclusions

  • Letting capsules load Swift, Kotlin, Rust, native libraries, or executables.
  • Moving shared interface state or business workflows into platform code.
  • Pretending web components automatically become native controls.

Acceptance criteria

  • The first Swift-backed capability is invoked only through an approved broker grant.
  • Browser and unsupported-platform tests receive typed unavailable-capability results.
  • Revocation and application shutdown release native resources.
  • Platform adapters cannot read or write interface revisions, call Pi directly, or bypass Effect authorization.
  • The shared capsule continues to render when the native enhancement is absent.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:capabilitiesCapability contracts, permissions, and product adaptersarea:platformBrowser, desktop, mobile, and native platform boundariesenhancementNew feature or requestpriority:P2Important follow-up after the core product experience workssecurityTrust, isolation, authorization, or recovery boundarystatus:implementedImplemented and locally verified; awaiting publication workflow

    Type

    No type

    Projects

    Status
    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions