Skip to content

Releases: uurf/ml_fleet_tools

v1.4.7 — local-liaison playbook set

Choose a tag to compare

@uurf uurf released this 24 Jun 03:36
a048d30

Bilingual EN/JA playbooks for the three trainable liaison scenarios: deploy an APK, morning status→dashboard, EOD shutdown/reboot. All open with a Red/Blue show-set gate, lead with the show SSID, keep on-screen text English. deploy: wildcarded APK path, real ~25min/no-progress note. Docs only — ./update.sh to get them.

v1.4.6 — registry sync, asset-map fixes, deploy playbook, BLUE 1.1

Choose a tag to compare

@uurf uurf released this 24 Jun 02:47
ba86ba1

ml_registry_sync.sh (canonical inventory bulk-build); asset_serial_list.csv corrections (120/151/317, matches registry); bilingual deploy_apk_playbook.html; KAGAMI_BLUE SHOW_EXPECTED_APK 0.1→1.1. Operators: ./update.sh when not mid-flash.

v1.4.5 — correct v1.4.3 (kiosk 1.0, RED app 1.1)

Choose a tag to compare

@uurf uurf released this 23 Jun 11:33
730b8c5

Fixes the erroneous v1.4.3 kiosk bump. Kiosks back to 1.0r/1.0b; RED show app SHOW_EXPECTED_APK 0.1→1.1 (no show suffix). BLUE app unchanged (0.1).

v1.4.4 — OS allow-list (1.12.1 accepted)

Choose a tag to compare

@uurf uurf released this 23 Jun 11:04
4f8ccf6

1.12.1 is expected drift (revives input-dead 1.4.1 devices). SHOW_EXPECTED_OS now a space-separated allow-list ("1.4.1 1.12.1"), honored by ml_status + dashboard. Open: confirm ADB parity on 1.12.1 via ml_provision.sh --check when network's back.

v1.4.3 — registry wiring + kiosk 1.1

Choose a tag to compare

@uurf uurf released this 23 Jun 10:34
6fa4b36

Fleet deadlocked (servers out / APs rigging) — safe merge window.

  • v1.4.2: ml_provision upserts serial→show to the canonical registry at provision_complete (validated live; warns on failure, doesn't abort).
  • v1.4.3: SHOW_KIOSK_VERSION 1.0→1.1 (red 1.1r / blue 1.1b). Drop kiosk-…-v1.1{b,r}.apk in builds/. Devices on 1.0 flag as drift until redeployed.

Operators: ./update.sh when not mid-flash.

v1.4.1 — fleet-scale reliability + SHOW_SUBNET (+ staged migrate/registry)

Choose a tag to compare

@uurf uurf released this 22 Jun 09:28
00c6515

Main caught up to dev. This is the batch that made fleet collection/status/shutdown reliable at scale (validated live today: red 48/48, blue 70/70 clean, shutdown one-pass).

Live-validated

  • ml_status fleet-scale fix — builds its work list from the device file (no false-OFFLINE), parallel probe+connect, low per-device parallelism (ML_STATUS_PARALLEL, default 8), surfaces unreadable devices as ERROR + a post-collection sweep so Total always reconciles.
  • stdin-eat fix — backgrounded adb shell was consuming the loop's device list, so only ~MAX_PARALLEL devices survived a sweep. Fixed across ml_status + ml_deploy (run_parallel/shutdown/push).
  • SHOW_SUBNET (per-show; both shows 172.16.40.0/22) + fixed detect_subnet (no longer caps at /24) → no under-scan.
  • ml_scan/ml_status reset the adb server at start (ML_NO_KILLSERVER=1 to skip) → no "unknown"/contention wall.

Staged — present but NOT yet live-validated (do not use for real ops until one supervised test)

  • ml_show_migrate.sh — RED↔BLUE single-device migration (USB; deploy→confirm→provision→inventory-move; --dry-run).
  • apps_script/registry.gs — device→show membership web app (one row per serial; unwired reference — deploy when ready).
  • Per-show inventory foundation (SHOW_INVENTORY_FILE → inventory/<show>.csv).

Operators: ./update.sh when not mid-flash. Known deferred: ml_deploy locate is silent on provisioned devices (notification sound disabled by provisioning).

v1.3.1 — ml_deploy locate (beep a device to find it)

Choose a tag to compare

@uurf uurf released this 20 Jun 09:10
b2a0586

Added

  • ml_deploy.sh locate <ip> — beeps a device repeatedly (6× default; LOCATE_BEEPS=N) so you can find it physically, without powering it off/rebooting. Uses cmd notification post (the only adb-shell sound path on the locked ML2 user build). Names the device# from the show inventory; refuses an unauthed device (for those, shut down the others and find the one still on).

Operators: ./update.sh (when not mid-flash).

v1.3.0 — show config finalized + per-show inventory + status table fix

Choose a tag to compare

@uurf uurf released this 20 Jun 08:10
53022c6

Config (confirmed packages/versions)

  • RED com.tindrum.kagami.red, BLUE com.tindrum.kagami.blue; SHOW_EXPECTED_APK=0.1 both; kiosk 1.0r/1.0b pinned (supervisor bumps as builds iterate).
  • SHOW_REMOVE_PACKAGES = other show's app + obsolete set (kagamu, anark, medusa, thelife); exact ids replace the old fuzzy name-matching.

Fixed

  • ml_status table no longer smears when a cell fails (ANSI width miscount). Battery tidied to 95%.

Added

  • Per-show inventory: SHOW_INVENTORY_FILE → inventory/$SHOW.csv; build_canonical_map.py writes per-show inventory files from scans.

Operators: ./update.sh (when not mid-flash).

v1.2.8 — reliable shutdown + ops/inventory hardening

Choose a tag to compare

@uurf uurf released this 19 Jun 13:43
279519b

Daily-ops reliability batch.

Fixed

  • shutdown now verifies + retries: probe 5555 → connect → power off → re-probe → retry stragglers (max 4 passes) → report any still up. One command, fleet actually down. Honors -d <ip>.
  • connect probes ports in parallel first and skips powered-off devices in ~2s (was hanging ~60s each → ~an hour with many off).
  • run_parallel prints + counts every device (jobs finishing during throttling were counted silently; totals now reconcile). Benefits deploy/deploy-all.
  • ml_os_flash device selection is clutter-proof: ignores WiFi adb (ip:5555), honors ANDROID_SERIAL, per-serial auth — a busy adb devices can't block or mis-target a flash.

Tooling

  • utilities/build_canonical_map.py — join fleet scans → canonical serial→device# + reconciliation buckets.
  • apps_script/reconcile_tracking.gs — durable Red↔Blue tracking-sheet maintenance.

Operators: ./update.sh (when not mid-flash).

v1.2.6 — per-show kiosk suffix check

Choose a tag to compare

@uurf uurf released this 18 Jun 02:43
9fa1a68

Kiosk is one shared package (com.tindrum.kiosk) built per show as 1.Xr (RED) / 1.Xb (BLUE) — suffix = show, X = build.

Added

  • SHOW_KIOSK_SUFFIX (r/b). ml_status.sh always enforces the device kiosk versionName ends with this show's suffix → flags a wrong-show kiosk (e.g. BLUE kiosk on a RED device) as WRONG-SHOW, independent of the exact-version check. Dashboard + --json (kiosk.expected_suffix) are suffix-aware.

Changed

  • SHOW_KIOSK_VERSION is now drift-only and blanked during build churn so the dashboard doesn't false-flag every incrementing build. Pin it once builds stabilize; the wrong-show check works regardless.

Developer note

Kiosk versionName must carry the suffix and increment (1.0r → 1.1r → …, 1.0b → 1.1b → …); keep versionCode incrementing too.

Operators: ./update.sh when not mid-flash.