From 9c39300185953c511da3bce4f48474fcd52ffe54 Mon Sep 17 00:00:00 2001 From: SAPHID Date: Tue, 27 Oct 2026 03:48:09 +0000 Subject: [PATCH] Record isolated official LocalSend backend transfer --- ...ramey-localsend-source-match-2026-10-27.md | 25 ++++++++++++++----- docs/framey-compatibility.md | 4 +-- scripts/framey-compatibility-doc.py | 3 ++- ui/framey-compatibility.json | 2 +- 4 files changed, 24 insertions(+), 10 deletions(-) diff --git a/docs/evidence/framey-localsend-source-match-2026-10-27.md b/docs/evidence/framey-localsend-source-match-2026-10-27.md index a26da83..247a9b5 100644 --- a/docs/evidence/framey-localsend-source-match-2026-10-27.md +++ b/docs/evidence/framey-localsend-source-match-2026-10-27.md @@ -34,9 +34,22 @@ released. This is **not** a worn visual or controller result. The unmodified plugin backend's `_main` starts a fixed-path Unix notification socket but does not start the Go network service. Its explicit `start_backend` method starts the helper with a default all-interface setting, HTTPS and -auto-save disabled. A safe runtime test must isolate that service and use only -private fixtures. Before a managed ARM64 adaptation, verify actual Decky -backend discovery/RPC, the frontend, and a private transfer; package the -source, license and exact helper digest. The official x86_64 archive remains -blocked until that work passes. Worn VR and physical controller use remain -unverified. +auto-save disabled. A local follow-up ran that exact Python backend with the +official x86_64 helper in a disposable user/network namespace. A veth pair +provided only documentation-range private addresses and there was no default +route. A private Decky module stub supplied task-owned settings, runtime, +plugin and log directories; its notification socket was moved into that +directory. The backend's `start_backend`, `proxy_get` info request and +`proxy_post` prepare/upload methods passed. One 42-byte public marker +arrived in the private upload directory with independent SHA-256 +`346373ca56ec52c3f47b8d41de2a6a8479d8ad10d2891ff3b0dc7ea9c3892a39`. +The backend stopped, its process and private directory were absent, and the +global notification socket was untouched. This verifies the upstream x86 +backend/proxy/transfer contract locally, **not** Decky 3.3.0 discovery, ARM64 +transfer, an installed Frame plugin or real-network transfer. + +Before a managed ARM64 adaptation, verify actual Decky backend discovery/RPC, +the frontend and a private transfer with the exact-source ARM64 helper; +package the source, license and exact helper digest. The official x86_64 +archive remains blocked until that work passes. Worn VR and physical +controller use remain unverified. diff --git a/docs/framey-compatibility.md b/docs/framey-compatibility.md index f95bf9a..b702929 100644 --- a/docs/framey-compatibility.md +++ b/docs/framey-compatibility.md @@ -283,7 +283,7 @@ All published Linux native payloads in this snapshot are x86_64; no published aa A [DeckyFileServer ARM64 follow-up](evidence/framey-fileserver-arm64-2026-10-27.md) ships an offline, digest-checked GPL helper build, corresponding vendored source and a build recipe. Only its exact managed archive can replace the x86 helper and remove its unnecessary root flag. Actual Decky 3.3.0 discovery/RPC and real Frame HTTPS private-fixture listing/download pass; uploads stay disabled. Hostname-DNS failures and empty optional arguments are repaired. Decky 3.3.0 still exposes `decky.HOME`; that call is unchanged. The plugin moves from broken to partial: its frontend advertises HTTP/steamdeck URLs and needs a Steam folder picker. Use HTTPS and a preconfigured directory. Uploads, generated thumbnails and worn VR remain unverified. -[LocalSend ARM64 build/runtime evidence](evidence/framey-localsend-arm64-2026-10-26.md) covers an isolated real-Frame protocol 2.0 info response from an earlier helper build. [Exact official source matching](evidence/framey-localsend-source-match-2026-10-27.md) now identifies the official helper source and a reproducible ARM64 build from that revision. The official x86 archive remains blocked; full plugin integration and file transfers are unverified. +[LocalSend ARM64 build/runtime evidence](evidence/framey-localsend-arm64-2026-10-26.md) covers an isolated real-Frame protocol 2.0 info response from an earlier helper build. [Exact official source matching](evidence/framey-localsend-source-match-2026-10-27.md) now identifies the official helper source and a reproducible ARM64 build from that revision. The exact official x86 backend passed one local private-namespace transfer. The official x86 archive remains blocked on Frame; ARM64 transfer and full plugin integration are unverified. | Plugin | Native payloads | ARM64 result / remaining blocker | | --- | --- | --- | @@ -308,7 +308,7 @@ A [DeckyFileServer ARM64 follow-up](evidence/framey-fileserver-arm64-2026-10-27. | HueSync | bin/hello, py_modules/portio.so | portio and handheld LED backends depend on x86 I/O/unsupported hardware; ARM64 compilation alone is insufficient. | | Decky Clipboard | bin/xclip | xclip needs ARM64 X11 libraries/server; root and gamescope assumptions also block this archive. | | Reroll | bin/memscan.so | memscan.so needs ARM64 process-memory support and ABI testing; root requirement remains. Frontend initializes but no memory access was tested. | -| Decky Localsend | bin/localsend-core | Official 0.4.5 ZIP main.py matches plugin tag v0.45 byte for byte; its pinned LocalSend-Go ad28b8e9 source reproduces the official x86 helper byte for byte with Go 1.25.7 and a static ARM64 helper twice (SHA-256 e20363237e606ee65eae857792176d21a0bb8ba863489952728eaf2b13277dae). Earlier build from a later source revision answered protocol 2.0 info on real Frame in an isolated namespace. The exact-source ARM64 helper has not run on Frame; actual Decky backend/frontend, private transfer and managed adaptation remain unverified. Official ZIP stays x86_64 and blocked (docs/evidence/framey-localsend-source-match-2026-10-27.md). | +| Decky Localsend | bin/localsend-core | Official 0.4.5 ZIP main.py matches plugin tag v0.45 byte for byte; its pinned LocalSend-Go ad28b8e9 source reproduces the official x86 helper byte for byte with Go 1.25.7 and a static ARM64 helper twice (SHA-256 e20363237e606ee65eae857792176d21a0bb8ba863489952728eaf2b13277dae). Earlier build from a later source revision answered protocol 2.0 info on real Frame in an isolated namespace. The official x86 backend/proxy passed a marker transfer in a private no-route namespace. The exact-source ARM64 helper has not run on Frame; actual Decky discovery, ARM64 transfer, frontend and managed adaptation remain unverified. Official ZIP stays x86_64 and blocked (docs/evidence/framey-localsend-source-match-2026-10-27.md). | | Launch Options | bin/hello | Remove the template x86 bin/hello or publish an ARM64 rebuild; missing Steam module mapping also prevents frontend initialization. | | Decky-Clipper | bin/gstreamer-1.0/libgstproxy.so, bin/gstreamer-1.0/libgstmidi.so, bin/gstreamer-1.0/libgstmpegtsmux.so, bin/gstreamer-1.0/gst-plugin-scanner, bin/gstreamer-1.0/libgstivfparse.so, … 115 total; full list in JSON | Rebuild all bundled GStreamer libraries/plugins for ARM64 and verify capture/codec ABI against Frame SteamVR; gamescope capture differs. | diff --git a/scripts/framey-compatibility-doc.py b/scripts/framey-compatibility-doc.py index 667f0e6..8ca58fc 100644 --- a/scripts/framey-compatibility-doc.py +++ b/scripts/framey-compatibility-doc.py @@ -133,7 +133,8 @@ def render(data): 'covers an isolated real-Frame protocol 2.0 info response from an earlier helper build. ' '[Exact official source matching](evidence/framey-localsend-source-match-2026-10-27.md) ' 'now identifies the official helper source and a reproducible ARM64 build from that revision. ' - 'The official x86 archive remains blocked; full plugin integration and file transfers are unverified.', '', + 'The exact official x86 backend passed one local private-namespace transfer. ' + 'The official x86 archive remains blocked on Frame; ARM64 transfer and full plugin integration are unverified.', '', '| Plugin | Native payloads | ARM64 result / remaining blocker |', '| --- | --- | --- |'] for p in data['plugins']: if p['native']: diff --git a/ui/framey-compatibility.json b/ui/framey-compatibility.json index 396c7d6..be23141 100644 --- a/ui/framey-compatibility.json +++ b/ui/framey-compatibility.json @@ -11174,7 +11174,7 @@ }, "backend": "Python + native payload", "hardware": "No specific hardware requirement detected statically; runtime requirements unverified.", - "nativePort": "Official 0.4.5 ZIP main.py matches plugin tag v0.45 byte for byte; its pinned LocalSend-Go ad28b8e9 source reproduces the official x86 helper byte for byte with Go 1.25.7 and a static ARM64 helper twice (SHA-256 e20363237e606ee65eae857792176d21a0bb8ba863489952728eaf2b13277dae). Earlier build from a later source revision answered protocol 2.0 info on real Frame in an isolated namespace. The exact-source ARM64 helper has not run on Frame; actual Decky backend/frontend, private transfer and managed adaptation remain unverified. Official ZIP stays x86_64 and blocked (docs/evidence/framey-localsend-source-match-2026-10-27.md).", + "nativePort": "Official 0.4.5 ZIP main.py matches plugin tag v0.45 byte for byte; its pinned LocalSend-Go ad28b8e9 source reproduces the official x86 helper byte for byte with Go 1.25.7 and a static ARM64 helper twice (SHA-256 e20363237e606ee65eae857792176d21a0bb8ba863489952728eaf2b13277dae). Earlier build from a later source revision answered protocol 2.0 info on real Frame in an isolated namespace. The official x86 backend/proxy passed a marker transfer in a private no-route namespace. The exact-source ARM64 helper has not run on Frame; actual Decky discovery, ARM64 transfer, frontend and managed adaptation remain unverified. Official ZIP stays x86_64 and blocked (docs/evidence/framey-localsend-source-match-2026-10-27.md).", "uiSurfaces": [ "local/Steam routes", "toasts",