vc=80 — strawcore extraction perf batch (borrow-not-clone + parallel channel browse)
All checks were successful
build-apk / build-and-publish (push) Successful in 7m3s
gitleaks / scan (push) Successful in 42s

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.
This commit is contained in:
Cobb 2026-06-21 05:42:08 -07:00
parent 96bad228ef
commit 0e7f0b4781

View file

@ -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"