Skip to content

Support Vineflower 1.12#123

Open
modmuss50 wants to merge 13 commits into
mainfrom
vineflower-1.12
Open

Support Vineflower 1.12#123
modmuss50 wants to merge 13 commits into
mainfrom
vineflower-1.12

Conversation

@modmuss50

@modmuss50 modmuss50 commented Apr 28, 2026

Copy link
Copy Markdown
Member
  • Update version in decompile cache
  • Add note for classes decompiled with old VF
  • Use real VF 1.12.0 release
  • Check diff links (likely just use the latest version as line links were not supported).

@modmuss50 modmuss50 changed the title Support Multiple Vineflower versions Support Vineflower 1.12 Apr 29, 2026
@modmuss50 modmuss50 marked this pull request as ready for review May 6, 2026 08:15
@modmuss50 modmuss50 requested a review from Copilot May 6, 2026 08:15

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds support for Vineflower 1.12.0 by introducing versioned Vineflower runtimes, wiring the selected runtime version through permalinks, and isolating cached decompile results by Vineflower version. It also adds UI/test coverage to signal when a legacy (/1/) permalink is using an older decompiler.

Changes:

  • Added multi-version Vineflower runtime loading (1.11.2 + 1.12.0) and mapped permalink prefixes (/1/, /2/) to Vineflower versions.
  • Updated decompiler worker/client to version decompile cache entries (Dexie schema bump + version included in DecompileResult).
  • Added UI warning + Playwright/Vitest tests for legacy permalinks and updated default permalink generation to /2/.

Reviewed changes

Copilot reviewed 17 out of 19 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tests/permalink.spec.ts Adds e2e coverage for /1/ (legacy) vs /2/ permalinks, including runtime/log expectations.
src/workers/decompile/worker.ts Versions Dexie cache keys by Vineflower version; routes decompile calls through version-aware Vineflower wrapper.
src/workers/decompile/types.ts Extends DecompileResult to include the Vineflower version.
src/workers/decompile/client.ts Propagates Vineflower version into worker runtime loading and decompile operations.
src/ui/JarDecompilerModal.tsx Ensures whole-jar decompile uses the default (latest) Vineflower version.
src/ui/FilepathHeader.tsx Adds a header slot for legacy decompiler warning UI.
src/ui/FileList.tsx Updates “copy link” permalink prefix to reflect the latest Vineflower permalink version.
src/ui/DecompilerVersionWarning.tsx New component that displays a “legacy decompiler” warning for old permalinks.
src/types/vf-runtime.d.ts Updates module declarations for version-aliased Vineflower packages/runtimes.
src/logic/vineflower/vineflower.ts New version-dispatch wrapper for loading runtime + decompile API across VF versions.
src/logic/vineflower/vf-1.12.0.ts New implementation module to load and run Vineflower 1.12.0 (WASM/JS fallback).
src/logic/vineflower/vf-1.11.2.ts Reworks existing VF 1.11.2 loader to use the new npm alias module paths.
src/logic/vineflower/versions.ts Introduces Version type, default version, and permalink↔VF mapping helpers.
src/logic/State.ts Adds vineflowerVersion state sourced from permalink version; resets to latest on file navigation.
src/logic/Permalink.ts Emits permalinks using the mapped /{vfPermalinkVersion}/ prefix; default now uses /2/.
src/logic/Permalink.test.ts Adds unit tests for parsing /2/ permalinks and diff permalinks.
src/logic/Decompiler.ts Passes current vineflowerVersion through to class decompilation.
package.json Replaces single @run-slicer/vf dependency with versioned npm aliases vf-1.11.2 and vf-1.12.0.
package-lock.json Locks new alias dependencies and removes the direct @run-slicer/vf entry.

Comment thread src/workers/decompile/client.ts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants