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.
Problem
v3 does not currently model Waypipe as the Provider implementation for remote
WaylandSessioncases. 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:
packages/d2b-gateway-runtime/src/waypipe_display.rsat97f177d0fThat code is a reuse/characterization source, not an authority to restore the
old realm-provider framework.
Scope
WaylandSessionresources.readiness, and lifecycle under the owning display Provider rather than
d2b-gateway-runtimecompatibility modules.Endpoint contracts; do not reintroduce
d2b-realm-provider,d2b-realm-router, or generic ADR45 provider traits.in the per-realm gateway guest, and work/personal realms do not share a
gateway or L2 bridge.
d2b-provider-display-waylandcrate owns aWaypipe component/implementation or whether a dedicated
d2b-provider-display-waypipeleaf gives the narrower dependency graph.readiness, disconnect/cleanup, and redacted status.
together.
Acceptance criteria
WaylandSessionselects a declared Waypipe Provider implementationand reaches the gateway guest without host-held realm credentials.
failure state.
cleanup or cross-realm effects.
d2bd-runtimeandd2b-guestdremain free of individual Providerimplementation dependencies.
make checkpass.