vc=88: deferred-hygiene sweep (audit #2 leftovers, no behavior change)
M-2: route every SharedPreferences write (Settings/History/Subs/Resume) through one PrefsWriter — a per-store single-thread dispatcher — so the on-disk apply() order matches the in-memory CAS order. Previously a Main-thread toggle and an IO-thread import could land apply() out of order, and ResumePositions detached ordering entirely via a fresh globalScope.launch per write; a stale value could then win the next cold-start load. Each write reads the live StateFlow so disk converges to the latest in-memory state regardless of enqueue order. L-14: Settings storage-usage sampling (File.length() x4 + Coil diskCache.size) moved off the composition/Main thread into a LaunchedEffect on Dispatchers.IO. L-2 / L-4..L-8 / L-15 / L-16: dead code + stale comments from the vc=85 SB/RYD to Rust migration. Http.kt trimmed to STRAW_USER_AGENT; reconciled the network_security_config / feed.rs / SubscriptionFeedViewModel / net.rs / CI comments with reality; recencyScore overflow-guarded; ci/Dockerfile now pre-installs build-tools 36 (AGP 9.2.1's actual floor, was auto-fetched). Verified: headless compileDebugKotlin green on the straw-build image.
This commit is contained in:
parent
1fe6c12f1d
commit
457166e3b0
14 changed files with 256 additions and 183 deletions
|
|
@ -6,9 +6,13 @@
|
|||
# FRESH Forgejo CI job container is fully self-contained (no host /caches
|
||||
# dependency, no per-machine signing key).
|
||||
#
|
||||
# Toolchain pinned to exactly what builds vc=72 successfully:
|
||||
# JDK 21 · NDK 27.2.12479018 · build-tools 34.0.0 · platforms android-36
|
||||
# Toolchain pinned to exactly what builds successfully:
|
||||
# JDK 21 · NDK 27.2.12479018 · build-tools 34.0.0 + 36.0.0 · platforms android-36
|
||||
# Rust stable + 4 Android targets · cargo-ndk · clang/libclang (rquickjs bindgen)
|
||||
# AGP 9.2.1 (compileSdk 36) requires build-tools 36; we pre-install it so the build
|
||||
# doesn't sdkmanager-download it on every run (older images shipped only 34.0.0 and
|
||||
# AGP auto-fetched 36 at build time — works, but a per-build network dependency).
|
||||
# 34.0.0 is kept for belt-and-suspenders; apksigner uses the highest present (36).
|
||||
FROM eclipse-temurin:21-jdk-jammy
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive \
|
||||
|
|
@ -37,6 +41,7 @@ RUN mkdir -p "$ANDROID_SDK_ROOT/cmdline-tools" \
|
|||
"platform-tools" \
|
||||
"platforms;android-36" \
|
||||
"build-tools;34.0.0" \
|
||||
"build-tools;36.0.0" \
|
||||
"ndk;27.2.12479018" >/dev/null \
|
||||
&& rm -rf "$ANDROID_SDK_ROOT/.temp" /tmp/*
|
||||
|
||||
|
|
@ -49,7 +54,9 @@ RUN curl -fsSL https://sh.rustup.rs | sh -s -- -y --default-toolchain stable --p
|
|||
|
||||
# Sanity: fail the image build early if anything's missing.
|
||||
RUN java -version && cargo --version && cargo ndk --version || true \
|
||||
&& test -d "$ANDROID_NDK_HOME" && test -d "$ANDROID_SDK_ROOT/build-tools/34.0.0"
|
||||
&& test -d "$ANDROID_NDK_HOME" \
|
||||
&& test -d "$ANDROID_SDK_ROOT/build-tools/34.0.0" \
|
||||
&& test -d "$ANDROID_SDK_ROOT/build-tools/36.0.0"
|
||||
|
||||
# Publish tooling (appended last so the heavy toolchain layers stay cached):
|
||||
# docker CLI to talk to the runner's host socket for the fdroid steps, and
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue