Skip to content

NexaFlow v3.63.0

Choose a tag to compare

@github-actions github-actions released this 09 Sep 10:44
· 1272 commits to main since this release

Added

  • App picker (Android): explicit search scope chips — by app name or by package name — with package subtitles shown while searching, plus a "Recently used in tasks" section listing packages referenced by other saved tasks so cross-task reuse needs no re-searching.
  • Bluetooth device and calendar pickers (Android): the same explicit OK/Cancel confirmation bar as the app picker. Tapping now only marks a selection (pre-marked when reopening); OK applies it, Cancel discards and closes without changing anything.
  • Manual run mismatch dialog (Android): Run now first asks the admission gate. When the task's triggers or constraints do not match, a typed dialog names exactly which trigger or constraint failed (e.g. "Trigger not met: DARK_MODE ON") and offers three honest paths: run the configured end behavior, cancel, or force.
  • Force run (Android): an explicit user override of the manual admission gate behind its own confirmation dialog. The bypass is durably logged in history with a "Force run;" prefix so forced executions are always distinguishable from trigger-driven runs. Available from the dashboard, task details, and deep-link paths.
  • Configuration problems screen (Android): a new diagnostics destination (Settings → Automation) listing tasks whose actions failed at runtime because of invalid configuration values, grouped per task with the failing action messages and a direct jump into the task editor — silent engine fallbacks become visible.
  • Blocked calls screen (Android): a BlackList-style call log fed by the engine's execution log. Call screening now writes a durable "Call blocked" record per verdict, and the screen offers per-rule (per-task) filter chips, entries with masked numbers, and timestamps.
  • Connectivity trigger migration (Android): a dashboard banner appears when saved tasks still use the legacy combined connection trigger; one tap converts each to the dedicated Wi-Fi / mobile data triggers preserving network selection and state. Non-splittable selections (hotspot, ethernet, VPN) are left untouched.
  • Clamp feedback in editors (Android): bounded numeric fields (reminder/alarm hour and minute, wait duration) now show inline "value must be between …" feedback when an entry hits its clamp limit instead of silently truncating.

Changed

  • Localization (Android): 104 previously English-fallback strings (Evolver editor, map picker, HTTP request editor, wait durations, ROM-setting trigger, end-behavior hints) translated into all 10 non-English locales. Remaining identical-across-locales strings are technical literals (NFC, USB, VPN, JSON syntax) by design. Turkish apostrophe escaping fixed so all locales compile.

Fixed

  • App picker (Android): the OK/Cancel confirmation bar is now always visible when one or more apps are selected. The app list was measured as an unbounded sibling of the confirm bar, so with a full launcher list the bar was laid out off the bottom of the sheet and never appeared on real devices; the list is now the single weighted child of the picker sheet, pinning the live selection preview and OK/Cancel bar on screen at every list size.

Tests

  • New Robolectric suite covering the strict manual admission policy end to end: dashboard Run now rejection, typed mismatch reasons, admissible-task pass-through, force-run logging, and the deep-link policy contract through the real engine and its durable ledger.

Quality evidence

Every release candidate passes the complete CI gate before publication:

  • Android Lint (zero-tolerance: UnusedResources, MissingTranslation, ExtraTranslation,
    UnusedIds, CheckResult, HardcodedText, TypographyDashes) and Detekt static analysis.
  • Catalog parity gates: every TriggerType and ActionType enum value must exist
    exactly once in the builder picker (restricted entries are pinned explicitly).
  • Full unit-test suite, including Room migration, scheduler, lifecycle, and recovery
    regression coverage.
  • Release build with R8 full shrinking, APK signature verification (v2/v3 schemes and
    certificate-fingerprint match against the production keystore), 16 KB page-size
    alignment check, zipalign verification, bundletool AAB validation, and Gradle
    dependency verification (SHA-256 checksums for every artifact).
  • Tag hygiene: the tag must match the newest CHANGELOG.md entry, so the notes below
    are the actual, reviewed change record for this release.

Install

  • Download NexaFlow-<version>.apk from the assets below and install it.
  • Updates install over the existing app without data loss when both builds share the
    same signing certificate (production releases do).
  • Pre-release tags (alpha / beta / rc) are marked as pre-releases automatically.

Documentation