From 0e7f0b4781c208345b51349e93f9a081947aa4e1 Mon Sep 17 00:00:00 2001 From: Cobb Date: Sun, 21 Jun 2026 05:42:08 -0700 Subject: [PATCH] =?UTF-8?q?vc=3D80=20=E2=80=94=20strawcore=20extraction=20?= =?UTF-8?q?perf=20batch=20(borrow-not-clone=20+=20parallel=20channel=20bro?= =?UTF-8?q?wse)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Picks up strawcore 91d4824: streamingData + format objects borrowed instead of deep-cloned per video open; channel Home/Videos tabs fetched concurrently (one round-trip, not two); response bodies decoded in place on the valid-UTF-8 path. No behavior change — internal allocation + latency wins only. --- buildSrc/src/main/kotlin/ProjectConfig.kt | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/kotlin/ProjectConfig.kt b/buildSrc/src/main/kotlin/ProjectConfig.kt index 0dbaed3a2..9eaa1d4b7 100644 --- a/buildSrc/src/main/kotlin/ProjectConfig.kt +++ b/buildSrc/src/main/kotlin/ProjectConfig.kt @@ -9,6 +9,19 @@ const val STRAW_SDK_TARGET = 35 // Sulkta fork — Straw // +// vc=80 / 0.1.0-CN — strawcore extraction perf (Rust batch): +// * The extractor borrows the streamingData subtree out of the Android +// + iOS player responses instead of deep-cloning the largest part of +// each response, and merges format objects by reference rather than +// cloning all ~20-40 of them per video open. +// * Channel pages fetch their Home + Videos tabs concurrently, so +// opening a channel costs one network round-trip of latency instead +// of two. +// * Response bodies decode in place on the (overwhelmingly common) +// valid-UTF-8 path instead of always copying. +// No behavior change — purely allocation + latency wins in strawcore +// (strawcore 91d4824). +// // vc=79 / 0.1.0-CM — perf-audit pass-2 (app-side slam-dunks): // * FIX a wrong-thread crash: the headphone-disconnect settings watcher // ran on the IO scope and touched the ExoPlayer (thread-affine to the @@ -108,6 +121,6 @@ const val STRAW_SDK_TARGET = 35 // vc=19 / 0.1.0-AE — rust pipeline cutover. Extraction via // strawcore-core (Sulkta-Coop/strawcore) via the UniFFI wrapper; no // NewPipeExtractor in the runtime path. -const val STRAW_VERSION_CODE = 79 -const val STRAW_VERSION_NAME = "0.1.0-CM" +const val STRAW_VERSION_CODE = 80 +const val STRAW_VERSION_NAME = "0.1.0-CN" const val STRAW_APPLICATION_ID = "com.sulkta.straw"