Whitelist RunnerUp day and night, so it can always sync
Some checks are pending
Pre-commit checks / pre-commit (push) Waiting to run
Shell tests / shell-tests (push) Waiting to run
Shell tests / arch-tests (push) Waiting to run

RunnerUp needs to stay enabled after a run to export the TCX file
screen-locker verifies against; being disabled by focus mode at home
silently blocked that. It's straightforwardly beneficial, so treat it
like the other always-available apps: present in both WHITELIST and
NIGHT_WHITELIST.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013SH7XBkpEqQX4KghHdgx9T
This commit is contained in:
Krzysztof Rudnicki 2026-08-12 19:22:50 +02:00
parent 2d4d2a2eb2
commit a97ad66e1f
3 changed files with 47 additions and 0 deletions

View File

@ -0,0 +1,37 @@
{
"intent": "Whitelist RunnerUp so it stays enabled everywhere (home, away, curfew), since being disabled at home was blocking its TCX auto-export, which screen-locker's workout verification depends on.",
"scope": [
"phone_focus_mode/config.sh",
"focus_owner/assets/policy.json",
"Non-goal: root-DB fallback verification, or changing verification thresholds -- those live in screen-locker, not this repo"
],
"changes": [
"Added org.runnerup and org.runnerup.free to both WHITELIST (day) and NIGHT_WHITELIST (curfew) in config.sh -- both lists are required because model.py enforces night_allowed_packages as a subset of allowed_packages.",
"Regenerated focus_owner/assets/policy.json via `python3 -m python_pkg.focus_policy --config phone_focus_mode/config.sh --output focus_owner/assets/policy.json --redact-home`, keeping home coordinates redacted in the committed asset."
],
"verification": [
{
"command": "python3 -c \"import json; p=json.load(open('focus_owner/assets/policy.json')); print([x for x in p['allowed_packages'] if 'runnerup' in x], [x for x in p['night_allowed_packages'] if 'runnerup' in x], p['home'])\"",
"result": "pass",
"evidence": "org.runnerup and org.runnerup.free present in both lists; home lat/lon still null (redacted)."
},
{
"command": "flutter build apk --release (focus_owner, signed with the existing kuhy-release.jks) then adb install -r on the connected Pixel 6a (23181JEGR08034)",
"result": "pass",
"evidence": "Build succeeded; install succeeded (release signature matched the already-installed app, so no uninstall was needed)."
},
{
"command": "adb shell pm list packages -d | grep -i runnerup",
"result": "pass",
"evidence": "Empty output -- RunnerUp (org.runnerup, the installed variant) is not disabled after reinstalling focus_owner with the updated policy."
}
],
"risks": [
"Curfew-specific enforcement was not directly observed live (would require waiting for 23:00 or forcing a curfew-state transition on the live device-owner policy, which was avoided to not disrupt the running phone). Confidence rests on the policy.json content itself (RunnerUp present in night_allowed_packages) plus the day-state confirmation, not an on-device curfew trigger.",
"org.runnerup.free is not installed on this phone (only org.runnerup is); the .free entry is harmless but unverified since there's nothing to test it against."
],
"rollback": [
"Remove org.runnerup / org.runnerup.free from both WHITELIST and NIGHT_WHITELIST in config.sh, regenerate policy.json with the same --redact-home flag, rebuild focus_owner --release, adb install -r.",
"After rollback, confirm via `adb shell pm list packages -d | grep -i runnerup` that focus mode can disable it again as expected (a positive result there is a no-op-check only when curfew/away actually applies)."
]
}

View File

@ -23,6 +23,8 @@
"org.fossify.contacts",
"org.fossify.messages",
"org.fossify.phone",
"org.runnerup",
"org.runnerup.free",
"pl.infakt.infakt",
"pl.mbank",
"pl.nask.mobywatel"
@ -114,6 +116,8 @@
"org.fossify.contacts",
"org.fossify.messages",
"org.fossify.phone",
"org.runnerup",
"org.runnerup.free",
"pl.infakt.infakt",
"pl.mbank",
"pl.nask.mobywatel"

View File

@ -385,6 +385,10 @@ com.sosauce.cutecalc
com.ichi2.anki
com.metrolist.music
eu.kanade.tachiyomi.sy
# --- Workout tracking (always beneficial; must stay enabled to export runs) ---
org.runnerup
org.runnerup.free
"
# ============================================================
@ -417,6 +421,8 @@ pl.nask.mobywatel
com.kunzisoft.keepass.libre
com.kuhy.wake_alarm_sync
com.google.android.deskclock
org.runnerup
org.runnerup.free
"
# ============================================================