Skip to content

NexaFlow v3.82.0

Choose a tag to compare

@github-actions github-actions released this 21 Sep 13:20
· 734 commits to main since this release

Fixed

  • Wear OS sync no longer stays on "Connecting". Two root causes closed:
    the phone now declares a Data Layer capability (nexaflow.sync) and
    re-pushes the automation snapshot whenever a wearable node connects
    (previously a single fire-and-forget DataItem push at process start was
    silently lost if the watch was not reachable at that moment); and the watch
    now actively requests a sync via the MessageClient pull-request protocol
    when the app is opened or resumed, instead of waiting for a push that may
    never come. Together the watch recovers in every order of events — watch
    opens first, phone restarts while watch is away, or a transient GMS failure.

Added

  • ALL/ANY trigger matching (community request). Automations with multiple
    triggers previously always fired when any trigger fired (implicit OR).
    A new per-automation triggerMatch policy — exposed in the builder as a
    selector above the trigger list — lets users require ALL conditions to
    hold simultaneously
    : e.g. enable DND only when charging AND between
    22:00–07:00
    . In ALL mode the engine verifies the remaining triggers' live
    state (via TriggerStateEvaluator) after the initiating trigger fires;
    event-only trigger types (notification, screen-off, package install/uninstall,
    boot, …) cannot be confirmed after the fact and therefore disqualify ALL
    matching for that automation, falling back to documented OR semantics.
    Serialized as an optional field — existing automations and backups keep
    their historical ANY behavior unchanged.

Quality evidence

The tag workflow gates publication on the following automated checks. Consult the exact tag run and validation record for results; these checks do not establish physical-device coverage:

  • 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.
  • Android updates require a compatible version code and the same signing certificate.
    Back up important tasks before upgrading.
  • Pre-release tags (alpha / beta / rc) are marked as pre-releases automatically.

Documentation