Skip to content

Enhance TAKTALK support with message and room handling, update SDK to v0.3.2#5634

Merged
jamesarich merged 2 commits into
mainfrom
tak-fix-talk
May 28, 2026
Merged

Enhance TAKTALK support with message and room handling, update SDK to v0.3.2#5634
jamesarich merged 2 commits into
mainfrom
tak-fix-talk

Conversation

@thebentern

Copy link
Copy Markdown
Contributor

No description provided.

@thebentern thebentern requested a review from jamesarich May 28, 2026 13:15
@codecov

codecov Bot commented May 28, 2026

Copy link
Copy Markdown

❌ 6 Tests Failed:

Tests completed Failed Passed Skipped
2512 6 2506 0
View the top 3 failed test(s) by shortest run time
org.meshtastic.core.takserver.TakV2CompressorTaktalkTest::b-t-f chat without TAKTALK sidecars leaves them null on the wire
Stack Traces | 0.001s run time
java.lang.IllegalStateException: zstd-jni unavailable on this platform
	at org.meshtastic.core.takserver.TakV2Compressor.getSdkCompressor(TakV2Compressor.kt:63)
	at org.meshtastic.core.takserver.TakV2Compressor.compress(TakV2Compressor.kt:75)
	at org.meshtastic.core.takserver.TakV2CompressorTaktalkTest.b-t-f chat without TAKTALK sidecars leaves them null on the wire(TakV2CompressorTaktalkTest.kt:196)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestExecutor.runRequest(JUnitTestExecutor.java:175)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestExecutor.accept(JUnitTestExecutor.java:84)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestExecutor.accept(JUnitTestExecutor.java:47)
	at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestDefinitionProcessor.processTestDefinition(AbstractJUnitTestDefinitionProcessor.java:65)
	at org.gradle.api.internal.tasks.testing.SuiteTestDefinitionProcessor.processTestDefinition(SuiteTestDefinitionProcessor.java:53)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.gradle.internal.dispatch.MethodInvocation.invokeOn(MethodInvocation.java:77)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:28)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:19)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:88)
	at jdk.proxy1/jdk.proxy1.$Proxy4.processTestDefinition(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:178)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:126)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:122)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:72)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Caused by: java.lang.UnsatisfiedLinkError: no zstd-jni-1.5.7-9 in java.library.path: .../java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib:.../src/androidHostTest/jniLibs
Unsupported OS/arch, cannot find .../linux/amd64/libzstd-jni-1.5.7-9.so or load zstd-jni-1.5.7-9 from system libraries. Please try building from source the jar or providing libzstd-jni-1.5.7-9 in your system.
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2458)
	at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:916)
	at java.base/java.lang.System.loadLibrary(System.java:2064)
	at com.github.luben.zstd.util.Native$1.run(Native.java:72)
	at com.github.luben.zstd.util.Native$1.run(Native.java:70)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
	at com.github.luben.zstd.util.Native.loadLibrary(Native.java:70)
	at com.github.luben.zstd.util.Native.load(Native.java:124)
	at com.github.luben.zstd.util.Native.load(Native.java:90)
	at com.github.luben.zstd.ZstdDictCompress.<clinit>(ZstdDictCompress.java:9)
	at org.meshtastic.tak.TakCompressor.<init>(TakCompressor.kt:28)
	at org.meshtastic.tak.TakCompressor.<init>(TakCompressor.kt:15)
	at org.meshtastic.core.takserver.TakV2Compressor.getSdkCompressor(TakV2Compressor.kt:66)
	at org.meshtastic.core.takserver.TakV2Compressor.compress(TakV2Compressor.kt:75)
	at org.meshtastic.core.takserver.TakV2CompressorTaktalkTest.y- taktalk room broadcast round-trips with participant list(TakV2CompressorTaktalkTest.kt:110)
	... 42 more
org.meshtastic.core.takserver.TakV2CompressorTaktalkTest::m-t-t taktalk text-only message has from_voice false
Stack Traces | 0.001s run time
java.lang.IllegalStateException: zstd-jni unavailable on this platform
	at org.meshtastic.core.takserver.TakV2Compressor.getSdkCompressor(TakV2Compressor.kt:63)
	at org.meshtastic.core.takserver.TakV2Compressor.compress(TakV2Compressor.kt:75)
	at org.meshtastic.core.takserver.TakV2CompressorTaktalkTest.m-t-t taktalk text-only message has from_voice false(TakV2CompressorTaktalkTest.kt:86)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestExecutor.runRequest(JUnitTestExecutor.java:175)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestExecutor.accept(JUnitTestExecutor.java:84)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestExecutor.accept(JUnitTestExecutor.java:47)
	at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestDefinitionProcessor.processTestDefinition(AbstractJUnitTestDefinitionProcessor.java:65)
	at org.gradle.api.internal.tasks.testing.SuiteTestDefinitionProcessor.processTestDefinition(SuiteTestDefinitionProcessor.java:53)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.gradle.internal.dispatch.MethodInvocation.invokeOn(MethodInvocation.java:77)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:28)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:19)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:88)
	at jdk.proxy1/jdk.proxy1.$Proxy4.processTestDefinition(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:178)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:126)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:122)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:72)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Caused by: java.lang.UnsatisfiedLinkError: no zstd-jni-1.5.7-9 in java.library.path: .../java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib:.../src/androidHostTest/jniLibs
Unsupported OS/arch, cannot find .../linux/amd64/libzstd-jni-1.5.7-9.so or load zstd-jni-1.5.7-9 from system libraries. Please try building from source the jar or providing libzstd-jni-1.5.7-9 in your system.
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2458)
	at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:916)
	at java.base/java.lang.System.loadLibrary(System.java:2064)
	at com.github.luben.zstd.util.Native$1.run(Native.java:72)
	at com.github.luben.zstd.util.Native$1.run(Native.java:70)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
	at com.github.luben.zstd.util.Native.loadLibrary(Native.java:70)
	at com.github.luben.zstd.util.Native.load(Native.java:124)
	at com.github.luben.zstd.util.Native.load(Native.java:90)
	at com.github.luben.zstd.ZstdDictCompress.<clinit>(ZstdDictCompress.java:9)
	at org.meshtastic.tak.TakCompressor.<init>(TakCompressor.kt:28)
	at org.meshtastic.tak.TakCompressor.<init>(TakCompressor.kt:15)
	at org.meshtastic.core.takserver.TakV2Compressor.getSdkCompressor(TakV2Compressor.kt:66)
	at org.meshtastic.core.takserver.TakV2Compressor.compress(TakV2Compressor.kt:75)
	at org.meshtastic.core.takserver.TakV2CompressorTaktalkTest.y- taktalk room broadcast round-trips with participant list(TakV2CompressorTaktalkTest.kt:110)
	... 42 more
org.meshtastic.core.takserver.TakV2CompressorTaktalkTest::b-t-f chat carries TAKTALK sidecars through compressor
Stack Traces | 0.005s run time
java.lang.IllegalStateException: zstd-jni unavailable on this platform
	at org.meshtastic.core.takserver.TakV2Compressor.getSdkCompressor(TakV2Compressor.kt:63)
	at org.meshtastic.core.takserver.TakV2Compressor.compress(TakV2Compressor.kt:75)
	at org.meshtastic.core.takserver.TakV2CompressorTaktalkTest.b-t-f chat carries TAKTALK sidecars through compressor(TakV2CompressorTaktalkTest.kt:164)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestExecutor.runRequest(JUnitTestExecutor.java:175)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestExecutor.accept(JUnitTestExecutor.java:84)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestExecutor.accept(JUnitTestExecutor.java:47)
	at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestDefinitionProcessor.processTestDefinition(AbstractJUnitTestDefinitionProcessor.java:65)
	at org.gradle.api.internal.tasks.testing.SuiteTestDefinitionProcessor.processTestDefinition(SuiteTestDefinitionProcessor.java:53)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.gradle.internal.dispatch.MethodInvocation.invokeOn(MethodInvocation.java:77)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:28)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:19)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:88)
	at jdk.proxy1/jdk.proxy1.$Proxy4.processTestDefinition(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:178)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:126)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:122)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:72)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Caused by: java.lang.UnsatisfiedLinkError: no zstd-jni-1.5.7-9 in java.library.path: .../java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib:.../src/androidHostTest/jniLibs
Unsupported OS/arch, cannot find .../linux/amd64/libzstd-jni-1.5.7-9.so or load zstd-jni-1.5.7-9 from system libraries. Please try building from source the jar or providing libzstd-jni-1.5.7-9 in your system.
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2458)
	at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:916)
	at java.base/java.lang.System.loadLibrary(System.java:2064)
	at com.github.luben.zstd.util.Native$1.run(Native.java:72)
	at com.github.luben.zstd.util.Native$1.run(Native.java:70)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
	at com.github.luben.zstd.util.Native.loadLibrary(Native.java:70)
	at com.github.luben.zstd.util.Native.load(Native.java:124)
	at com.github.luben.zstd.util.Native.load(Native.java:90)
	at com.github.luben.zstd.ZstdDictCompress.<clinit>(ZstdDictCompress.java:9)
	at org.meshtastic.tak.TakCompressor.<init>(TakCompressor.kt:28)
	at org.meshtastic.tak.TakCompressor.<init>(TakCompressor.kt:15)
	at org.meshtastic.core.takserver.TakV2Compressor.getSdkCompressor(TakV2Compressor.kt:66)
	at org.meshtastic.core.takserver.TakV2Compressor.compress(TakV2Compressor.kt:75)
	at org.meshtastic.core.takserver.TakV2CompressorTaktalkTest.y- taktalk room broadcast round-trips with participant list(TakV2CompressorTaktalkTest.kt:110)
	... 42 more
org.meshtastic.core.takserver.TakV2CompressorTaktalkTest::m-t-t with marti round-trips dest callsigns and survives compression
Stack Traces | 0.009s run time
java.lang.IllegalStateException: zstd-jni unavailable on this platform
	at org.meshtastic.core.takserver.TakV2Compressor.getSdkCompressor(TakV2Compressor.kt:63)
	at org.meshtastic.core.takserver.TakV2Compressor.compress(TakV2Compressor.kt:75)
	at org.meshtastic.core.takserver.TakV2CompressorTaktalkTest.m-t-t with marti round-trips dest callsigns and survives compression(TakV2CompressorTaktalkTest.kt:141)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestExecutor.runRequest(JUnitTestExecutor.java:175)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestExecutor.accept(JUnitTestExecutor.java:84)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestExecutor.accept(JUnitTestExecutor.java:47)
	at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestDefinitionProcessor.processTestDefinition(AbstractJUnitTestDefinitionProcessor.java:65)
	at org.gradle.api.internal.tasks.testing.SuiteTestDefinitionProcessor.processTestDefinition(SuiteTestDefinitionProcessor.java:53)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.gradle.internal.dispatch.MethodInvocation.invokeOn(MethodInvocation.java:77)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:28)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:19)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:88)
	at jdk.proxy1/jdk.proxy1.$Proxy4.processTestDefinition(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:178)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:126)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:122)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:72)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Caused by: java.lang.UnsatisfiedLinkError: no zstd-jni-1.5.7-9 in java.library.path: .../java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib:.../src/androidHostTest/jniLibs
Unsupported OS/arch, cannot find .../linux/amd64/libzstd-jni-1.5.7-9.so or load zstd-jni-1.5.7-9 from system libraries. Please try building from source the jar or providing libzstd-jni-1.5.7-9 in your system.
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2458)
	at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:916)
	at java.base/java.lang.System.loadLibrary(System.java:2064)
	at com.github.luben.zstd.util.Native$1.run(Native.java:72)
	at com.github.luben.zstd.util.Native$1.run(Native.java:70)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
	at com.github.luben.zstd.util.Native.loadLibrary(Native.java:70)
	at com.github.luben.zstd.util.Native.load(Native.java:124)
	at com.github.luben.zstd.util.Native.load(Native.java:90)
	at com.github.luben.zstd.ZstdDictCompress.<clinit>(ZstdDictCompress.java:9)
	at org.meshtastic.tak.TakCompressor.<init>(TakCompressor.kt:28)
	at org.meshtastic.tak.TakCompressor.<init>(TakCompressor.kt:15)
	at org.meshtastic.core.takserver.TakV2Compressor.getSdkCompressor(TakV2Compressor.kt:66)
	at org.meshtastic.core.takserver.TakV2Compressor.compress(TakV2Compressor.kt:75)
	at org.meshtastic.core.takserver.TakV2CompressorTaktalkTest.y- taktalk room broadcast round-trips with participant list(TakV2CompressorTaktalkTest.kt:110)
	... 42 more
org.meshtastic.core.takserver.TakV2CompressorTaktalkTest::m-t-t taktalk message round-trips with voice marker
Stack Traces | 0.011s run time
java.lang.IllegalStateException: zstd-jni unavailable on this platform
	at org.meshtastic.core.takserver.TakV2Compressor.getSdkCompressor(TakV2Compressor.kt:63)
	at org.meshtastic.core.takserver.TakV2Compressor.compress(TakV2Compressor.kt:75)
	at org.meshtastic.core.takserver.TakV2CompressorTaktalkTest.m-t-t taktalk message round-trips with voice marker(TakV2CompressorTaktalkTest.kt:59)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestExecutor.runRequest(JUnitTestExecutor.java:175)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestExecutor.accept(JUnitTestExecutor.java:84)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestExecutor.accept(JUnitTestExecutor.java:47)
	at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestDefinitionProcessor.processTestDefinition(AbstractJUnitTestDefinitionProcessor.java:65)
	at org.gradle.api.internal.tasks.testing.SuiteTestDefinitionProcessor.processTestDefinition(SuiteTestDefinitionProcessor.java:53)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.gradle.internal.dispatch.MethodInvocation.invokeOn(MethodInvocation.java:77)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:28)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:19)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:88)
	at jdk.proxy1/jdk.proxy1.$Proxy4.processTestDefinition(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:178)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:126)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:122)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:72)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Caused by: java.lang.UnsatisfiedLinkError: no zstd-jni-1.5.7-9 in java.library.path: .../java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib:.../src/androidHostTest/jniLibs
Unsupported OS/arch, cannot find .../linux/amd64/libzstd-jni-1.5.7-9.so or load zstd-jni-1.5.7-9 from system libraries. Please try building from source the jar or providing libzstd-jni-1.5.7-9 in your system.
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2458)
	at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:916)
	at java.base/java.lang.System.loadLibrary(System.java:2064)
	at com.github.luben.zstd.util.Native$1.run(Native.java:72)
	at com.github.luben.zstd.util.Native$1.run(Native.java:70)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
	at com.github.luben.zstd.util.Native.loadLibrary(Native.java:70)
	at com.github.luben.zstd.util.Native.load(Native.java:124)
	at com.github.luben.zstd.util.Native.load(Native.java:90)
	at com.github.luben.zstd.ZstdDictCompress.<clinit>(ZstdDictCompress.java:9)
	at org.meshtastic.tak.TakCompressor.<init>(TakCompressor.kt:28)
	at org.meshtastic.tak.TakCompressor.<init>(TakCompressor.kt:15)
	at org.meshtastic.core.takserver.TakV2Compressor.getSdkCompressor(TakV2Compressor.kt:66)
	at org.meshtastic.core.takserver.TakV2Compressor.compress(TakV2Compressor.kt:75)
	at org.meshtastic.core.takserver.TakV2CompressorTaktalkTest.y- taktalk room broadcast round-trips with participant list(TakV2CompressorTaktalkTest.kt:110)
	... 42 more
org.meshtastic.core.takserver.TakV2CompressorTaktalkTest::y- taktalk room broadcast round-trips with participant list
Stack Traces | 0.153s run time
java.lang.IllegalStateException: zstd-jni unavailable on this platform
	at org.meshtastic.core.takserver.TakV2Compressor.getSdkCompressor(TakV2Compressor.kt:69)
	at org.meshtastic.core.takserver.TakV2Compressor.compress(TakV2Compressor.kt:75)
	at org.meshtastic.core.takserver.TakV2CompressorTaktalkTest.y- taktalk room broadcast round-trips with participant list(TakV2CompressorTaktalkTest.kt:110)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestExecutor.runRequest(JUnitTestExecutor.java:175)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestExecutor.accept(JUnitTestExecutor.java:84)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestExecutor.accept(JUnitTestExecutor.java:47)
	at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestDefinitionProcessor.processTestDefinition(AbstractJUnitTestDefinitionProcessor.java:65)
	at org.gradle.api.internal.tasks.testing.SuiteTestDefinitionProcessor.processTestDefinition(SuiteTestDefinitionProcessor.java:53)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.gradle.internal.dispatch.MethodInvocation.invokeOn(MethodInvocation.java:77)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:28)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:19)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:88)
	at jdk.proxy1/jdk.proxy1.$Proxy4.processTestDefinition(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:178)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:126)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:122)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:72)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Caused by: java.lang.UnsatisfiedLinkError: no zstd-jni-1.5.7-9 in java.library.path: .../java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib:.../src/androidHostTest/jniLibs
Unsupported OS/arch, cannot find .../linux/amd64/libzstd-jni-1.5.7-9.so or load zstd-jni-1.5.7-9 from system libraries. Please try building from source the jar or providing libzstd-jni-1.5.7-9 in your system.
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2458)
	at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:916)
	at java.base/java.lang.System.loadLibrary(System.java:2064)
	at com.github.luben.zstd.util.Native$1.run(Native.java:72)
	at com.github.luben.zstd.util.Native$1.run(Native.java:70)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
	at com.github.luben.zstd.util.Native.loadLibrary(Native.java:70)
	at com.github.luben.zstd.util.Native.load(Native.java:124)
	at com.github.luben.zstd.util.Native.load(Native.java:90)
	at com.github.luben.zstd.ZstdDictCompress.<clinit>(ZstdDictCompress.java:9)
	at org.meshtastic.tak.TakCompressor.<init>(TakCompressor.kt:28)
	at org.meshtastic.tak.TakCompressor.<init>(TakCompressor.kt:15)
	at org.meshtastic.core.takserver.TakV2Compressor.getSdkCompressor(TakV2Compressor.kt:66)
	... 44 more

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

…-jni

- Run spotlessApply to fix formatting violations in TakV2Compressor and
  TakV2CompressorTaktalkTest
- Add zstd-jni platform JAR to androidHostTest dependencies — the @aar
  from androidMain only ships ARM/x86 .so files, which don't load on the
  Linux x86_64 host JVM used by testAndroidHostTest in CI

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@jamesarich jamesarich added this pull request to the merge queue May 28, 2026
Merged via the queue into main with commit a5e6894 May 28, 2026
18 checks passed
@jamesarich jamesarich deleted the tak-fix-talk branch May 28, 2026 17:40
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