HIGH: - ntfy listener: replace blocking exhausted() loop with SSE read + capped exponential-backoff reconnect; 60s read timeout - GatewayClient.stop(): reset HTTP leg (http, httpCursor, sseFailures, usingLongPoll, lastAck) - non-atomic shared state -> synchronized/@Volatile/AtomicLong/ CopyOnWriteArrayList MEDIUM: - mediaId path-traversal guard (isValidMediaId) at network/app/fs boundaries - loadFromCache: move ts=0 pending bubbles to end, keep stored order - attachment placeholder tracked by identity, not filename - optimistic ChannelStore updates on favorite/icon/automation/default - secure-store caching (desktop map, android store) - secret passed to keyring via stdin (macOS + Linux) - SecureStore.clear() clears deviceId/syncCursor/fcmToken/ntfy* - random ids for system messages; SSE EOF reconnect delay - PowerShell $ escaping; dispose() cancels job before saving flows - wire up "Forget pairing" in Settings - move machine-specific org.gradle.java.home to user-level gradle.properties LOW + dead code + stale comments: - .aac->audio/aac; locale-fixed cost/size; 3-digit hex; hour+ latency - Backdrop.DEFAULT defined once; notification id 24-bit; channel id cap - remove dead FileSource, unused protocol/theme/media constants, empty onDispose, SDK_INT<O guard, hostFromUrl - fix stale WS/SSE, M1/M5, and milestone KDoc comments Verified: Kotlin desktop+android host tests, 100/100 Python gateway tests, LSP clean, installed & running on device.
20 lines
783 B
Properties
20 lines
783 B
Properties
org.gradle.jvmargs=-Xmx4g -Dfile.encoding=UTF-8
|
|
# Desktop targets the Java 21 runtime (Markdown renderer 0.44.0 is
|
|
# Java-21 bytecode). AGP is JDK-21-compatible, so the Android build is
|
|
# unaffected (its bytecode target stays JVM 17 via minSdk/jvmTarget).
|
|
#
|
|
# The JDK-21 home is machine-specific, so it is NOT hardcoded here (a
|
|
# committed path would break every other checkout). Set it per machine via
|
|
# one of:
|
|
# - ~/.gradle/gradle.properties -> org.gradle.java.home=/path/to/jdk21
|
|
# - or export JAVA_HOME=/path/to/jdk21 before running ./gradlew
|
|
org.gradle.caching=true
|
|
org.gradle.configuration-cache=true
|
|
|
|
android.useAndroidX=true
|
|
android.nonTransitiveRClass=true
|
|
|
|
kotlin.code.style=official
|
|
|
|
# Compose Multiplatform
|
|
org.jetbrains.compose.experimental.jscanvas.enabled=false |