Skip to content

Define a verifiable core compatibility baseline for current plugins #102

Open
4 of 5 issues completed
Open

Description

@cchacs

Effort: L

Problem

Current plugin compatibility cannot be expressed reliably by the existing version strings. The tagged v0.3.0-alpha.1 predates several required APIs, and later checkouts reuse version strings (the current checkout reports 0.3.0-alpha.2). minHost is exposed as metadata by the plugin loader; no frontend enforcement was found in the inspected checkout.

Source-level dependency boundaries

  • 0dcc913 (July 10): lib/dlc_paths.py and _resolve_dlc_path; required by current Lyrics Karaoke and Difficulty Ladder backends.
  • d876ded (July 13): sloppak.read_member_bytes; required by Difficulty Ladder generation and Feedpakr pack reuse/upgrade/deduplication.
  • 05be9eb (July 19): chart-transform capability; required for Chordr automatic diagram enrichment.
  • 03e1c1d (July 22): /ws/sync/{session_id}; required for Splitscreen LAN sharing.
  • f7c761c (September 16, this fork): renderFrameAt, renderFrame and setExternalFrameDriver; required by Visual Export and optional coordinated Splitscreen rendering.
  • 7633211 (September 17, this fork): playerContexts and player-difficulty.v1; required for full per-player integration.
  • e5339c0 (September 23, this fork): mastery selection by phrase tier number and getPhrases().top_difficulty; needed for current Difficulty Ladder presentation to agree with rendered tiers.

These are source/history findings, not an end-to-end certification of each historical build. Basic Piano and basic Splitscreen have their required APIs in the alpha.1 tag.

Proposed work

Acceptance

A user can identify a compatible build from its release/commit, and an incompatible feature explains its missing requirement before use. Record tested host and plugin revisions in the compatibility matrix.

Activity

  1. pullfrog commented on Sep 26, 2026

    @pullfrog
  2. added theissue type on Oct 1, 2026
  3. cchacs commented on Oct 2, 2026

    @cchacs
    CollaboratorAuthor

    Split into sub-issues (proposed; adjust freely). The "Compat baseline N/5" titles map to issue numbers as shown:

    Order Sub-issue Depends on
    1 #131 1/5 document upstream-vs-fork requirements and pin commits (docs only) none
    2 #132 2/5 required vs optional host capability checks #131
    2 #133 3/5 make minHost actionable (prerelease-aware, diagnostics) #131
    3 #134 4/5 test representative plugins against minimum and latest host #131, #132
    4 #135 5/5 publish a distinct, traceable baseline version #131, #133, #134

    Maps to "Proposed work" in this issue. #135 is a maintainer decision and a release action, so it is last on purpose.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions