Files
SoulStream/handoff/rounds/ins-r43-consumer-notice.txt
T
KeelrLeek 9f0601027c android: the handoff — the pending rounds, the pipeline, and what is unverified
Everything written this session that has not been through the device: rounds 43
to 48 (each patch adversarially verified, 43's transient-notice expectation
fixed), a partial round 49, the pipeline scripts, the Android Auto design and
the icon comparison mock. Also the two harness changes that were never A/B'd —
adaptive waits, which may only shorten a declared wait and never lengthen it,
and a ship that runs the mock walk and the deploy at the same time. The A/B and
its 255-step baseline are in handoff/tools; main stays at what the phone has
actually walked.
2026-09-14 07:57:41 -05:00

23 lines
1.2 KiB
Plaintext

# Consumer R8/ProGuard rules for the transfer-notice plugin. Inert unless the
# consuming app minifies, and only the `release` build type does, so the
# debug APK the deploy pipeline builds is untouched by this file.
#
# TransferNoticePlugin is found by the string
# "com/soulstream/transfernotice/TransferNoticePlugin"
# (register_android_plugin → FindClass), constructed through
# "(Landroid/app/Activity;)V", and its two @Command methods — update and
# clear — are dispatched by NAME through PluginHandle's commands map.
# NoticeArgs is filled by Jackson field by field. Rename any of it and a Save
# runs to completion with no notice in the shade at all.
#
# The notice's own Cancel and Open come back as the plugin event "action",
# which the WebView subscribes to through Plugin.registerListener — declared
# on tauri's base class, which no rule of tauri's own names. See
# src-tauri/android/proguard-soulstream.pro.
#
# TransferService is declared in this module's AndroidManifest.xml, so AGP's
# own merged-manifest keep rules hold it by name. Not repeated here: one
# place decides it.
-keep class com.soulstream.transfernotice.TransferNoticePlugin { *; }
-keep class com.soulstream.transfernotice.NoticeArgs { *; }