Skip to content

Commit b166b6c

Browse files
committed
Fix container slug, CI fork safety, actual referral codes
- AppContainer: add slug field so server discovers worker items correctly via containers[*].slug - CI: guard release build on KEYSTORE_BASE64 secret presence so forked/external PRs don't fail on missing secrets - Referral codes: use actual codes from CashPilot AGENTS.md for EarnApp, IPRoyal, Traffmonetizer, Bytelixir, Grass, Titan, Uprock (7 of 11 apps now have referral links)
1 parent 17cee5a commit b166b6c

4 files changed

Lines changed: 17 additions & 10 deletions

File tree

.github/workflows/ci.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,11 @@ jobs:
3131
run: ./gradlew lintDebug
3232

3333
- name: Decode keystore
34+
if: ${{ secrets.KEYSTORE_BASE64 != '' }}
3435
run: echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 -d > app/release.keystore
3536

3637
- name: Build release APK
38+
if: ${{ secrets.KEYSTORE_BASE64 != '' }}
3739
run: ./gradlew assembleRelease
3840
env:
3941
CASHPILOT_KEYSTORE_PATH: release.keystore

app/src/main/java/com/cashpilot/android/model/Heartbeat.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,14 @@ data class WorkerHeartbeat(
1818
@SerialName("system_info") val systemInfo: SystemInfo = SystemInfo(),
1919
)
2020

21-
/** Maps an Android app to the server's container-like representation. */
21+
/** Maps an Android app to the server's container-like representation.
22+
* Must include `slug` — the server discovers worker items via `containers[*].slug`. */
2223
@Serializable
2324
data class AppContainer(
25+
val slug: String,
2426
val name: String,
2527
val status: String,
2628
val image: String = "",
27-
/** Extra Android-specific fields packed here for forward compatibility. */
2829
val labels: Map<String, String> = emptyMap(),
2930
)
3031

app/src/main/java/com/cashpilot/android/model/MonitoredApp.kt

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,22 @@ data class MonitoredApp(
1919
object KnownApps {
2020
val all = listOf(
2121
MonitoredApp("earnapp", "com.brd.earnapp.play", "EarnApp",
22-
referralUrl = "https://earnapp.com/i/oLdIZYzl"),
22+
referralUrl = "https://earnapp.com/i/TSMD9wSm"),
2323
MonitoredApp("iproyal", "com.iproyal.android", "IPRoyal Pawns",
24-
referralUrl = "https://pawns.app?r=2335279"),
24+
referralUrl = "https://pawns.app?r=19266874"),
2525
MonitoredApp("mysterium", "network.mysterium.provider", "MystNodes"),
2626
MonitoredApp("traffmonetizer", "com.traffmonetizer.client", "Traffmonetizer",
27-
referralUrl = "https://traffmonetizer.com/?aff=1604226"),
28-
MonitoredApp("bytelixir", "com.bytelixir.blapp", "Bytelixir"),
27+
referralUrl = "https://traffmonetizer.com/?aff=2111758"),
28+
MonitoredApp("bytelixir", "com.bytelixir.blapp", "Bytelixir",
29+
referralUrl = "https://bytelixir.com/?ref=OYEIRE0VSZBZ"),
2930
MonitoredApp("bytebenefit", "io.bytebenefit.app", "ByteBenefit"),
3031
MonitoredApp("grass", "io.getgrass.www", "Grass",
31-
referralUrl = "https://app.getgrass.io/register/?referralCode=e0pz6dcOMGJO9Vu"),
32-
MonitoredApp("titan", "com.titan_network_vip.titan_app", "Titan Network"),
32+
referralUrl = "https://app.getgrass.io/register/?referralCode=kn8FNEPnUr2tMqE"),
33+
MonitoredApp("titan", "com.titan_network_vip.titan_app", "Titan Network",
34+
referralUrl = "https://edge.titannet.info/signup?inviteCode=2GKKJ495"),
3335
MonitoredApp("nodle", "io.nodle.cash", "Nodle Cash"),
34-
MonitoredApp("uprock", "com.uprock.mining", "Uprock"),
36+
MonitoredApp("uprock", "com.uprock.mining", "Uprock",
37+
referralUrl = "https://link.uprock.com/i/33e8492e"),
3538
MonitoredApp("wipter", "com.wipter.app", "Wipter"),
3639
)
3740

app/src/main/java/com/cashpilot/android/service/HeartbeatService.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,8 @@ class HeartbeatService : Service() {
9797
// - `containers` (legacy): simplified format so older servers still show the worker
9898
val containers = apps.map { app ->
9999
AppContainer(
100-
name = app.slug,
100+
slug = app.slug,
101+
name = "cashpilot-${app.slug}",
101102
status = if (app.running) "running" else "stopped",
102103
labels = mapOf(
103104
"cashpilot.managed" to "true",

0 commit comments

Comments
 (0)