From 7adf1ff4c96f6ac063e8026ca04ac208d1b80f52 Mon Sep 17 00:00:00 2001 From: James Ding Date: Mon, 17 Aug 2026 03:25:58 -0700 Subject: [PATCH 1/4] docs: correct format support matrix --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 011ef263..7d65c47b 100644 --- a/README.md +++ b/README.md @@ -14,9 +14,9 @@ Supported formats include MP4, MKV, MOV, WebM, MP3, WAV, FLAC, AAC, and many mor | | Native | Transcoded | |--|--------|------------| -| **Video** | WebM, OGV | MP4, M4V, MKV, AVI, MOV, WMV, FLV, TS, MTS, M2TS, 3GP, IVF | +| **Video** | WebM, OGV | MP4, M4V, MKV, AVI, MOV, WMV, FLV, M2TS, M2T, 3GP, IVF | | **Audio** | MP3, WAV, FLAC, OGG, OGA, Opus | M4A, AAC, ADTS, AC3, EAC3, CAF, WMA, AIFF, AIF | -| **Telephony / Voice** | — | AMR, AU, PCMU, ULAW, PCMA, ALAW, G722, GSM, SLN | +| **Telephony / Voice** | — | AMR, AU, PCMU, ULAW, PCMA, ALAW, G722, SLIN | - **Native** — plays instantly in the embedded browser - **Transcoded** — converted to WebM (VP9/Opus) via bundled FFmpeg on first open, with live progress From 46762fb86c7f750a6358c8e2d37df3358d5bfeaf Mon Sep 17 00:00:00 2001 From: James Ding Date: Mon, 17 Aug 2026 03:36:54 -0700 Subject: [PATCH 2/4] fix(client): resolve relocated RD client library --- client/build.gradle.kts | 55 ++++++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/client/build.gradle.kts b/client/build.gradle.kts index 253ab94f..b990b380 100644 --- a/client/build.gradle.kts +++ b/client/build.gradle.kts @@ -1,7 +1,31 @@ import org.jetbrains.intellij.platform.gradle.TestFrameworkType -import java.util.concurrent.Callable +import org.jetbrains.intellij.platform.gradle.extensions.IntelliJPlatformExtension -val idesDir = rootProject.layout.projectDirectory.dir(".intellijPlatform/ides").asFile +val rdClientLibraries = providers.provider { + val ideHome = extensions.getByType().platformPath + val clientCandidates = listOf( + "lib/intellij.rd.client.jar", // 2026.2+ + "plugins/cwm-plugin/lib/frontend-split/rd-client.jar", // 2025.3-2026.1 + ) + val clientLibrary = clientCandidates.firstOrNull { ideHome.resolve(it).toFile().isFile } + ?: error( + "Missing IntelliJ RD client library under $ideHome; checked:\n" + + clientCandidates.joinToString("\n") { " $it" }, + ) + val libraryPaths = listOf( + clientLibrary, + "lib/intellij.rd.platform.jar", + "lib/intellij.rd.ui.jar", + "lib/intellij.rd.ide.model.generated.jar", + "lib/intellij.libraries.rd.core.jar", + ) + val missingLibraries = libraryPaths.filterNot { ideHome.resolve(it).toFile().isFile } + require(missingLibraries.isEmpty()) { + "Missing IntelliJ RD libraries under $ideHome:\n" + + missingLibraries.joinToString("\n") { " $it" } + } + libraryPaths.map { ideHome.resolve(it).toFile() } +} dependencies { intellijPlatform { @@ -13,30 +37,9 @@ dependencies { implementation(project(":shared")) implementation(project(":frontend")) - // These RD jars aren't exposed as bundledModule() in IU-261, so pin them as compileOnly — resolved - // lazily via Callable because the IDE dir is empty until the platform plugin downloads it (fresh CI). - compileOnly(files(Callable { - val ideHome = idesDir.listFiles()?.sortedByDescending { it.name }?.firstOrNull() - ?: error("No resolved IDE under $idesDir") - // Glob the whole frontend-split dir instead of naming rd-client.jar/frontend-split.jar: - // EAP builds rename these, and the split classes we compile against live somewhere in here. - val splitDir = ideHome.resolve("plugins/cwm-plugin/lib/frontend-split") - val splitJars = splitDir.listFiles { f -> f.extension == "jar" }?.toList().orEmpty() - val libJars = listOf( - "lib/intellij.rd.platform.jar", - "lib/intellij.rd.ui.jar", - "lib/intellij.rd.ide.model.generated.jar", - "lib/intellij.libraries.rd.core.jar", - ).map { ideHome.resolve(it) } - // Fail early with a clear message if the IDE layout moved these internal jars. - val missingLib = libJars.filterNot { it.exists() } - require(splitJars.isNotEmpty() && missingLib.isEmpty()) { - "Missing IntelliJ internal jars for :client under $ideHome:\n" + - (if (splitJars.isEmpty()) " $splitDir/*.jar\n" else "") + - missingLib.joinToString("\n") { " $it" } - } - splitJars + libJars - })) + // The file-editor handler remains binary-compatible, but its jar moved out of the CWM plugin + // in 2026.2. Resolve it from the actual platform instead of scanning a pre-populated IDE cache. + compileOnly(files(rdClientLibraries)) testImplementation(libs.junit) testImplementation(libs.opentest4j) From 8a59ee4f81ebc7cb6a5c3499ee4938b2481555d8 Mon Sep 17 00:00:00 2001 From: James Ding Date: Mon, 17 Aug 2026 04:01:42 -0700 Subject: [PATCH 3/4] refactor(client): simplify RD compile dependencies --- client/build.gradle.kts | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/client/build.gradle.kts b/client/build.gradle.kts index b990b380..ee7d65df 100644 --- a/client/build.gradle.kts +++ b/client/build.gradle.kts @@ -1,35 +1,25 @@ import org.jetbrains.intellij.platform.gradle.TestFrameworkType import org.jetbrains.intellij.platform.gradle.extensions.IntelliJPlatformExtension -val rdClientLibraries = providers.provider { +val rdClientLibrary = providers.provider { val ideHome = extensions.getByType().platformPath val clientCandidates = listOf( "lib/intellij.rd.client.jar", // 2026.2+ "plugins/cwm-plugin/lib/frontend-split/rd-client.jar", // 2025.3-2026.1 ) - val clientLibrary = clientCandidates.firstOrNull { ideHome.resolve(it).toFile().isFile } + clientCandidates.firstNotNullOfOrNull { path -> + ideHome.resolve(path).takeIf { it.toFile().isFile }?.toFile() + } ?: error( "Missing IntelliJ RD client library under $ideHome; checked:\n" + clientCandidates.joinToString("\n") { " $it" }, ) - val libraryPaths = listOf( - clientLibrary, - "lib/intellij.rd.platform.jar", - "lib/intellij.rd.ui.jar", - "lib/intellij.rd.ide.model.generated.jar", - "lib/intellij.libraries.rd.core.jar", - ) - val missingLibraries = libraryPaths.filterNot { ideHome.resolve(it).toFile().isFile } - require(missingLibraries.isEmpty()) { - "Missing IntelliJ RD libraries under $ideHome:\n" + - missingLibraries.joinToString("\n") { " $it" } - } - libraryPaths.map { ideHome.resolve(it).toFile() } } dependencies { intellijPlatform { bundledModule("intellij.platform.frontend") + bundledModule("intellij.rd.ide.model.generated") compileOnly(libs.kotlin.serialization.core.jvm) compileOnly(libs.kotlin.serialization.json.jvm) testFramework(TestFrameworkType.Platform) @@ -37,9 +27,8 @@ dependencies { implementation(project(":shared")) implementation(project(":frontend")) - // The file-editor handler remains binary-compatible, but its jar moved out of the CWM plugin - // in 2026.2. Resolve it from the actual platform instead of scanning a pre-populated IDE cache. - compileOnly(files(rdClientLibraries)) + // Not indexed as a bundled module until 2026.2; the class is binary-compatible across the move. + compileOnly(files(rdClientLibrary)) testImplementation(libs.junit) testImplementation(libs.opentest4j) From f24c1d894482db7c32817ef84335a95af566bc58 Mon Sep 17 00:00:00 2001 From: James Ding Date: Mon, 17 Aug 2026 04:14:52 -0700 Subject: [PATCH 4/4] build(client): use published RD dependency --- client/build.gradle.kts | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/client/build.gradle.kts b/client/build.gradle.kts index ee7d65df..eabec8c8 100644 --- a/client/build.gradle.kts +++ b/client/build.gradle.kts @@ -1,25 +1,11 @@ import org.jetbrains.intellij.platform.gradle.TestFrameworkType -import org.jetbrains.intellij.platform.gradle.extensions.IntelliJPlatformExtension - -val rdClientLibrary = providers.provider { - val ideHome = extensions.getByType().platformPath - val clientCandidates = listOf( - "lib/intellij.rd.client.jar", // 2026.2+ - "plugins/cwm-plugin/lib/frontend-split/rd-client.jar", // 2025.3-2026.1 - ) - clientCandidates.firstNotNullOfOrNull { path -> - ideHome.resolve(path).takeIf { it.toFile().isFile }?.toFile() - } - ?: error( - "Missing IntelliJ RD client library under $ideHome; checked:\n" + - clientCandidates.joinToString("\n") { " $it" }, - ) -} +import org.jetbrains.intellij.platform.gradle.models.Coordinates dependencies { intellijPlatform { bundledModule("intellij.platform.frontend") bundledModule("intellij.rd.ide.model.generated") + platformDependency(Coordinates("com.jetbrains.intellij.rd", "rd-client")) compileOnly(libs.kotlin.serialization.core.jvm) compileOnly(libs.kotlin.serialization.json.jvm) testFramework(TestFrameworkType.Platform) @@ -27,9 +13,6 @@ dependencies { implementation(project(":shared")) implementation(project(":frontend")) - // Not indexed as a bundled module until 2026.2; the class is binary-compatible across the move. - compileOnly(files(rdClientLibrary)) - testImplementation(libs.junit) testImplementation(libs.opentest4j) }