- ovrplugin_shim.h: runtime on Steam Frame is SteamVR (HOST.md), not Monado;
drop the "Status: scaffold" line and the note that SetupLayer /
GetLayerTexture2 await a 128-byte desc (implemented against the 108-byte
ovrpLayerDesc); point RE-NOTES/SHIM-SCOPE at docs/research/.
- lever2-detect-skip-black-handoff.md lives in docs/research/, not analysis/.
- References to unpublished RE notes now say so instead of naming files that
are not in the repo.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Repo hygiene round following a full review. No shim behaviour changes.
Leak risk:
- .gitignore: ignore CLAUDE.md (personal assistant-lane config, was one
`git add -A` away from a public commit) and scratch_obj/.
Docs vs. reality:
- shim/README.md: rewritten. It described a pre-implementation skeleton with
"core fns are TODO stubs returning -1005", three mutually inconsistent stub
counts, and four completed milestones listed as open. Now carries the verified
breakdown: 438/438 exports = 371 generated stubs + 46 core + 7 layers + 2
Vulkan queries + 12 passthru trampolines.
- TESTING.md: dropped the self-contradicting "NOT yet" block (5 of 6 items were
done or misstated, and contradicted the same file 45 lines above). Path B now
points at tools/desktop-harness, which exists, instead of the orphaned
shim/tests/harness.c. Path A prereqs marked as the record they are.
- HOST.md: corrected the runtime assumption. The OpenXR runtime inside Lepton is
SteamVR (vendor/etc/openxr/1/active_runtime.json -> vrclient.so), not Monado.
Favourable: SteamVR emulates Oculus Touch by default and advertises the
XR_FB_foveation family, so the existing input and foveation paths should carry
over. The old "remaining unknowns" are resolved by Lepton's published source
and replaced with the items to check before a first Frame boot.
- README.md: same runtime correction.
- docs/research/RECON.md: the four passages prescribing an entitlement
NOP/stub/bypass are corrected in place rather than merely disclaimed by the
top banner, which they contradicted.
Build correctness:
- shim/build_android.sh: missing patchelf is now fatal. It warned and exited 0,
producing a .so that cannot resolve the OpenXR loader at runtime.
- scripts/fetch_deps.sh + packaging/build_openxr_loader.sh: pin the OpenXR and
Vulkan header versions (were tracking `main`), overridable via OPENXR_TAG /
VULKAN_HEADERS_TAG; require cmake for the loader build.
- packaging/steamframe_patches.sh: use the apktool.jar that fetch_deps.sh
downloads. Its prereq check demanded an `apktool` binary on PATH that the
documented setup never provides, so it could not run after a clean setup.
- shim/gen_stubs.sh: it reads all_exports.txt, not shim_surface.txt; comment and
emitted banner corrected. stubs.c regenerated (banner line only).
- shim/src/core.c: split seven `if (out) ...; return ...;` one-liners. Host
build now compiles with zero warnings, down from seven.
Verified: host build 0 warnings; gen_stubs.sh output identical on regeneration;
bash -n clean on all edited scripts; pinned header/tarball URLs return 200 and
the tag tarball extracts to the expected directory name.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Consolidate the two inline notes into one prominent note at the top of the doc, so
the "this stub approach was not carried into the project" framing is seen before any
of the entitlement-stub passages rather than only beside them.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D6sFYGXZPsq3v7xtcDES6g
An independent reimplementation of Meta's libOVRPlugin ABI on top of OpenXR, so
VrApi-era Meta Quest VR titles can run on non-Meta OpenXR runtimes (Monado,
Steam Frame) instead of being locked to Meta hardware. Original code only — no
Meta/Epic/Capcom binaries, headers, or assets. Includes a desktop harness that
drives the shim against Monado headless.
Scope/legal: interoperability; entitlement handling is out of scope. See README
for the legal/scope section and docs/ for the research trail and design notes.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D6sFYGXZPsq3v7xtcDES6g