{
  "schema_version": 1,
  "order": "C0067",
  "kind": "VOWTASK_V1_RELEASE_MANIFEST",
  "product": "VowTask",
  "product_version": "0.1.0",
  "channel": "v1-owner-handover",
  "environment": "pre-store owner release",
  "source_sha": "a87d6c2786501225d1ab913eec4aa0cbb0ccaf14",
  "built_at_utc": "2026-10-25T10:56:29.016Z",
  "builder": {
    "runner_name": "GitHub Actions 1000025178",
    "github_run_id": "40186787976",
    "github_run_attempt": "1"
  },
  "api_origin_declared": "https://api.vowtask.com",
  "store_submission": false,
  "live_billing": false,
  "pwa": {
    "installable": true,
    "install_from": "https://app.vowtask.com/"
  },
  "apple": {
    "iphone_ipad_native": "DEFERRED_PHASE_TWO_NOT_PACKAGED",
    "apple_watch": {
      "status": "DEFERRED_NEXT_RELEASE_NOT_PACKAGED",
      "archive_sha": "c80c73cdd2b33538c531c7400e2c1a74b3d34041"
    }
  },
  "signing": {
    "public_certificate_sha256": "ff15a14c0bcdc6455ab9b5fbe55ef189b52bf6507b04de66d15e5f6a62ba0bb7",
    "same_identity_for_both_packages": false,
    "public_certificates_sha256": {
      "android-phone-apk": "ff15a14c0bcdc6455ab9b5fbe55ef189b52bf6507b04de66d15e5f6a62ba0bb7",
      "wear-os-apk": "d49f6cd28dd3fb24ba09346f4613d1506f18cf840ec86f030bd12b09aacf735d"
    },
    "custody": "Existing separate retained signing identities; no private key is read by this workflow."
  },
  "artifacts": [
    {
      "id": "android-phone-apk",
      "platform": "Android phone and tablet",
      "filename": "vowtask-0.1.0-android-phone.apk",
      "url": "/releases/vowtask-0.1.0-android-phone.apk",
      "content_type": "application/vnd.android.package-archive",
      "byte_size": 68427488,
      "sha256": "83ad8db7cc3aa5d0b54316c8899158df53adc74d7fa9fde31778f2897f455f78",
      "package_id": "app.vowtask.mobile",
      "application_label": "VowTask",
      "version_name": "0.1.0",
      "version_code": 6,
      "min_sdk": 24,
      "target_sdk": 35,
      "native_abis": [
        "arm64-v8a",
        "armeabi-v7a",
        "x86",
        "x86_64"
      ],
      "signing_certificate_sha256": "ff15a14c0bcdc6455ab9b5fbe55ef189b52bf6507b04de66d15e5f6a62ba0bb7",
      "apk_signature_schemes": {
        "v1": false,
        "v2": true,
        "v3": false,
        "v4": false
      },
      "signer_count": 1,
      "certificate": {
        "owner_dn": null,
        "signature_algorithm": null,
        "public_key_algorithm": null,
        "valid_from": null,
        "valid_until": null
      },
      "installable": true,
      "signed": true,
      "release_signed": true,
      "supported_devices": "Android 7.0 (API 24) or newer phones and tablets.",
      "install_steps": [
        "Download this APK on your Android phone or tablet.",
        "Allow this browser to install the downloaded app when Android asks, then open VowTask.",
        "Sign in as a parent, or enroll a child device with a one-time code created by the parent."
      ],
      "native_source_sha": "70a0cd48847cca4f6bff73ab14a0070c65747049",
      "device_installations": [
        {
          "schema_version": 1,
          "order": "C0077",
          "lane": "android_phone_tablet",
          "target": "phone_api35",
          "source_sha": "70a0cd48847cca4f6bff73ab14a0070c65747049",
          "package": "app.vowtask.mobile",
          "version_name": "0.1.0",
          "file_sha256": "83ad8db7cc3aa5d0b54316c8899158df53adc74d7fa9fde31778f2897f455f78",
          "file_size_bytes": 68427488,
          "version_code": 6,
          "min_sdk": 24,
          "target_sdk": 35,
          "native_abis": [
            "arm64-v8a",
            "armeabi-v7a",
            "x86",
            "x86_64"
          ],
          "certificate_sha256": "ff15a14c0bcdc6455ab9b5fbe55ef189b52bf6507b04de66d15e5f6a62ba0bb7",
          "expected_certificate_sha256": "ff15a14c0bcdc6455ab9b5fbe55ef189b52bf6507b04de66d15e5f6a62ba0bb7",
          "release_identity_ok": true,
          "form_factor_expected": "phone",
          "form_factor": "phone",
          "form_factor_reason": "narrower_than_sw600dp",
          "form_factor_ok": true,
          "smallest_width_dp": 411,
          "display": {
            "width_px": 1080,
            "height_px": 2400,
            "density_dpi": 420
          },
          "apksigner_verify_stdout": "Verifies\nVerified using v1 scheme (JAR signing): false\nVerified using v2 scheme (APK Signature Scheme v2): true\nVerified using v3 scheme (APK Signature Scheme v3): false\nVerified using v3.1 scheme (APK Signature Scheme v3.1): false\nVerified using v4 scheme (APK Signature Scheme v4): false\nVerified for SourceStamp: false\nNumber of signers: 1\nSigner #1 certificate DN: CN=VowTask Release, O=VowTask, C=US\nSigner #1 certificate SHA-256 digest: ff15a14c0bcdc6455ab9b5fbe55ef189b52bf6507b04de66d15e5f6a62ba0bb7\nSigner #1 certificate SHA-1 digest: 6717e1adb1042edfb3b30c322b7c2ddef2b532f5\nSigner #1 certificate MD5 digest: 275384cdc53146cd57d2a63259de04c0\nSigner #1 key algorithm: RSA\nSigner #1 key size (bits): 4096\nSigner #1 public key SHA-256 digest: aa30406c832606d75f75b8bd06aca31ac3bb904a9ce30133485e203445906c57\nSigner #1 public key SHA-1 digest: 898d59c8f472b92b27d73409238acac318182fc4\nSigner #1 public key MD5 digest: 5c42a768ab0e81d89aae4dfc164eecfa\n",
          "installed": true,
          "launched": true,
          "failure_reason": null,
          "device": {
            "ro.build.version.release": "15",
            "ro.build.version.sdk": "35",
            "ro.product.cpu.abi": "x86_64",
            "ro.build.characteristics": "emulator",
            "ro.product.model": "sdk_gphone64_x86_64",
            "ro.kernel.qemu": "1"
          },
          "device_class_required": "handheld",
          "device_class": "handheld",
          "device_class_reason": null,
          "device_class_ok": true,
          "device_feature_watch": false,
          "device_characteristics": "emulator",
          "serial": "emulator-5554",
          "installed_version_name": "0.1.0",
          "activity_confirmed": true,
          "activity_resumed": true,
          "process_alive": true,
          "functionally_launched": true,
          "functional_launch_reason": "app.vowtask.mobile drew home-title; the activity manager reports reportedDrawn=true for app.vowtask.mobile; process 2865 was still alive after 15s; 2771 logcat lines were read and none is a fatal exception or ANR in app.vowtask.mobile",
          "functional_launch_failed": null,
          "functional_launch_readings": {
            "marker": "drawn",
            "first_frame": "drawn",
            "survival": "survived",
            "fatal_evidence": "clean"
          },
          "logcat_cleared_before_launch": true,
          "launch_marker": "app.vowtask.mobile drew home-title",
          "launch_marker_drawn": "home-title",
          "launch_screen_state": {
            "appNodeCount": 27,
            "startupPending": false,
            "startupFailed": false,
            "systemUiVisible": false
          },
          "first_frame": "the activity manager reports reportedDrawn=true for app.vowtask.mobile",
          "process_survival": "process 2865 was still alive after 15s",
          "fatal_evidence": "2771 logcat lines were read and none is a fatal exception or ANR in app.vowtask.mobile",
          "commands": [
            {
              "label": "pm_has_feature_watch",
              "value": false,
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "pm",
                "has-feature",
                "android.hardware.type.watch"
              ],
              "exit": 1,
              "output": "false\n"
            },
            {
              "label": "wm_size",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "wm",
                "size"
              ],
              "exit": 0,
              "output": "Physical size: 1080x2400\n"
            },
            {
              "label": "wm_density",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "wm",
                "density"
              ],
              "exit": 0,
              "output": "Physical density: 420\n"
            },
            {
              "label": "install",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "install",
                "-r",
                "-t",
                "/home/runner/work/_temp/finishline-launch/vowtask-0.1.0-android-phone.apk"
              ],
              "exit": 0,
              "output": "Performing Streamed Install\nSuccess\n"
            },
            {
              "label": "pm_list",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "pm",
                "list",
                "packages",
                "app.vowtask.mobile"
              ],
              "exit": 0,
              "output": "package:app.vowtask.mobile\n"
            },
            {
              "label": "pm_path",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "pm",
                "path",
                "app.vowtask.mobile"
              ],
              "exit": 0,
              "output": "package:/data/app/~~NPBH42ujGKm82YYA1Ie8ug==/app.vowtask.mobile-mRlMyTlvnPwHCo4m5ga7gA==/base.apk\n"
            },
            {
              "label": "dumpsys_package",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "dumpsys",
                "package",
                "app.vowtask.mobile"
              ],
              "exit": 0,
              "output": "Activity Resolver Table:\n  Schemes:\n      vowtask:\n        6da4b09 app.vowtask.mobile/.MainActivity filter 23a472f\n          Action: \"android.intent.action.VIEW\"\n          Category: \"android.intent.category.DEFAULT\"\n          Category: \"android.intent.category.BROWSABLE\"\n          Scheme: \"vowtask\"\n\n  Non-Data Actions:\n      android.intent.action.MAIN:\n        6da4b09 app.vowtask.mobile/.MainActivity filter fc4e10e\n          Action: \"android.intent.action.MAIN\"\n          Category: \"android.intent.category.LAUNCHER\"\n\nReceiver Resolver Table:\n  Non-Data Actions:\n      androidx.profileinstaller.action.SAVE_PROFILE:\n        872001a app.vowtask.mobile/androidx.profileinstaller.ProfileInstallReceiver filter 4635241\n          Action: \"androidx.profileinstaller.action.SAVE_PROFILE\"\n      expo.modules.taskManager.TaskBroadcastReceiver.INTENT_ACTION:\n        1dad13c app.vowtask.mobile/expo.modules.taskManager.TaskBroadcastReceiver filter 6538ec5\n          Action: \"expo.modules.taskManager.TaskBroadcastReceiver.INTENT_ACTION\"\n          Action: \"android.intent.action.BOOT_COMPLETED\"\n          Action: \"android.intent.action.MY_PACKAGE_REPLACED\"\n      androidx.profileinstaller.action.INSTALL_PROFILE:\n        872001a app.vowtask.mobile/androidx.profileinstaller.ProfileInstallReceiver filter 2ae274b\n          Action: \"androidx.profileinstaller.action.INSTALL_PROFILE\"\n      androidx.profileinstaller.action.SKIP_FILE:\n        872001a app.vowtask.mobile/androidx.profileinstaller.ProfileInstallReceiver filter 321c528\n          Action: \"androidx.profileinstaller.action.SKIP_FILE\"\n      androidx.profileinstaller.action.BENCHMARK_OPERATION:\n        872001a app.vowtask.mobile/androidx.profileinstaller.ProfileInstallReceiver filter a003e6\n          Action: \"androidx.profileinstaller.action.BENCHMARK_OPERATION\"\n      android.intent.action.BOOT_COMPLETED:\n        1dad13c app.vowtask.mobile/expo.modules.taskManager.TaskBroadcastReceiver filter 6538ec5\n          Action: \"expo.modules.taskManager.TaskBroadcastReceiver.INTENT_ACTION\"\n          Action: \"android.intent.action.BOOT_COMPLETED\"\n          Action: \"android.intent.action.MY_PACKAGE_REPLACED\"\n      android.intent.action.MY_PACKAGE_REPLACED:\n        1dad13c app.vowtask.mobile/expo.modules.taskManager.TaskBroadcastReceiver filter 6538ec5\n          Action: \"expo.modules.taskManager.TaskBroadcastReceiver.INTENT_ACTION\"\n          Action: \"android.intent.action.BOOT_COMPLETED\"\n          Action: \"android.intent.action.MY_PACKAGE_REPLACED\"\n\nService Resolver Table:\n  Non-Data Actions:\n      com.google.android.gms.metadata.MODULE_DEPENDENCIES:\n        f35ed27 app.vowtask.mobile/com.google.android.gms.metadata.ModuleDependencies filter b620bd4\n          Action: \"com.google.android.gms.metadata.MODULE_DEPENDENCIES\"\n\nDomain verification status:\n\nPermissions:\n  Permission [app.vowtask.mobile.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION] (1a544ed):\n    sourcePackage=app.vowtask.mobile\n    uid=10209 gids=[] type=0 prot=signature\n    perm=PermissionInfo{aacbf22 app.vowtask.mobile.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION}\n    flags=0x0\n"
            },
            {
              "label": "stay_awake",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "svc",
                "power",
                "stayon",
                "true"
              ],
              "exit": 0,
              "output": ""
            },
            {
              "label": "wake_screen",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "input",
                "keyevent",
                "KEYCODE_WAKEUP"
              ],
              "exit": 0,
              "output": ""
            },
            {
              "label": "logcat_clear",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "logcat",
                "-c"
              ],
              "exit": 0,
              "output": ""
            },
            {
              "label": "monkey_launch",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "monkey",
                "-p",
                "app.vowtask.mobile",
                "-c",
                "android.intent.category.LAUNCHER",
                "1"
              ],
              "exit": 0,
              "output": "  bash arg: -p\n  bash arg: app.vowtask.mobile\n  bash arg: -c\n  bash arg: android.intent.category.LAUNCHER\n  bash arg: 1\nEvents injected: 1\n## Network stats: elapsed time=631ms (0ms mobile, 0ms wifi, 631ms not connected)\nargs: [-p, app.vowtask.mobile, -c, android.intent.category.LAUNCHER, 1]\n arg: \"-p\"\n arg: \"app.vowtask.mobile\"\n arg: \"-c\"\n arg: \"android.intent.category.LAUNCHER\"\n arg: \"1\"\ndata=\"app.vowtask.mobile\"\ndata=\"android.intent.category.LAUNCHER\"\n"
            },
            {
              "label": "dumpsys_activity",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "dumpsys",
                "activity",
                "activities"
              ],
              "exit": 0,
              "output": "ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)\nDisplay #0 (activities from top to bottom):\n  * Task{fde6098 #8 type=standard A=10209:app.vowtask.mobile U=0 visible=true visibleRequested=true mode=fullscreen translucent=false sz=1}\n    mLastNonFullscreenBounds=Rect(276, 692 - 804, 1772)\n    isSleeping=false\n    topResumedActivity=ActivityRecord{e0633b9 u0 app.vowtask.mobile/.MainActivity t8}\n    * Hist  #0: ActivityRecord{e0633b9 u0 app.vowtask.mobile/.MainActivity t8}\n      packageName=app.vowtask.mobile processName=app.vowtask.mobile\n      launchedFromUid=2000 launchedFromPackage=com.android.shell launchedFromFeature=null userId=0\n      app=ProcessRecord{d29036e 2865:app.vowtask.mobile/u0a209}\n      Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=app.vowtask.mobile/.MainActivity }\n      rootOfTask=true task=Task{fde6098 #8 type=standard A=10209:app.vowtask.mobile}\n      taskAffinity=10209:app.vowtask.mobile\n      mActivityComponent=app.vowtask.mobile/.MainActivity\n      baseDir=/data/app/~~NPBH42ujGKm82YYA1Ie8ug==/app.vowtask.mobile-mRlMyTlvnPwHCo4m5ga7gA==/base.apk\n      dataDir=/data/user/0/app.vowtask.mobile\n      stateNotNeeded=false componentSpecified=true mActivityType=standard\n      compat={420dpi} theme=0x7f13021b\n      mLastReportedConfigurations:\n        mGlobalConfig={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h842dp 420dpi nrml long port finger qwerty/v/v -nav/h winConfig={ mBounds=Rect(0, 0 - 1080, 2400) mAppBounds=Rect(0, 128 - 1080, 2337) mMaxBounds=Rect(0, 0 - 1080, 2400) mDisplayRotation=ROTATION_0 mWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} as.3 s.71 fontWeightAdjustment=0}\n        mOverrideConfig={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h842dp 420dpi nrml long port finger qwerty/v/v -nav/h winConfig={ mBounds=Rect(0, 0 - 1080, 2400) mAppBounds=Rect(0, 128 - 1080, 2337) mMaxBounds=Rect(0, 0 - 1080, 2400) mDisplayRotation=ROTATION_0 mWindowingMode=fullscreen mActivityType=standard mAlwaysOnTop=undefined mRotation=ROTATION_0} as.3 s.3 fontWeightAdjustment=0}\n      mLastReportedActivityWindowInfo=ActivityWindowInfo{isEmbedded=false, taskBounds=Rect(0, 0 - 1080, 2400), taskFragmentBounds=Rect(0, 0 - 1080, 2400)}\n      CurrentConfiguration={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h842dp 420dpi nrml long port finger qwerty/v/v -nav/h winConfig={ mBounds=Rect(0, 0 - 1080, 2400) mAppBounds=Rect(0, 128 - 1080, 2337) mMaxBounds=Rect(0, 0 - 1080, 2400) mDisplayRotation=ROTATION_0 mWindowingMode=fullscreen mActivityType=standard mAlwaysOnTop=undefined mRotation=ROTATION_0} as.3 s.3 fontWeightAdjustment=0}\n      RequestedOverrideConfiguration={0.0 ?mcc0mnc ?localeList ?layoutDir ?swdp ?wdp ?hdp ?density ?lsize ?long ?ldr ?wideColorGamut ?orien ?uimode ?night ?touch ?keyb/?/? ?nav/? winConfig={ mBounds=Rect(0, 0 - 0, 0) mAppBounds=null mMaxBounds=Rect(0, 0 - 0, 0) mDisplayRotation=undefined mWindowingMode=undefined mActivityType=standard mAlwaysOnTop=undefined mRotation=undefined} ?fontWeightAdjustment}\n      ResolvedOverrideConfiguration={0.0 ?mcc0mnc ?localeList ?layoutDir sw411dp w411dp h842dp ?density ?lsize ?long ?ldr ?wideColorGamut port ?uimode ?night ?touch ?keyb/?/? ?nav/? winConfig={ mBounds=Rect(0, 0 - 0, 0) mAppBounds=Rect(0, 128 - 1080, 2337) mMaxBounds=Rect(0, 0 - 0, 0) mDisplayRotation=undefined mWindowingMode=undefined mActivityType=undefined mAlwaysOnTop=undefined mRotation=undefined} s.3 ?fontWeightAdjustment}\n      taskDescription: label=\"null\" icon=null iconResource=/0 iconFilename=null primaryColor=ff023c69\n        backgroundColor=fffafafa statusBarColor=ffffffff navigationBarColor=808080\n       backgroundColorFloating=ffffffff\n      launchFailed=false launchCount=1 lastLaunchTime=-2s290ms\n      mHaveState=false mIcicle=null\n      state=RESUMED delayedResume=false finishing=false\n      keysPaused=false inHistory=true idle=false\n      occludesParent=true noDisplay=false immersive=false launchMode=2\n      mActivityType=standard\n      mImeInsetsFrozenUntilStartInput=false\n      windows=[Window{231638b u0 app.vowtask.mobile/app.vowtask.mobile.MainActivity}, Window{d17b134 u0 Splash Screen app.vowtask.mobile}]\n      windowType=2\n      mOccludesParent=true\n      overrideOrientation=SCREEN_ORIENTATION_UNSPECIFIED\n      requestedOrientation=SCREEN_ORIENTATION_UNSPECIFIED\n      mVisibleRequested=true mVisible=true mClientVisible=true reportedDrawn=false reportedVisible=false\n      mNumInterestingWindows=1 mNumDrawnWindows=0 allDrawn=false lastAllDrawn=false)\n      startingData=SplashScreenStartingData{9737650 waitForSyncTransactionCommit=false removeAfterTransaction= 0} firstWindowDrawn=false mIsExiting=false\n      startingWindow=Window{d17b134 u0 Splash Screen app.vowtask.mobile} startingSurface=com.android.server.wm.StartingSurfaceController$StartingSurface@615f049 startingDisplayed=true startingMoved=false mVisibleSetFromTransferredStartingWindow=false\n      resizeMode=RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION\n      mLastReportedMultiWindowMode=false mLastReportedPictureInPictureMode=false\n      supportsSizeChanges=SIZE_CHANGES_UNSUPPORTED_METADATA\n      configChanges=0x7b3\n      neverSandboxDisplayApis=false\n      alwaysSandboxDisplayApis=false\n      areBoundsLetterboxed=false\n      mCameraCompatControlState=hidden\n      mCameraCompatControlEnabled=true\n\n  * Task{734a3ba #1 type=home U=0 visible=false visibleRequested=false mode=fullscreen translucent=true sz=1}\n    * Task{ba50f53 #7 type=home I=com.google.android.apps.nexuslauncher/.NexusLauncherActivity U=0 rootTaskId=1 visible=false visibleRequested=false mode=fullscreen translucent=true sz=2}\n      mLastPausedActivity: ActivityRecord{bd84551 u0 com.google.android.apps.nexuslauncher/.NexusLauncherActivity t7}\n      mLastNonFullscreenBounds=Rect(291, 691 - 790, 1771)\n      isSleeping=false\n      * Hist  #1: ActivityRecord{bd84551 u0 com.google.android.apps.nexuslauncher/.NexusLauncherActivity t7}"
            },
            {
              "label": "pidof",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "pidof",
                "app.vowtask.mobile"
              ],
              "exit": 0,
              "output": "2865\n"
            },
            {
              "label": "uiautomator_dump",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "uiautomator",
                "dump",
                "/sdcard/vowtask-launch.xml"
              ],
              "exit": 0,
              "output": "UI hierchary dumped to: /sdcard/vowtask-launch.xml\n"
            },
            {
              "label": "pidof_after_interval",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "pidof",
                "app.vowtask.mobile"
              ],
              "exit": 0,
              "output": "2865\n"
            },
            {
              "label": "logcat_launch_window",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "logcat",
                "-d",
                "-t",
                "2000",
                "-v",
                "brief"
              ],
              "exit": 0,
              "output": "2771 logcat lines were read and none is a fatal exception or ANR in app.vowtask.mobile"
            }
          ],
          "recorded_at_utc": "2026-10-24T12:11:42.890Z",
          "installed_byte_readback": {
            "source_sha": "70a0cd48847cca4f6bff73ab14a0070c65747049",
            "package_id": "app.vowtask.mobile",
            "apk_sha256": "83ad8db7cc3aa5d0b54316c8899158df53adc74d7fa9fde31778f2897f455f78",
            "installed_sha256": "83ad8db7cc3aa5d0b54316c8899158df53adc74d7fa9fde31778f2897f455f78",
            "installed_bytes": 68427488,
            "production_writes": false,
            "emulator": true
          }
        }
      ],
      "install_launch_evidence": {
        "serial": "emulator-5554",
        "device": {
          "ro.build.version.release": "15",
          "ro.build.version.sdk": "35",
          "ro.product.cpu.abi": "x86_64",
          "ro.build.characteristics": "emulator",
          "ro.product.model": "sdk_gphone64_x86_64",
          "ro.kernel.qemu": "1"
        },
        "installed_version_name": "0.1.0",
        "activity_confirmed": true,
        "process_alive": true,
        "recorded_at_utc": "2026-10-24T12:11:42.890Z"
      }
    },
    {
      "id": "wear-os-apk",
      "platform": "Wear OS / Samsung Galaxy Watch",
      "filename": "vowtask-0.1.0-wear.apk",
      "url": "/releases/vowtask-0.1.0-wear.apk",
      "content_type": "application/vnd.android.package-archive",
      "byte_size": 28083857,
      "sha256": "4a4cbf9b3bf39bae1988cd953bf1787378c92b6d8312586c023ab364db59db53",
      "package_id": "app.vowtask.wear",
      "application_label": "VowTask",
      "version_name": "0.1.0",
      "version_code": 4,
      "min_sdk": 30,
      "target_sdk": 35,
      "native_abis": [
        "arm64-v8a",
        "armeabi-v7a",
        "x86",
        "x86_64"
      ],
      "signing_certificate_sha256": "d49f6cd28dd3fb24ba09346f4613d1506f18cf840ec86f030bd12b09aacf735d",
      "apk_signature_schemes": {
        "v1": false,
        "v2": true,
        "v3": false,
        "v4": false
      },
      "signer_count": 1,
      "certificate": {
        "owner_dn": null,
        "signature_algorithm": null,
        "public_key_algorithm": null,
        "valid_from": null,
        "valid_until": null
      },
      "installable": true,
      "signed": true,
      "release_signed": true,
      "supported_devices": "Wear OS 3+ (API 30+), including compatible Samsung Galaxy Watch4 and newer watches; installation by ADB sideload.",
      "install_steps": [
        "Enable developer options and wireless debugging on the Wear OS watch.",
        "Connect ADB to the watch and install this Wear OS APK.",
        "Open VowTask and enter a one-time watch pairing code created in the parent app.",
        "For photo tasks, a parent supplies the photo from the phone; the watch receives the resulting status."
      ],
      "native_source_sha": "70a0cd48847cca4f6bff73ab14a0070c65747049",
      "device_installations": [
        {
          "schema_version": 1,
          "order": "C0077",
          "lane": "wear_os",
          "target": "wear_api34_large",
          "source_sha": "70a0cd48847cca4f6bff73ab14a0070c65747049",
          "package": "app.vowtask.wear",
          "version_name": "0.1.0",
          "file_sha256": "4a4cbf9b3bf39bae1988cd953bf1787378c92b6d8312586c023ab364db59db53",
          "file_size_bytes": 28083857,
          "version_code": 4,
          "min_sdk": 30,
          "target_sdk": 35,
          "native_abis": [
            "arm64-v8a",
            "armeabi-v7a",
            "x86",
            "x86_64"
          ],
          "certificate_sha256": "d49f6cd28dd3fb24ba09346f4613d1506f18cf840ec86f030bd12b09aacf735d",
          "expected_certificate_sha256": "d49f6cd28dd3fb24ba09346f4613d1506f18cf840ec86f030bd12b09aacf735d",
          "release_identity_ok": true,
          "form_factor_expected": "watch",
          "form_factor": "watch",
          "form_factor_reason": "characteristics_watch",
          "form_factor_ok": true,
          "smallest_width_dp": 227,
          "display": {
            "width_px": 454,
            "height_px": 454,
            "density_dpi": 320
          },
          "apksigner_verify_stdout": "Verifies\nVerified using v1 scheme (JAR signing): false\nVerified using v2 scheme (APK Signature Scheme v2): true\nVerified using v3 scheme (APK Signature Scheme v3): false\nVerified using v3.1 scheme (APK Signature Scheme v3.1): false\nVerified using v4 scheme (APK Signature Scheme v4): false\nVerified for SourceStamp: false\nNumber of signers: 1\nSigner #1 certificate DN: CN=VowTask Wear Release, O=VowTask, C=US\nSigner #1 certificate SHA-256 digest: d49f6cd28dd3fb24ba09346f4613d1506f18cf840ec86f030bd12b09aacf735d\nSigner #1 certificate SHA-1 digest: 96d64276fa47cc1b420c0dee2f68cf9147b88b5c\nSigner #1 certificate MD5 digest: cc15d58937c609990b67e45821cd3ccc\nSigner #1 key algorithm: RSA\nSigner #1 key size (bits): 4096\nSigner #1 public key SHA-256 digest: fa1701df02b64ffb7fc6fef639e243a12e72536eac3736eeb219530f75dd516f\nSigner #1 public key SHA-1 digest: 5ea9ebc592844b8bdcd6285a207b614e6cb03179\nSigner #1 public key MD5 digest: 206ed1793eb9eebbc74b00c8e9624d11\n",
          "installed": true,
          "launched": true,
          "failure_reason": null,
          "device": {
            "ro.build.version.release": "14",
            "ro.build.version.sdk": "34",
            "ro.product.cpu.abi": "x86_64",
            "ro.build.characteristics": "emulator,nosdcard,watch",
            "ro.product.model": "sdk_gwear_x86_64",
            "ro.kernel.qemu": "1"
          },
          "device_class_required": "watch",
          "device_class": "watch",
          "device_class_reason": null,
          "device_class_ok": true,
          "device_feature_watch": true,
          "device_characteristics": "emulator,nosdcard,watch",
          "serial": "emulator-5554",
          "installed_version_name": "0.1.0",
          "activity_confirmed": true,
          "activity_resumed": true,
          "process_alive": true,
          "functionally_launched": true,
          "functional_launch_reason": "app.vowtask.wear drew wear-pair-title; the activity manager reports reportedDrawn=true for app.vowtask.wear; process 2420 was still alive after 15s; 6595 logcat lines were read and none is a fatal exception or ANR in app.vowtask.wear",
          "functional_launch_failed": null,
          "functional_launch_readings": {
            "marker": "drawn",
            "first_frame": "drawn",
            "survival": "survived",
            "fatal_evidence": "clean"
          },
          "logcat_cleared_before_launch": true,
          "launch_marker": "app.vowtask.wear drew wear-pair-title",
          "launch_marker_drawn": "wear-pair-title",
          "launch_screen_state": {
            "appNodeCount": 14,
            "startupPending": false,
            "startupFailed": false,
            "systemUiVisible": false
          },
          "first_frame": "the activity manager reports reportedDrawn=true for app.vowtask.wear",
          "process_survival": "process 2420 was still alive after 15s",
          "fatal_evidence": "6595 logcat lines were read and none is a fatal exception or ANR in app.vowtask.wear",
          "commands": [
            {
              "label": "pm_has_feature_watch",
              "value": true,
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "pm",
                "has-feature",
                "android.hardware.type.watch"
              ],
              "exit": 0,
              "output": "true\n"
            },
            {
              "label": "wm_size",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "wm",
                "size"
              ],
              "exit": 0,
              "output": "Physical size: 454x454\n"
            },
            {
              "label": "wm_density",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "wm",
                "density"
              ],
              "exit": 0,
              "output": "Physical density: 320\n"
            },
            {
              "label": "install",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "install",
                "-r",
                "-t",
                "/home/runner/work/_temp/finishline-launch/vowtask-0.1.0-wear.apk"
              ],
              "exit": 0,
              "output": "Performing Streamed Install\nSuccess\n"
            },
            {
              "label": "pm_list",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "pm",
                "list",
                "packages",
                "app.vowtask.wear"
              ],
              "exit": 0,
              "output": "package:app.vowtask.wear\n"
            },
            {
              "label": "pm_path",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "pm",
                "path",
                "app.vowtask.wear"
              ],
              "exit": 0,
              "output": "package:/data/app/~~6JWtjpxgwBB-QBsQyGu1kw==/app.vowtask.wear-K-UatYgYTPqdwT1JPm3q4g==/base.apk\n"
            },
            {
              "label": "dumpsys_package",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "dumpsys",
                "package",
                "app.vowtask.wear"
              ],
              "exit": 0,
              "output": "Activity Resolver Table:\n  Non-Data Actions:\n      android.intent.action.MAIN:\n        debe618 app.vowtask.wear/.presentation.MainActivity filter c1c7871\n          Action: \"android.intent.action.MAIN\"\n          Category: \"android.intent.category.LAUNCHER\"\n\nReceiver Resolver Table:\n  Non-Data Actions:\n      android.intent.action.BATTERY_OKAY:\n        ec54bc4 app.vowtask.wear/androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryNotLowProxy filter 4af2aad\n          Action: \"android.intent.action.BATTERY_OKAY\"\n          Action: \"android.intent.action.BATTERY_LOW\"\n      android.intent.action.ACTION_POWER_DISCONNECTED:\n        d37e656 app.vowtask.wear/androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryChargingProxy filter 57f76d7\n          Action: \"android.intent.action.ACTION_POWER_DISCONNECTED\"\n          Action: \"android.intent.action.ACTION_POWER_CONNECTED\"\n      androidx.profileinstaller.action.SAVE_PROFILE:\n        3b10548 app.vowtask.wear/androidx.profileinstaller.ProfileInstallReceiver filter 735c3c7\n          Action: \"androidx.profileinstaller.action.SAVE_PROFILE\"\n      android.intent.action.DEVICE_STORAGE_LOW:\n        c6411e2 app.vowtask.wear/androidx.work.impl.background.systemalarm.ConstraintProxy$StorageNotLowProxy filter adaa973\n          Action: \"android.intent.action.DEVICE_STORAGE_LOW\"\n          Action: \"android.intent.action.DEVICE_STORAGE_OK\"\n      android.net.conn.CONNECTIVITY_CHANGE:\n        ad6030 app.vowtask.wear/androidx.work.impl.background.systemalarm.ConstraintProxy$NetworkStateProxy filter 240c4a9\n          Action: \"android.net.conn.CONNECTIVITY_CHANGE\"\n      android.intent.action.DEVICE_STORAGE_OK:\n        c6411e2 app.vowtask.wear/androidx.work.impl.background.systemalarm.ConstraintProxy$StorageNotLowProxy filter adaa973\n          Action: \"android.intent.action.DEVICE_STORAGE_LOW\"\n          Action: \"android.intent.action.DEVICE_STORAGE_OK\"\n      androidx.profileinstaller.action.INSTALL_PROFILE:\n        3b10548 app.vowtask.wear/androidx.profileinstaller.ProfileInstallReceiver filter fab5fe1\n          Action: \"androidx.profileinstaller.action.INSTALL_PROFILE\"\n      android.intent.action.BATTERY_LOW:\n        ec54bc4 app.vowtask.wear/androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryNotLowProxy filter 4af2aad\n          Action: \"android.intent.action.BATTERY_OKAY\"\n          Action: \"android.intent.action.BATTERY_LOW\"\n      android.intent.action.TIMEZONE_CHANGED:\n        5356a2e app.vowtask.wear/androidx.work.impl.background.systemalarm.RescheduleReceiver filter bac69cf\n          Action: \"android.intent.action.TIMEZONE_CHANGED\"\n          Action: \"android.intent.action.TIME_SET\"\n          Action: \"android.intent.action.BOOT_COMPLETED\"\n      android.intent.action.TIME_SET:\n        5356a2e app.vowtask.wear/androidx.work.impl.background.systemalarm.RescheduleReceiver filter bac69cf\n          Action: \"android.intent.action.TIMEZONE_CHANGED\"\n          Action: \"android.intent.action.TIME_SET\"\n          Action: \"android.intent.action.BOOT_COMPLETED\"\n      androidx.profileinstaller.action.SKIP_FILE:\n        3b10548 app.vowtask.wear/androidx.profileinstaller.ProfileInstallReceiver filter c349106\n          Action: \"androidx.profileinstaller.action.SKIP_FILE\"\n      androidx.profileinstaller.action.BENCHMARK_OPERATION:\n        3b10548 app.vowtask.wear/androidx.profileinstaller.ProfileInstallReceiver filter 6752df4\n          Action: \"androidx.profileinstaller.action.BENCHMARK_OPERATION\"\n      android.intent.action.BOOT_COMPLETED:\n        5356a2e app.vowtask.wear/androidx.work.impl.background.systemalarm.RescheduleReceiver filter bac69cf\n          Action: \"android.intent.action.TIMEZONE_CHANGED\"\n          Action: \"android.intent.action.TIME_SET\"\n          Action: \"android.intent.action.BOOT_COMPLETED\"\n      android.intent.action.ACTION_POWER_CONNECTED:"
            },
            {
              "label": "watch_emulator_unplug",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "dumpsys",
                "battery",
                "unplug"
              ],
              "exit": 0,
              "output": ""
            },
            {
              "label": "watch_emulator_battery",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "dumpsys",
                "battery"
              ],
              "exit": 0,
              "output": "Current Battery Service state:\n  (UPDATES STOPPED -- use 'reset' to restart)\n  AC powered: false\n  USB powered: false\n  Wireless powered: false\n  Dock powered: false\n  Max charging current: 5000000\n  Max charging voltage: 5000000\n  Charge counter: 10000\n  status: 2\n  health: 2\n  present: true\n  level: 100\n  scale: 100\n  voltage: 5000\n  temperature: 250\n  technology: Li-ion\n  Charging state: 0\n  Charging policy: 0\n"
            },
            {
              "label": "stay_awake",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "svc",
                "power",
                "stayon",
                "true"
              ],
              "exit": 0,
              "output": ""
            },
            {
              "label": "wake_screen",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "input",
                "keyevent",
                "KEYCODE_WAKEUP"
              ],
              "exit": 0,
              "output": ""
            },
            {
              "label": "logcat_clear",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "logcat",
                "-c"
              ],
              "exit": 0,
              "output": ""
            },
            {
              "label": "monkey_launch",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "monkey",
                "-p",
                "app.vowtask.wear",
                "-c",
                "android.intent.category.LAUNCHER",
                "1"
              ],
              "exit": 0,
              "output": "  bash arg: -p\n  bash arg: app.vowtask.wear\n  bash arg: -c\n  bash arg: android.intent.category.LAUNCHER\n  bash arg: 1\nEvents injected: 1\n## Network stats: elapsed time=280ms (0ms mobile, 0ms wifi, 280ms not connected)\nargs: [-p, app.vowtask.wear, -c, android.intent.category.LAUNCHER, 1]\n arg: \"-p\"\n arg: \"app.vowtask.wear\"\n arg: \"-c\"\n arg: \"android.intent.category.LAUNCHER\"\n arg: \"1\"\ndata=\"app.vowtask.wear\"\ndata=\"android.intent.category.LAUNCHER\"\n"
            },
            {
              "label": "dumpsys_activity",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "dumpsys",
                "activity",
                "activities"
              ],
              "exit": 0,
              "output": "ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)\nDisplay #0 (activities from top to bottom):\n  * Task{c635a0e #5 type=standard A=10115:app.vowtask.wear U=0 visible=true visibleRequested=true mode=fullscreen translucent=false sz=1}\n    mLastNonFullscreenBounds=Rect(54, 54 - 400, 400)\n    isSleeping=false\n    topResumedActivity=ActivityRecord{32772a4 u0 app.vowtask.wear/.presentation.MainActivity t5}\n    * Hist  #0: ActivityRecord{32772a4 u0 app.vowtask.wear/.presentation.MainActivity t5}\n      packageName=app.vowtask.wear processName=app.vowtask.wear\n      launchedFromUid=2000 launchedFromPackage=com.android.shell launchedFromFeature=null userId=0\n      app=ProcessRecord{2527c2b 2420:app.vowtask.wear/u0a115}\n      Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=app.vowtask.wear/.presentation.MainActivity }\n      rootOfTask=true task=Task{c635a0e #5 type=standard A=10115:app.vowtask.wear}\n      taskAffinity=10115:app.vowtask.wear\n      mActivityComponent=app.vowtask.wear/.presentation.MainActivity\n      baseDir=/data/app/~~6JWtjpxgwBB-QBsQyGu1kw==/app.vowtask.wear-K-UatYgYTPqdwT1JPm3q4g==/base.apk\n      dataDir=/data/user/0/app.vowtask.wear\n      stateNotNeeded=false componentSpecified=true mActivityType=standard\n      compat={320dpi always-compat} theme=0x1030128\n      mLastReportedConfigurations:\n        mGlobalConfig={1.0 310mcc260mnc [en_US] ldltr sw227dp w227dp h227dp 320dpi smll port watch finger qwerty/v/v -nav/h winConfig={ mBounds=Rect(0, 0 - 454, 454) mAppBounds=Rect(0, 0 - 454, 454) mMaxBounds=Rect(0, 0 - 454, 454) mDisplayRotation=ROTATION_0 mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.8 fontWeightAdjustment=0}\n        mOverrideConfig={1.0 310mcc260mnc [en_US] ldltr sw227dp w227dp h227dp 320dpi smll port watch finger qwerty/v/v -nav/h winConfig={ mBounds=Rect(0, 0 - 454, 454) mAppBounds=Rect(0, 0 - 454, 454) mMaxBounds=Rect(0, 0 - 454, 454) mDisplayRotation=ROTATION_0 mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=standard mAlwaysOnTop=undefined mRotation=ROTATION_0} s.1 fontWeightAdjustment=0}\n      CurrentConfiguration={1.0 310mcc260mnc [en_US] ldltr sw227dp w227dp h227dp 320dpi smll port watch finger qwerty/v/v -nav/h winConfig={ mBounds=Rect(0, 0 - 454, 454) mAppBounds=Rect(0, 0 - 454, 454) mMaxBounds=Rect(0, 0 - 454, 454) mDisplayRotation=ROTATION_0 mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=standard mAlwaysOnTop=undefined mRotation=ROTATION_0} s.1 fontWeightAdjustment=0}\n      RequestedOverrideConfiguration={0.0 ?mcc0mnc ?localeList ?layoutDir ?swdp ?wdp ?hdp ?density ?lsize ?long ?ldr ?wideColorGamut ?orien ?uimode ?night ?touch ?keyb/?/? ?nav/? winConfig={ mBounds=Rect(0, 0 - 0, 0) mAppBounds=null mMaxBounds=Rect(0, 0 - 0, 0) mDisplayRotation=undefined mWindowingMode=undefined mDisplayWindowingMode=undefined mActivityType=standard mAlwaysOnTop=undefined mRotation=undefined} ?fontWeightAdjustment}\n      ResolvedOverrideConfiguration={0.0 ?mcc0mnc ?localeList ?layoutDir ?swdp ?wdp ?hdp ?density ?lsize ?long ?ldr ?wideColorGamut ?orien ?uimode ?night ?touch ?keyb/?/? ?nav/? winConfig={ mBounds=Rect(0, 0 - 0, 0) mAppBounds=null mMaxBounds=Rect(0, 0 - 0, 0) mDisplayRotation=undefined mWindowingMode=undefined mDisplayWindowingMode=undefined mActivityType=undefined mAlwaysOnTop=undefined mRotation=undefined} s.1 ?fontWeightAdjustment}\n      taskDescription: label=\"null\" icon=null iconResource=/0 iconFilename=null primaryColor=ff747679\n        backgroundColor=ff000000 statusBarColor=ff747679 navigationBarColor=808080\n       backgroundColorFloating=ff003549\n      launchFailed=false launchCount=1 lastLaunchTime=-2s76ms\n      mHaveState=false mIcicle=null\n      state=RESUMED delayedResume=false finishing=false\n      keysPaused=false inHistory=true idle=true\n      occludesParent=true noDisplay=false immersive=false launchMode=0\n      mActivityType=standard\n      mImeInsetsFrozenUntilStartInput=false\n      windows=[Window{c86fb9d u0 app.vowtask.wear/app.vowtask.wear.presentation.MainActivity}, Window{b29982a u0 Splash Screen app.vowtask.wear}]\n      windowType=2\n      mOccludesParent=true\n      overrideOrientation=SCREEN_ORIENTATION_UNSPECIFIED\n      requestedOrientation=SCREEN_ORIENTATION_UNSPECIFIED\n      mVisibleRequested=true mVisible=true mClientVisible=true reportedDrawn=true reportedVisible=false\n      mNumInterestingWindows=1 mNumDrawnWindows=1 allDrawn=true lastAllDrawn=false)\n      startingData=null firstWindowDrawn=true mIsExiting=false\n      resizeMode=RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION\n      mLastReportedMultiWindowMode=false mLastReportedPictureInPictureMode=false\n      supportsSizeChanges=SIZE_CHANGES_UNSUPPORTED_METADATA\n      configChanges=0x3\n      neverSandboxDisplayApis=false\n      alwaysSandboxDisplayApis=false\n      areBoundsLetterboxed=false\n      mCameraCompatControlState=hidden\n      mCameraCompatControlEnabled=false\n\n  * Task{fd77474 #1 type=undefined U=0 visible=false visibleRequested=false mode=fullscreen translucent=true sz=1}\n    * Task{67a5cfc #4 type=undefined A=10067:com.google.android.wearable.sysui U=0 rootTaskId=1 visible=false visibleRequested=false mode=fullscreen translucent=true sz=1}\n      mLastPausedActivity: ActivityRecord{6b205b8 u0 com.google.android.wearable.sysui/.mainui.activity.SysUiActivity t4}\n      mLastNonFullscreenBounds=Rect(54, 54 - 400, 400)\n      isSleeping=false\n      * Hist  #0: ActivityRecord{6b205b8 u0 com.google.android.wearable.sysui/.mainui.activity.SysUiActivity t4}\n        packageName=com.google.android.wearable.sysui processName=com.google.android.wearable.sysui\n        launchedFromUid=0 launchedFromPackage=null launchedFromFeature=null userId=0"
            },
            {
              "label": "pidof",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "pidof",
                "app.vowtask.wear"
              ],
              "exit": 0,
              "output": "2420\n"
            },
            {
              "label": "uiautomator_dump",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "uiautomator",
                "dump",
                "/sdcard/vowtask-launch.xml"
              ],
              "exit": 0,
              "output": "UI hierchary dumped to: /sdcard/vowtask-launch.xml\n"
            },
            {
              "label": "pidof_after_interval",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "shell",
                "pidof",
                "app.vowtask.wear"
              ],
              "exit": 0,
              "output": "2420\n"
            },
            {
              "label": "logcat_launch_window",
              "argv": [
                "adb",
                "-s",
                "emulator-5554",
                "logcat",
                "-d",
                "-t",
                "2000",
                "-v",
                "brief"
              ],
              "exit": 0,
              "output": "6595 logcat lines were read and none is a fatal exception or ANR in app.vowtask.wear"
            }
          ],
          "recorded_at_utc": "2026-10-24T12:24:18.796Z",
          "installed_byte_readback": {
            "source_sha": "70a0cd48847cca4f6bff73ab14a0070c65747049",
            "package_id": "app.vowtask.wear",
            "apk_sha256": "4a4cbf9b3bf39bae1988cd953bf1787378c92b6d8312586c023ab364db59db53",
            "installed_sha256": "4a4cbf9b3bf39bae1988cd953bf1787378c92b6d8312586c023ab364db59db53",
            "installed_bytes": 28083857,
            "production_writes": false,
            "emulator": true
          }
        }
      ],
      "install_launch_evidence": {
        "serial": "emulator-5554",
        "device": {
          "ro.build.version.release": "14",
          "ro.build.version.sdk": "34",
          "ro.product.cpu.abi": "x86_64",
          "ro.build.characteristics": "emulator,nosdcard,watch",
          "ro.product.model": "sdk_gwear_x86_64",
          "ro.kernel.qemu": "1"
        },
        "installed_version_name": "0.1.0",
        "activity_confirmed": true,
        "process_alive": true,
        "recorded_at_utc": "2026-10-24T12:24:18.796Z"
      }
    }
  ],
  "verification": {
    "policy": "owner-approved-v1-session-copy-accessibility-closeout",
    "retained_release_run": 40094990047,
    "retained_source_sha": "65b7f23351d16b398fc04154a45570507a99cd16",
    "source_qualification_run": 40186506531,
    "qualified_source_sha": "c54e5ae468f9199f213f16f7eba53a094be0434c",
    "backend_qualification_run": 40186156690,
    "backend_qualification_sha": "19de9a30ef002138a8dd8b2ae73bb6401d76b669",
    "mobile_test_qualification_run": 40091134280,
    "mobile_test_qualification_sha": "70a0cd48847cca4f6bff73ab14a0070c65747049",
    "previous_verification": {
      "policy": "combined-finishline-20261024",
      "source_qualification_run": 40091134280,
      "qualified_source_sha": "70a0cd48847cca4f6bff73ab14a0070c65747049",
      "complete_tree_equivalent": false,
      "source_equivalence": {
        "policy": "packaging-only-recovery-20261024",
        "qualified_source_sha": "70a0cd48847cca4f6bff73ab14a0070c65747049",
        "qualified_tree_sha": "98cd221738ee16b564387cb2a3d98b5658692b36",
        "release_source_sha": "65b7f23351d16b398fc04154a45570507a99cd16",
        "release_tree_sha": "4a6218a804d2ffa5048c4c9b4105b64f6369b0a5",
        "complete_tree_identical": false,
        "runtime_byte_identical": true,
        "changed_paths": [
          ".github/workflows/finishline-release.yml",
          "scripts/deliver-finishline-release.mjs",
          "scripts/download-finishline-artifacts.mjs",
          "scripts/finishline-release-checks.test.mjs",
          "scripts/lib/finishline-release-checks.mjs",
          "scripts/resolve-finishline-build.mjs"
        ]
      },
      "artifact_selection": {
        "package_artifact": {
          "id": 12559776629,
          "name": "finishline-packages-40091134280",
          "digest": "sha256:2115751817d59e33e9cdaaa35790bb4bc52ea496f42f1331dea3c4444912401d",
          "size_in_bytes": 40967997,
          "created_at": "2026-10-24T12:08:04Z",
          "source_sha": "70a0cd48847cca4f6bff73ab14a0070c65747049",
          "run_id": 40091134280,
          "job_id": 120870962144,
          "job_started_at": "2026-10-24T11:54:46Z",
          "job_completed_at": "2026-10-24T12:08:06Z"
        },
        "bundle_artifact": {
          "id": 12559660022,
          "name": "finishline-bundle-40091134280",
          "digest": "sha256:d38db147582d696bbbccf7e34625a79518b44b87b9ae88ce563cbf3b6e4da461",
          "size_in_bytes": 6255,
          "created_at": "2026-10-24T11:54:43Z",
          "source_sha": "70a0cd48847cca4f6bff73ab14a0070c65747049",
          "run_id": 40091134280,
          "job_id": 120870964497,
          "job_started_at": "2026-10-24T11:44:56Z",
          "job_completed_at": "2026-10-24T11:54:44Z"
        },
        "phone_artifact": {
          "id": 12560205449,
          "name": "finishline-launch-android_phone_tablet-40091134280",
          "digest": "sha256:834bd5152e95b5d4d793b0ef9f387c7a1480fbe8c8f5114be638897a2056e10c",
          "size_in_bytes": 41078327,
          "created_at": "2026-10-24T12:11:51Z",
          "source_sha": "70a0cd48847cca4f6bff73ab14a0070c65747049",
          "run_id": 40091134280,
          "job_id": 120870933057,
          "job_started_at": "2026-10-24T12:08:09Z",
          "job_completed_at": "2026-10-24T12:11:55Z"
        },
        "wear_artifact": {
          "id": 12559848199,
          "name": "finishline-launch-wear_os-40091134280",
          "digest": "sha256:28df587e665df99d004e05f99cf0e04183059280e0f434e53eb3dc896a29ac7c",
          "size_in_bytes": 41005275,
          "created_at": "2026-10-24T12:24:33Z",
          "source_sha": "70a0cd48847cca4f6bff73ab14a0070c65747049",
          "run_id": 40091134280,
          "job_id": 120870932268,
          "job_started_at": "2026-10-24T12:20:37Z",
          "job_completed_at": "2026-10-24T12:24:36Z"
        }
      },
      "successful_component_jobs": [
        {
          "id": 120870932263,
          "name": "wear"
        },
        {
          "id": 120870932268,
          "name": "launch (wear_os)"
        },
        {
          "id": 120870932617,
          "name": "web"
        },
        {
          "id": 120870933057,
          "name": "launch (android_phone_tablet)"
        },
        {
          "id": 120870951580,
          "name": "backend"
        },
        {
          "id": 120870954952,
          "name": "mobile"
        },
        {
          "id": 120870962144,
          "name": "package"
        },
        {
          "id": 120870964497,
          "name": "bundle"
        }
      ],
      "bundle_sha256": "d3be804786f0485973b0d781f5c09fe09f799dcf681005a65d06671621eea463",
      "full_matrix_repeated": false,
      "independent_acceptance_claimed": false,
      "baseline_reference_run": 40069263854
    },
    "source_equivalence": "Persian auth and enrollment copy, credential direction, and child-device session validation changed. Equivalent-source production web and isolated frontend checks passed. The bounded backend correction has separate full-suite and mandatory Memory/PostgreSQL device-session qualification. Native source, shared packages, dependencies and installer inputs remain unchanged; original signed Android6/Wear4 bytes and their installation receipts are retained.",
    "full_matrix_repeated": false,
    "independent_acceptance_claimed": false
  },
  "limitations": [
    "Phone API35 and Wear API34 emulators verified newly signed bytes, startup, and installed-byte readback; physical Samsung hardware, TalkBack, enlarged-font visual acceptance and automatic unopened-reboot location remain unverified.",
    "Changed authenticated web/admin/reward-image journeys use isolated synthetic fixtures. Production operator access requires an existing operator session; no privilege grant is inferred.",
    "Apple native applications remain deferred. No store submission, billing, native-speaker certification, or full physical-device acceptance is claimed.",
    "Marketing translations have not received independent native-speaker review. Search indexing and rankings are not release acceptance claims."
  ],
  "integrity_sha256": "cab7b3ca25426b456165fedb1752be641e9734623a4531cd258ec8772ccb3b1b"
}
