Skip to content

provider: add Waypipe-backed remote WaylandSession #451

Description

@vicondoa

Problem

v3 does not currently model Waypipe as the Provider implementation for remote
WaylandSession cases. U14 retires the ADR45 gateway compatibility surface,
including the old gateway-owned Waypipe argv and systemd planning, but the
remote Wayland use case still needs a v3 owner.

The retired implementation is preserved in Git history here:

That code is a reuse/characterization source, not an authority to restore the
old realm-provider framework.

Scope

  • Define a v3 Provider-owned Waypipe implementation for remote
    WaylandSession resources.
  • Put guest Waypipe server planning, gateway/host client planning, argv,
    readiness, and lifecycle under the owning display Provider rather than
    d2b-gateway-runtime compatibility modules.
  • Bind the implementation through current Zone/session, Provider, Process, and
    Endpoint contracts; do not reintroduce d2b-realm-provider,
    d2b-realm-router, or generic ADR45 provider traits.
  • Preserve realm boundaries: credentials and remote relay configuration stay
    in the per-realm gateway guest, and work/personal realms do not share a
    gateway or L2 bridge.
  • Decide whether the existing d2b-provider-display-wayland crate owns a
    Waypipe component/implementation or whether a dedicated
    d2b-provider-display-waypipe leaf gives the narrower dependency graph.
  • Add owner-local Rust and Nix coverage for remote session admission, argv,
    readiness, disconnect/cleanup, and redacted status.
  • Update Provider catalog/schema, WaylandSession documentation, and changelog
    together.

Acceptance criteria

  • A remote WaylandSession selects a declared Waypipe Provider implementation
    and reaches the gateway guest without host-held realm credentials.
  • The Provider owns both ends' process plans and reports typed readiness and
    failure state.
  • Session teardown cancels/cleans both Waypipe processes without broad host
    cleanup or cross-realm effects.
  • Local Wayland display behavior remains unchanged.
  • d2bd-runtime and d2b-guestd remain free of individual Provider
    implementation dependencies.
  • Focused Provider Rust/Nix tests and bare make check pass.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions