Skip to content

[v3.1.2] - 2026-06-29

Latest

Choose a tag to compare

@zv8001 zv8001 released this 29 Jun 06:06
· 4 commits to main since this release

Full Changelog: v3.1.1...v3.1.2

[v3.1.2] - 2026-06-29

  • Fixed a race condition that caused v3.1.1 to be unable to update.
  • Replaced the way the system detects new versions to even further harden the auto update system.

Secure auto-updates

  • Authenticated updates with a signed manifest (update.json) that binds the release version and the executable's SHA-256 under one ECDSA P-256 signature, verified against an embedded public key before anything is installed; updates fail closed when no signing key is configured.
  • Added anti-rollback enforcement that refuses any offered version not strictly newer than the installed one, preventing replay of an older, legitimately signed build.
  • Verified the downloaded executable against the hash in the signed manifest, so a compromised download host cannot substitute different bytes.
  • Verified update authenticity entirely in memory and staged the approved build in a freshly created, randomized temporary directory, so a rejected update never touches disk and a predictable-path race is closed.
  • Extended the offline signing tool (tools/UpdateSigner) and one-click tools/sign-release.cmd to read the version from the build and emit the signed manifest, signature, and legacy version/signature files in one step; documented the keypair and release workflow in tools/README.md.

[v3.1.1] - 2026-06-28

Compact and responsive layout

  • Reduced the default window footprint to 1066x647 and raised the enforced minimum to 1066x647 so the window opens at its smallest supported size.
  • Clamped the initial window to the monitor's DPI-aware working area so it remains clear of the taskbar and screen edges.
  • Compacted shared spacing and made the Audio, Images, Meshes, Cache Files, and More Assets toolbars wrap complete control groups cleanly at narrower widths.
  • Made result-table columns resize proportionally with their cards so Name, Cache Key, Type, Bytes, and status fields remain visible at the default and minimum window sizes.
  • Wrapped long metadata previews within their card and retained vertical scrolling instead of clipping content beyond the right edge.

Motion and preview polish

  • Added interruptible 220 ms page transitions and an animated, full-height sidebar selection card with a sliding accent marker.
  • Redesigned the mesh preview with matching dark window chrome, a compact information header, improved lighting using decoded vertex normals, and clear interaction hints.
  • Added double-click reset and Escape-to-close controls to the mesh preview.
  • Corrected the main title-bar version badge alignment.
  • Reorganized About & Logs as natural-height, full-width cards in a vertically scrollable page, with a dedicated update section for installed/published versions, live status, and update actions.
  • Wrapped activity-log entries within the log card instead of requiring horizontal scrolling for long messages.

Mesh reconstruction

  • Corrected version-7 previews and OBJ exports by reading the declared Draco stream from COREMESH and honoring the highest-detail face range in the LODS chunk.
  • Prevented multiple mesh LODs from being stacked into one malformed model while preserving positions, normals, and UVs.

Maintenance and bulk export

  • Added "Change SQL Database" and "Reset SQL Database" controls to Maintenance for pointing every scanner at a different rbx-storage.db (such as a backup or another account) and restoring the default, with the choice persisted across sessions.
  • Centralized the Roblox database location so the audio, images, meshes, RBXM/KTX, thumbnails, fonts, and metadata scanners share one configurable path and resolve external payloads relative to the active database.
  • Added an "Extract all" action that scans the entire cache and exports every recognized asset into one chosen folder, sorted into Audio, Images, Cache Files (with RBXM and KTX subfolders), Meshes, Thumbnails, Fonts, and Metadata.
  • Equalized Maintenance action-button heights so Refresh, Open folder, and Clear cache match the application-data button instead of stretching to fill their cards.

One-click scanning and session persistence

  • Added a "Scan all" title-bar button that scans every category and populates all tabs from a single click.
  • Persisted each workspace's scan results (asset metadata only, never payloads) so the tabs repopulate on the next launch without re-scanning, re-applying saved names on load.
  • Moved persisted scan state and application settings into the existing RBXAssetExtractor.db SQLite database through a shared connection, schema, and lock instead of separate JSON files.
  • Cleared persisted scan state automatically when the Roblox cache is cleared so the next launch starts clean.

Secure auto-updates

  • Verified downloaded updates against an embedded ECDSA P-256 public key before installing, so a compromised download host cannot deliver an unsigned or tampered executable; updates fail closed when no signing key is configured.
  • Staged updates in a freshly created, randomized temporary directory to close a predictable-path race during installation.
  • Added an offline signing tool (tools/UpdateSigner) with a one-click tools/sign-release.cmd that signs a published build, writes its detached .sig, and opens the output folder; documented the keypair workflow in tools/README.md.

Layout corrections

  • Fixed cramped action buttons on the About card and aligned the Cache Files toolbar buttons with the search field when the toolbar wraps.
  • Centered the More Assets toolbar buttons and removed the empty trailing column segment from result tables by reserving scrollbar width only when a scrollbar is actually shown.

Version

  • Bumped the application and updater-visible version to 3.1.1.

Full Changelog: v3.1.0...v3.1.1