Skip to content

GlowberryClient BETA5 - Radial Wheel Rebuild, Replay Flight & Hook Reliability

Pre-release
Pre-release

Choose a tag to compare

@ChimeraAnt-DEV ChimeraAnt-DEV released this 19 Oct 17:31
· 415 commits to main since this release
940b46c

GlowberryClient BETA5

The last beta before the official OV.3 release. This build lands the preloader Phase 3 work
(hook reliability, verified installs, honest diagnostics), the radial wheel rebuild, replay
spectator flight, and auto sign-in on the working Bedrock auth path.

Everything below is what changed since BETA4.


✨ Added

Radial wheel — rebuilt around profiles

  • Hold-to-open gesture. The wheel is now a hold-to-open menu: the press opens it, you point or
    flick while holding, and the release commits. The old press-to-toggle shape is still available.
  • Player-authored profiles. One to eight entries per ring, each with its own label, icon and
    colour, instead of a fixed four-destination ring.
  • Nested sub-wheels. A ring can open another ring in place, so the action count is no longer
    capped at one wheel.
  • Profile manager. Create, rename, delete and reorder profiles on the fly. Deleting a profile
    repoints any sub-wheel that opened it, and the last profile is never deleted.

Replay — interactive spectator flight

  • The free camera can now be flown directly: a single-finger drag over the video looks around, and a
    flight stick (with boost) moves the camera. The flight tick only integrates the stick in
    interactive spectator mode, so an authored cinematic still plays untouched.

Sign-in

  • Auto sign-in on the working Bedrock auth path. The launcher refreshes the active account's
    stored auth blob on a background thread at launch, instead of depending on the MSAL silent path
    whose placeholder client id can never succeed. A failed refresh opens the sign-in screen with the
    reason already shown, rather than leaving you signed out with no prompt.

Launch tab

  • The head pod's sync indicator is now driven by the real cosmetic-sync state: running reads as
    synced, enabled-but-not-yet-up reads as loading (the sockets open on a background thread), and
    off reads as hidden rather than claiming a link that does not exist.

Tooling

  • One-step signature-rule generation (tools/gen-rules): download the APK, extract the library,
    analyze it, derive the RTTI rules and merge them with a revision bump — in one command, with host
    tests and a CI run.

🔧 Fixed

Hook reliability (preloader Phase 3)

  • Detours no longer drop return values. The cosmetics seams forward every volatile register, so
    a return value in x0 or an sret pointer in x8 survives the detour exactly as if the hook were
    not installed. The old passthroughs preserved them only by accident.
  • Hook installs retry instead of giving up. A deferral now re-arms the install with backoff
    rather than sealing it for the session; only after three give-ups does it stay vanilla.
  • Patched prologues are verified. After every install the first instruction is read back and
    confirmed to be a branch; an unverified patch is backed out, so a session never runs half-hooked.
  • A live probe replaces the version window. The render hook resolves its slot from the diagnostic
    string the function body references and refuses a target that is not executable code, so newer
    builds keep the attempt and still fail closed.
  • Generated rules carry their own probe, and a rule whose probe did not resolve is refused at
    merge time instead of looking like a working one.

Diagnostics honesty

  • The report now names the device, the process ABI, the render-hook refusal reason (which
    exact gate refused it), the skin-path seam stage, and the frame-pacing reading — with
    "unknown" for anything the build genuinely cannot read, never a confident wrong answer.
  • The render-distance route and the persona accessor names are now reported per build, so the
    launcher can say a route is possible instead of guessing.

Optifine

  • An item the crash guard switched off now says why (clear / retrying / last attempt / quarantined)
    instead of looking identical to one you turned off yourself. Re-enabling an item by hand clears its
    counter.

Tooling

  • The analyzer's ADRP reference scan no longer silently returns nothing when numpy is absent; it
    has an equivalent pure-Python path, so a machine without numpy is no longer a quiet wrong answer.

Cosmetics

  • The GLES mesh rasteriser's Java surface is retired. Every cosmetic route is now backend-agnostic,
    and a test pins that the graphics backend never blocks a piece — so a preview-only piece is never
    blamed on Vulkan.

✅ Verification

  • :app:assembleDebug green; APK ships arm64-v8a with libgxcore.so and libpreloader.so.
  • Unit tests pass (pure logic, no mocks).
  • Preloader host tests and the Python tooling tests now run on every commit in CI.
  • Cosmetics, preview and the native seams are still unverified on device; the pure pipeline is
    covered by the tests and the diagnostics report names which route is live.

📢 This is the last beta release until the official OV.3 is released.