garwarp Public
Go to file
T
Code
Use Git or checkout with SVN using the web URL.
No matching headings.
garwarp
garwarp is the Gardesk XDG desktop portal backend project.
Primary scope for the first implementation track:
- Screenshot portal backend flows.
- OpenURI/OpenFile portal backend flows.
- App chooser and app-integration portal flows.
Planning documents live in docs/ and are currently local-only.
Current Status
- Sprint 01 complete: workspace, daemon lifecycle, control protocol scaffold, activation files.
- Sprint 02 complete: control-plane hardening (idempotence, parser strictness, trusted peers, store durability/fallback, health recovery policy).
- Sprint 03 in progress: screenshot/filechooser/appchooser interfaces export method skeletons at
/org/freedesktop/portal/desktop. - Request-handle parsing and deterministic request-id derivation are implemented (
/org/freedesktop/portal/desktop/request/<sender>/<token>model). - DBus method handling derives caller identity from message headers and rejects mismatched request-handle ownership.
- Typed option parsing foundations are in place for screenshot/filechooser/appchooser known keys.
- DBus method dispatch now registers request lifecycle state through an internal portal dispatcher (current placeholder path ends in
failed).
Local Commands
- Start daemon:
cargo run -p garwarp -- daemon - Check health and request counters:
cargo run -p garwarpctl -- status - Stop daemon:
cargo run -p garwarpctl -- stop - Verify D-Bus activation:
./scripts/test-dbus-activation.sh - Verify DBus interfaces are exported:
./scripts/test-dbus-interfaces.sh - Verify DBus method dispatch:
./scripts/test-dbus-method-dispatch.sh - Verify request-store fallback:
./scripts/test-request-store-fallback.sh - Run direct portal smoke calls:
cargo run -p garwarpctl -- portal-smoke - Create mock request:
cargo run -p garwarpctl -- begin req-1 :1.2 - x11:0x2a - Transition mock request:
cargo run -p garwarpctl -- transition req-1 :1.2 awaiting_user - List known requests:
cargo run -p garwarpctl -- list - Inspect request snapshot:
cargo run -p garwarpctl -- inspect req-1
Runtime Tuning
GARWARP_REQUEST_TIMEOUT_MS: timeout before in-flight requests are markedexpired.GARWARP_TERMINAL_RETENTION_MS: retention window before terminal requests are pruned.
Control Protocol Compatibility
- Protocol version is reported by
status protocol=<n>and currently fixed atv1. - Unknown or duplicate request fields are rejected as
invalid_request(fail-closed parsing). - Stable error reasons are part of the control contract; new reasons may be added, existing reasons should not be repurposed.
- Sender identity for begin/transition is derived from Unix peer credentials; payload
senderis ignored for ownership.