Release Gate NO-GO
7

7 release-risk issues blocking release

Resolve, suppress, or document each one before shipping.

0Critical
7High
120Suppressed
Active Issues
8
8 open finding(s) awaiting triage.
Fixed Issues
1
Marked completed after review.
Next Tests
12
Autonomous QA actions queued for the next run.
Latest Run
continuous-qa-20260606T103448Z
35ca83231502 / clean_ahead_6 / 2026-06-06 10:34:48 UTC
Coverage Areas
47
Areas with recorded checks · 120 suppressed.

Active Issues

Product-risk findings first, with triage controls and implementation handover tickets.

IssueSeverityStatusLaneAreaEvidenceLast SeenTriage
#124 appcheck.blocking_token_fetch_ignores_failure_backoff high confirmed regression
android
technical Blocking App Check token fetch ignores failure backoff

Existing issue #124 still reproduces: AppCheckTokenCache.getTokenBlocking() calls fetchTokenFromFirebase() before checking nextAllowedFetchAt; refreshTokenAsync() checks cooldown first. AuditLogRepository uses getTokenBlocking() for audit-log flushes, so background flushes can force App Check fetches during failure cooldown. AppCheckTokenCacheTest covers getToken() async backoff but not getTokenBlocking() cooldown behavior.

Steps to reproduce
  1. Use branch main at commit 35ca83231502 and target Continuous QA environment health.
  2. Rerun test continuous.environment_health; the latest run did not store a shell command, so use its artifact trail for the exact invocation.
  3. Open run continuous-qa-20260606T103448Z and its artifact.
  4. Verify phase blocking_backoff_source_contract still records FAIL: Existing issue #124 still reproduces: AppCheckTokenCache.getTokenBlocking() calls fetchTokenFromFirebase() before checking nextAllowedFetchAt; refreshTokenAsync() checks cooldown first. AuditLogRepository uses getTokenBlocking() for audit-log flushes, so background flushes can force App Check fetches during failure cooldown. AppCheckTokenCacheTest covers getToken() async backoff but not getTokenBlocking() cooldown behavior. artifact
Handover ticket for implementation agent

Summary

Issue #124: Blocking App Check token fetch ignores failure backoff

Existing issue #124 still reproduces: AppCheckTokenCache.getTokenBlocking() calls fetchTokenFromFirebase() before checking nextAllowedFetchAt; refreshTokenAsync() checks cooldown first. AuditLogRepository uses getTokenBlocking() for audit-log flushes, so background flushes can force App Check fetches during failure cooldown. AppCheckTokenCacheTest covers getToken() async backoff but not getTokenBlocking() cooldown behavior.

Severity
high
Status
confirmed
Area
technical
Surface
android
Lane
regression
Fingerprint
appcheck.blocking_token_fetch_ignores_failure_backoff

Reproduce

  1. Use commit 35ca83231502 on branch main.
  2. Rerun test continuous.environment_health; the latest run did not store a shell command, so use its artifact trail for the exact invocation.
  3. Open latest run continuous-qa-20260606T103448Z and its artifact root artifact.
  4. Verify the evidence checks below still fail, then inspect the linked source/log artifact.

Treat as release-risk until completed, ignored, or documented as known behavior.

Observed Evidence

  • FAIL blocking_backoff_source_contract continuous-qa-20260606T103448Z
    Existing issue #124 still reproduces: AppCheckTokenCache.getTokenBlocking() calls fetchTokenFromFirebase() before checking nextAllowedFetchAt; refreshTokenAsync() checks cooldown first. AuditLogRepository uses getTokenBlocking() for audit-log flushes, so background flushes can force App Check fetches during failure cooldown. AppCheckTokenCacheTest covers getToken() async backoff but not getTokenBlocking() cooldown behavior. artifact
  • FAIL blocking_get_token_respects_failure_backoff cq-20260606T083319Z-3921
    AppCheckTokenCache.getTokenBlocking() calls fetchTokenFromFirebase() before checking nextAllowedFetchAt; refreshTokenAsync() checks cooldown first. AuditLogRepository requires getTokenBlocking() for audit-log flushes, so the audit-log worker can retry while still forcing App Check fetches during cooldown. artifact
  • FAIL blocking_get_token_respects_failure_backoff cq-20260606T063126Z-4469
    AppCheckTokenCache.getTokenBlocking() calls fetchTokenFromFirebase() before checking nextAllowedFetchAt; refreshTokenAsync() checks cooldown first. AuditLogRepository requires getTokenBlocking() for audit-log flushes. Existing tests cover getToken() backoff but not getTokenBlocking(). artifact
  • FAIL getTokenBlocking_backoff_guard continuous-20260606T053136Z
    Current source still calls fetchTokenFromFirebase() in getTokenBlocking() before any nextAllowedFetchAt guard. refreshTokenAsync() honors the guard, AuditLogRepository requires getTokenBlocking(), and tests do not cover the blocking path. artifact
  • FAIL blocking_get_token_respects_failure_backoff continuous-20260606T043112Z
    AppCheckTokenCache.getTokenBlocking() calls fetchTokenFromFirebase() before checking nextAllowedFetchAt, then sets nextAllowedFetchAt after a failure. The async refreshTokenAsync() path does check currentTime < nextAllowedFetchAt before fetching. AuditLogRepository requires getTokenBlocking() for audit-log flushes and throws Missing App Check token for audit log request on empty token. AppCheckTokenCacheTest covers getToken() backoff only and does not mention getTokenBlocking(). artifact

Acceptance Criteria

  • The reproduction command above finishes without this issue check failing.
  • The dashboard issue can be marked completed only after a rerun records a passing check for the same area.
  • No product-code behavior should be changed solely to silence the dashboard; keep or update the test evidence.

Related Runs

  • continuous-qa-20260606T103448Z continuous.environment_health / publication / publication 1 fail, 1 checks, started 2026-06-06T10:34:48Z
  • cq-20260606T083319Z-3921 continuous_mobile_inventory_qa / publication / testing-repo 1 fail, 1 checks, started 2026-06-06T08:33:19Z
  • cq-20260606T063126Z-4469 continuous_mobile_inventory_qa / publication / testing-repo 1 fail, 1 checks, started 2026-06-06T06:31:26Z
  • continuous-20260606T053136Z continuous_mobile_inventory_qa / publication / dashboard 1 fail, 1 checks, started 2026-06-06T05:31:36Z
  • continuous-20260606T043112Z technical.appcheck_token_cache.static_contract / publication / testing-repo 1 fail, 1 checks, started 2026-06-06T04:37:44Z

Status History

  • New -> Confirmed 2026-06-06T10:42:03Z by continuous-qa
    Reproduced in continuous-qa-20260606T103448Z: getTokenBlocking still fetches before checking nextAllowedFetchAt; JVM runner blocked by services.gradle.org DNS.
  • Unknown -> New 2026-06-06T04:37:46Z by qa_store
    AppCheckTokenCache.getTokenBlocking() calls fetchTokenFromFirebase() before checking nextAllowedFetchAt, then sets nextAllowedFetchAt after a failure. The async refreshTokenAsync() path does check currentTime < nextAllowedFetchAt before fetching. AuditLogRepository requires getTokenBlocking() for audit-log flushes and throws Missing App Check token for audi...

Observed 5 time(s), reproduced 5 time(s), first seen 2026-06-06T04:31:12Z, last seen 2026-06-06T10:34:48Z.

2026-06-06 10:34:48 UTC
#111 import.product_import_transaction_commits_on_error high confirmed latest_commit
android
imports Product import transaction commits after setup error

Read-only local master has the same doOnEvent finalizer, so #111 is not fixed in the available master snapshot. Latest GitHub master still could not be fetched.

Steps to reproduce
  1. Use branch main at commit 88df35908837 and target Mobile Inventory continuous QA cycle.
  2. Rerun test continuous_mobile_inventory_qa; the latest run did not store a shell command, so use its artifact trail for the exact invocation.
  3. Open run continuous-qa-20260606T093332Z and its artifact.
  4. Verify phase room_transaction_error_finalizer still records FAIL: Read-only local master has the same doOnEvent finalizer, so #111 is not fixed in the available master snapshot. Latest GitHub master still could not be fetched. artifact
Handover ticket for implementation agent

Summary

Issue #111: Product import transaction commits after setup error

Read-only local master has the same doOnEvent finalizer, so #111 is not fixed in the available master snapshot. Latest GitHub master still could not be fetched.

Severity
high
Status
confirmed
Area
imports
Surface
android
Lane
latest_commit
Fingerprint
import.product_import_transaction_commits_on_error

Reproduce

  1. Use commit 88df35908837 on branch main.
  2. Rerun test continuous_mobile_inventory_qa; the latest run did not store a shell command, so use its artifact trail for the exact invocation.
  3. Open latest run continuous-qa-20260606T093332Z and its artifact root artifact.
  4. Verify the evidence checks below still fail, then inspect the linked source/log artifact.

Treat as release-risk until completed, ignored, or documented as known behavior.

Observed Evidence

  • FAIL room_transaction_error_finalizer continuous-qa-20260606T093332Z
    Read-only local master has the same doOnEvent finalizer, so #111 is not fixed in the available master snapshot. Latest GitHub master still could not be fetched. artifact
  • FAIL room_transaction_error_finalizer continuous-qa-20260606T093332Z
    ImportDataInserter wraps default setup/delete/cache reads and row inserts in a Room transaction, but finalizes with Completable.doOnEvent and unconditionally calls setTransactionSuccessful before endTransaction. In RxJava doOnEvent receives a non-null throwable on error, so failed imports can still commit partial setup or row changes. artifact
  • FAIL check continuous-20260606T033023Z
    ImportDataInserter still calls setTransactionSuccessful() and endTransaction() from Completable.doOnEvent; RxJava invokes doOnEvent on both complete and error, so setup/delete/reference-load failures after beginTransaction can commit. artifact
  • FAIL product_import_transaction_error_finalizer continuous-20260606T012933Z
    ImportDataInserter.insertDataIntoDatabaseWithSummary starts a Room transaction before default setup, delete-all, update reference loading, and row insertion. Its Completable.doOnEvent handler unconditionally calls setTransactionSuccessful() before endTransaction(); doOnEvent receives the throwable on error, so setup/default/delete failures can still mark the Room transaction successful and preserve partial import changes while the UI reports the generic import error. artifact

Acceptance Criteria

  • The reproduction command above finishes without this issue check failing.
  • The dashboard issue can be marked completed only after a rerun records a passing check for the same area.
  • No product-code behavior should be changed solely to silence the dashboard; keep or update the test evidence.

Related Runs

  • continuous-qa-20260606T093332Z continuous_mobile_inventory_qa / publication / dashboard 2 fail, 2 checks, started 2026-06-06T09:33:32Z
  • continuous-20260606T033023Z qa.transactions.count_from_image_field_foundation / publication / dashboard 1 fail, 1 checks, started 2026-06-06T03:38:16Z
  • continuous-20260606T012933Z continuous.environment_health / publication / publication 1 fail, 1 checks, started 2026-06-06T01:29:33Z

Status History

  • New -> Confirmed 2026-06-06T09:41:10Z by continuous-qa
    Reproduced in .qa-runs/2026-06-06/continuous-qa-20260606T093332Z: ImportDataInserter still calls setTransactionSuccessful from Completable.doOnEvent on current qa and local master.
  • Unknown -> New 2026-06-06T01:36:28Z by qa_store
    ImportDataInserter.insertDataIntoDatabaseWithSummary starts a Room transaction before default setup, delete-all, update reference loading, and row insertion. Its Completable.doOnEvent handler unconditionally calls setTransactionSuccessful() before endTransaction(); doOnEvent receives the throwable on error, so setup/default/delete failures can still mark th...

Observed 4 time(s), reproduced 4 time(s), first seen 2026-06-06T01:29:33Z, last seen 2026-06-06T09:33:32Z.

2026-06-06 09:33:32 UTC
#10 transactions.count_image.tablet_zoom_overlay_missing_preview_view high new regression
android
transactions Tablet zoom loses Count from Image overlay metadata

Current Android qa checkout still uses ImageView for layout-sw600dp fragment_product_detail expanded_image, so tablet product detail zoom cannot render CountImagePreviewImageView point metadata. Local master 762855e7 contains the static fix, but checkout/sync and runtime are blocked.

Steps to reproduce
  1. Use branch main at commit 33790b6 and target Mobile Inventory continuous QA cycle.
  2. Rerun test continuous_mobile_inventory_qa; the latest run did not store a shell command, so use its artifact trail for the exact invocation.
  3. Open run cq-20260606T083319Z-3921 and its artifact.
  4. Verify phase tablet_zoom_overlay still records FAIL: Current Android qa checkout still uses ImageView for layout-sw600dp fragment_product_detail expanded_image, so tablet product detail zoom cannot render CountImagePreviewImageView point metadata. Local master 762855e7 contains the static fix, but checkout/sync and runtime are blocked. artifact
Handover ticket for implementation agent

Summary

Issue #10: Tablet zoom loses Count from Image overlay metadata

Current Android qa checkout still uses ImageView for layout-sw600dp fragment_product_detail expanded_image, so tablet product detail zoom cannot render CountImagePreviewImageView point metadata. Local master 762855e7 contains the static fix, but checkout/sync and runtime are blocked.

Severity
high
Status
new
Area
transactions
Surface
android
Lane
regression
Fingerprint
transactions.count_image.tablet_zoom_overlay_missing_preview_view

Reproduce

  1. Use commit 33790b6 on branch main.
  2. Rerun test continuous_mobile_inventory_qa; the latest run did not store a shell command, so use its artifact trail for the exact invocation.
  3. Open latest run cq-20260606T083319Z-3921 and its artifact root artifact.
  4. Verify the evidence checks below still fail, then inspect the linked source/log artifact.

Treat as release-risk until completed, ignored, or documented as known behavior.

Observed Evidence

  • FAIL tablet_zoom_overlay cq-20260606T083319Z-3921
    Current Android qa checkout still uses ImageView for layout-sw600dp fragment_product_detail expanded_image, so tablet product detail zoom cannot render CountImagePreviewImageView point metadata. Local master 762855e7 contains the static fix, but checkout/sync and runtime are blocked. artifact
  • FAIL tablet_zoom_overlay cq-20260606T073320Z-7477
    Current Android qa checkout still uses ImageView for layout-sw600dp fragment_product_detail expanded_image, so tablet product detail zoom cannot render CountImagePreviewImageView point metadata. Local master 762855e7 contains the static fix, but checkout/sync is sandbox-blocked. artifact
  • FAIL layout_sw600dp_zoom_target continuous-20260605T182619Z
    Reproduced on local Android snapshot: phone fragment_product_detail expanded_image is CountImagePreviewImageView, tablet sw600dp expanded_image is ImageView, and TransactionsViewModel only attaches count-image overlay metadata when expandedImageView is CountImagePreviewImageView. artifact
  • FAIL layout_sw600dp_zoom_target 20260605T152347Z-continuous-qa
    The phone product-detail layout binds shared id expanded_image to CountImagePreviewImageView, but layout-sw600dp binds the same id to plain ImageView. TransactionsViewModel.zoomImageFromThumb only copies count-overlay metadata when the zoom target is CountImagePreviewImageView, so tablet zoom drops Count from Image overlay points. artifact
  • FAIL layout_sw600dp_zoom_target 20260605T142358Z-continuous-qa
    The phone product-detail layout binds shared id expanded_image to CountImagePreviewImageView, but layout-sw600dp binds the same id to plain ImageView. TransactionsViewModel.zoomImageFromThumb only copies TransactionCountImageFieldValue when the zoom target is a CountImagePreviewImageView, so tablet zoom drops count overlay points for Count from Image history thumbnails. artifact

Acceptance Criteria

  • The reproduction command above finishes without this issue check failing.
  • The dashboard issue can be marked completed only after a rerun records a passing check for the same area.
  • No product-code behavior should be changed solely to silence the dashboard; keep or update the test evidence.

Related Runs

  • cq-20260606T083319Z-3921 continuous_mobile_inventory_qa / publication / testing-repo 1 fail, 1 checks, started 2026-06-06T08:33:19Z
  • cq-20260606T073320Z-7477 transactions.count_image.field_foundation.current_checkout / regression / android 1 fail, 1 checks, started 2026-06-06T07:33:20Z
  • continuous-20260605T182619Z repo.sync.github_master / health / web 1 fail, 1 checks, started 2026-06-05T18:26:19Z
  • 20260605T152347Z-continuous-qa repo.sync.detached_worktree / health / repo 1 fail, 1 checks, started 2026-06-05T15:31:29Z
  • 20260605T142358Z-continuous-qa qa.store.jsonl_smoke / health / repo 1 fail, 1 checks, started 2026-06-05T14:28:31Z

Status History

  • Unknown -> New 2026-06-05T14:30:29Z by qa_store
    The phone product-detail layout binds shared id expanded_image to CountImagePreviewImageView, but layout-sw600dp binds the same id to plain ImageView. TransactionsViewModel.zoomImageFromThumb only copies TransactionCountImageFieldValue when the zoom target is a CountImagePreviewImageView, so tablet zoom drops count overlay points for Count from Image histor...

Observed 5 time(s), reproduced 5 time(s), first seen 2026-06-05T14:30:29Z, last seen 2026-06-06T08:33:19Z.

2026-06-06 08:33:19 UTC
#70 product.count_image.tablet_zoom_overlay_missing high new regression
android
transactions Tablet count-image zoom drops point overlay

Phone product detail layout uses CountImagePreviewImageView, but tablet sw600dp expanded_image is a plain ImageView on the current qa checkout. This repeats the known tablet overlay loss and is not a new duplicate.

Steps to reproduce
  1. Use branch main at commit 33790b6 and target Mobile Inventory continuous QA cycle.
  2. Rerun test continuous_mobile_inventory_qa; the latest run did not store a shell command, so use its artifact trail for the exact invocation.
  3. Open run cq-20260606T083319Z-3921 and its artifact.
  4. Verify phase product_detail_tablet_expanded_image still records FAIL: Phone product detail layout uses CountImagePreviewImageView, but tablet sw600dp expanded_image is a plain ImageView on the current qa checkout. This repeats the known tablet overlay loss and is not a new duplicate. artifact
Handover ticket for implementation agent

Summary

Issue #70: Tablet count-image zoom drops point overlay

Phone product detail layout uses CountImagePreviewImageView, but tablet sw600dp expanded_image is a plain ImageView on the current qa checkout. This repeats the known tablet overlay loss and is not a new duplicate.

Severity
high
Status
new
Area
transactions
Surface
android
Lane
regression
Fingerprint
product.count_image.tablet_zoom_overlay_missing

Reproduce

  1. Use commit 33790b6 on branch main.
  2. Rerun test continuous_mobile_inventory_qa; the latest run did not store a shell command, so use its artifact trail for the exact invocation.
  3. Open latest run cq-20260606T083319Z-3921 and its artifact root artifact.
  4. Verify the evidence checks below still fail, then inspect the linked source/log artifact.

Treat as release-risk until completed, ignored, or documented as known behavior.

Observed Evidence

  • FAIL product_detail_tablet_expanded_image cq-20260606T083319Z-3921
    Phone product detail layout uses CountImagePreviewImageView, but tablet sw600dp expanded_image is a plain ImageView on the current qa checkout. This repeats the known tablet overlay loss and is not a new duplicate. artifact
  • FAIL product_detail_tablet_expanded_image cq-20260606T073320Z-7477
    Tablet product detail layout-sw600dp still declares expanded_image as ImageView on the current qa checkout. Count image previews therefore lose point overlay behavior on tablet zoom. Local master 762855e7 statically changes this view to CountImagePreviewImageView. artifact
  • FAIL product_detail_expanded_image_widget continuous-20260605T182619Z
    Same product-detail tablet root cause as issue #10: layout-sw600dp/fragment_product_detail.xml downgrades expanded_image to ImageView while count-image preview thumbnails carry point metadata only through CountImagePreviewImageView. artifact
  • FAIL sw600dp_expanded_image_widget_type 20260605T082128Z-continuous-qa
    layout-sw600dp/fragment_product_detail.xml defines R.id.expanded_image as ImageView, while TransactionsViewModel.zoomImageFromThumb only applies TransactionCountImageFieldValue when expanded_image is CountImagePreviewImageView. PagerBaseAddTransactionFragment, PagerHistoryFragment, and PagerSummaryFragment all resolve the same activity-level expanded_image, so tablet zoom loses count points across add/history/summary flows. artifact
  • FAIL count_image_tablet_zoom_overlay 20260605T071940Z-64381.continuous
    Phone product-detail layout uses CountImagePreviewImageView for expanded_image, but the sw600dp variant still uses ImageView. Because zoomImageFromThumb only calls setCountImageValue when expandedImageView is a CountImagePreviewImageView, tablet zoom previews for count-image thumbnails lose the saved point overlay. artifact

Acceptance Criteria

  • The reproduction command above finishes without this issue check failing.
  • The dashboard issue can be marked completed only after a rerun records a passing check for the same area.
  • No product-code behavior should be changed solely to silence the dashboard; keep or update the test evidence.

Related Runs

  • cq-20260606T083319Z-3921 continuous_mobile_inventory_qa / publication / testing-repo 1 fail, 1 checks, started 2026-06-06T08:33:19Z
  • cq-20260606T073320Z-7477 transactions.count_image.field_foundation.current_checkout / regression / android 1 fail, 1 checks, started 2026-06-06T07:33:20Z
  • continuous-20260605T182619Z repo.sync.github_master / health / web 1 fail, 1 checks, started 2026-06-05T18:26:19Z
  • 20260605T082128Z-continuous-qa qa.health.github_sync / health / android-web 1 fail, 1 checks, started 2026-06-05T08:21:28Z
  • 20260605T071940Z-64381.continuous qa.continuous / health / android-web 1 fail, 1 checks, started 2026-06-05T07:19:40Z

Status History

  • Unknown -> New 2026-06-05T15:55:12Z by qa_store
    Phone product-detail layout uses CountImagePreviewImageView for expanded_image, but the sw600dp variant still uses ImageView. Because zoomImageFromThumb only calls setCountImageValue when expandedImageView is a CountImagePreviewImageView, tablet zoom previews for count-image thumbnails lose the saved point overlay.

Observed 5 time(s), reproduced 5 time(s), first seen 2026-06-05T07:19:40Z, last seen 2026-06-06T08:33:19Z.

2026-06-06 08:33:19 UTC
#36 unit.user_config_sp.printed_barcode_configs_copy_paths_type_index high new rerun
android
settings printed_barcode_configs_copy_paths

Dedup correction for this run: same source evidence as printer_static_probe.json. applyPrintedBarcodeConfigsSetting writes local SharedPreferences then clears pending printedBarcodeConfigs; it does not store a copied pending value or mirror the copied config into logged-in user settings cache.

Steps to reproduce
  1. Use branch qa at commit baae49601b26 and target continuous.printer_release_static.
  2. Rerun test continuous.printer_release_static; the latest run did not store a shell command, so use its artifact trail for the exact invocation.
  3. Open run continuous-20260605T232907Z.
  4. Verify phase printed_barcode_configs_apply_path_existing_issue_36 still records FAIL: Dedup correction for this run: same source evidence as printer_static_probe.json. applyPrintedBarcodeConfigsSetting writes local SharedPreferences then clears pending printedBarcodeConfigs; it does not store a copied pending value or mirror the copied config into logged-in user settings cache. artifact
Handover ticket for implementation agent

Summary

Issue #36: printed_barcode_configs_copy_paths

Dedup correction for this run: same source evidence as printer_static_probe.json. applyPrintedBarcodeConfigsSetting writes local SharedPreferences then clears pending printedBarcodeConfigs; it does not store a copied pending value or mirror the copied config into logged-in user settings cache.

Severity
high
Status
new
Area
settings
Surface
android
Lane
rerun
Fingerprint
unit.user_config_sp.printed_barcode_configs_copy_paths_type_index

Reproduce

  1. Use commit baae49601b26 on branch qa.
  2. Rerun test continuous.printer_release_static; the latest run did not store a shell command, so use its artifact trail for the exact invocation.
  3. Open latest run continuous-20260605T232907Z.
  4. Verify the evidence checks below still fail, then inspect the linked source/log artifact.

Treat as release-risk until completed, ignored, or documented as known behavior.

Observed Evidence

  • FAIL printed_barcode_configs_apply_path_existing_issue_36 continuous-20260605T232907Z
    Dedup correction for this run: same source evidence as printer_static_probe.json. applyPrintedBarcodeConfigsSetting writes local SharedPreferences then clears pending printedBarcodeConfigs; it does not store a copied pending value or mirror the copied config into logged-in user settings cache. artifact
  • FAIL pending_and_cache_copy_path 20260605T172505Z-continuous
    Static source probe reproduced issue #36: applyPrintedBarcodeConfigsSetting still copies printedBarcodeConfigs only through super.setPrintedBarcodeConfigs(copyPrintedBarcodeConfigs(...)) and clears the pending field without writing a pending printedBarcodeConfigs patch or mirroring the copied value into logged-in user settings cache. artifact
  • FAIL pending_and_cache_copy_path continuous-20260605T162426Z
    Static source probe reproduced issue #36 on the local Android snapshot: UserConfigSPCloudSettings.applyPrintedBarcodeConfigsSetting only calls super.setPrintedBarcodeConfigs(copyPrintedBarcodeConfigs(...)) and clearPendingUserSettingValue("printedBarcodeConfigs"). It still does not write a pending printedBarcodeConfigs patch or mirror the copied value into the logged-in user cache, contradicting UserConfigSPSettingsCoverageTest.printedBarcodeConfigsAreCopiedAcrossReaderAndApplyPaths expectations for cached and pending typeIndex 1. artifact
  • FAIL printed_barcode_configs_apply_outlier 20260604T211227-continuous-qa
    Static comparison of adjacent apply*Setting methods found applyPrintedBarcodeConfigsSetting still clears the pending patch instead of mirroring pending/cache state, matching the standing unit expectation in UserConfigSPSettingsCoverageTest. artifact
  • FAIL static_signature_preflight 20260604T190842-62351
    Static source probe on c5ebbb37 found applyPrintedBarcodeConfigsSetting at UserConfigSPCloudSettings.java:1976-1978 still copies local prefs then clears pending state without any pending-patch write or cache-mirror call, matching the standing unit failure at UserConfigSPSettingsCoverageTest.java:775. artifact
  • FAIL printed_barcode_configs_copy_paths auto_20260604_114555
    UserConfigSPSettingsCoverageTest.printedBarcodeConfigsAreCopiedAcrossReaderAndApplyPaths failed: expected cached printed barcode typeIndex 1 after applying local configs, but was 2. 139 tests completed, 1 failed. artifact

Acceptance Criteria

  • The reproduction command above finishes without this issue check failing.
  • The dashboard issue can be marked completed only after a rerun records a passing check for the same area.
  • No product-code behavior should be changed solely to silence the dashboard; keep or update the test evidence.

Related Runs

  • continuous-20260605T232907Z continuous.printer_release_static / publication / publication 1 fail, 1 checks, started 2026-06-05T23:35:53Z
  • 20260605T172505Z-continuous repo.sync.github_master / health / web 1 fail, 1 checks, started 2026-06-05T17:32:34Z
  • continuous-20260605T162426Z repo.sync.github_master / health / web 1 fail, 1 checks, started 2026-06-05T16:24:26Z
  • 20260604T211227-continuous-qa repo.github_sync_worktree / health / repo 1 fail, 1 checks, started 2026-06-04T19:12:27Z
  • 20260604T190842-62351 repo.github_sync_worktree / health / repo 1 fail, 1 checks, started 2026-06-04T17:13:32Z

Status History

  • Unknown -> New 2026-06-05T15:55:02Z by qa_store
    Static source probe on c5ebbb37 found applyPrintedBarcodeConfigsSetting at UserConfigSPCloudSettings.java:1976-1978 still copies local prefs then clears pending state without any pending-patch write or cache-mirror call, matching the standing unit failure at UserConfigSPSettingsCoverageTest.java:775.

Observed 6 time(s), reproduced 6 time(s), first seen 2026-06-04T17:13:32Z, last seen 2026-06-05T23:37:48Z.

2026-06-05 23:37:48 UTC
#84 printing.native_print.android_system_label_size_attributes_ignored high confirmed rerun
android
printing Android system print ignores rendered label size

NativePrintJobCoordinator builds label PrintAttributes from job.labelSize, but rendered WebView printing still calls printManager.print(jobName, adapter, null), so Android system print preview can ignore requested label media size.

Steps to reproduce
  1. Use branch qa at commit baae49601b26 and target continuous.printer_release_static.
  2. Rerun test continuous.printer_release_static; the latest run did not store a shell command, so use its artifact trail for the exact invocation.
  3. Open run continuous-20260605T232907Z.
  4. Verify phase native_print_attributes still records FAIL: NativePrintJobCoordinator builds label PrintAttributes from job.labelSize, but rendered WebView printing still calls printManager.print(jobName, adapter, null), so Android system print preview can ignore requested label media size. artifact
Handover ticket for implementation agent

Summary

Issue #84: Android system print ignores rendered label size

NativePrintJobCoordinator builds label PrintAttributes from job.labelSize, but rendered WebView printing still calls printManager.print(jobName, adapter, null), so Android system print preview can ignore requested label media size.

Severity
high
Status
confirmed
Area
printing
Surface
android
Lane
rerun
Fingerprint
printing.native_print.android_system_label_size_attributes_ignored

Reproduce

  1. Use commit baae49601b26 on branch qa.
  2. Rerun test continuous.printer_release_static; the latest run did not store a shell command, so use its artifact trail for the exact invocation.
  3. Open latest run continuous-20260605T232907Z.
  4. Verify the evidence checks below still fail, then inspect the linked source/log artifact.

Treat as release-risk until completed, ignored, or documented as known behavior.

Observed Evidence

  • FAIL native_print_attributes continuous-20260605T232907Z
    NativePrintJobCoordinator builds label PrintAttributes from job.labelSize, but rendered WebView printing still calls printManager.print(jobName, adapter, null), so Android system print preview can ignore requested label media size. artifact
  • FAIL native_webview_print_attributes continuous-20260605T202702Z
    NativePrintJobCoordinator builds label-size PrintAttributes from job.labelSize but never uses them; printManager.print(jobName, adapter, null) drops the requested media size. artifact
  • FAIL rendered_label_print_attributes 20260605T172505Z-continuous
    New static product issue: rendered-label Android system print documents and parses labelSize widthMm/heightMm and even has buildAndroidSystemPrintAttributes(), but printRenderedJobWithAndroidSystemPrint calls printManager.print(jobName, adapter, null). The generated label-size PrintAttributes are dead, so Android system print can ignore the Labelcodes paper/label dimensions and margins for rendered native jobs. artifact

Acceptance Criteria

  • The reproduction command above finishes without this issue check failing.
  • The dashboard issue can be marked completed only after a rerun records a passing check for the same area.
  • No product-code behavior should be changed solely to silence the dashboard; keep or update the test evidence.

Related Runs

  • continuous-20260605T232907Z continuous.printer_release_static / publication / publication 1 fail, 1 checks, started 2026-06-05T23:35:53Z
  • continuous-20260605T202702Z android.printer_release_static_probe / publication / publication 1 fail, 1 checks, started 2026-06-05T20:27:02Z
  • 20260605T172505Z-continuous repo.sync.github_master / health / web 1 fail, 1 checks, started 2026-06-05T17:32:34Z

Status History

  • New -> Confirmed 2026-06-05T20:34:48Z by codex-automation
    Reproduced again in continuous-20260605T202702Z via source probe: NativePrintJobCoordinator builds label-size PrintAttributes but calls printManager.print(jobName, adapter, null).
  • Unknown -> New 2026-06-05T17:33:44Z by qa_store
    New static product issue: rendered-label Android system print documents and parses labelSize widthMm/heightMm and even has buildAndroidSystemPrintAttributes(), but printRenderedJobWithAndroidSystemPrint calls printManager.print(jobName, adapter, null). The generated label-size PrintAttributes are dead, so Android system print can ignore the Labelcodes paper...

Observed 3 time(s), reproduced 3 time(s), first seen 2026-06-05T17:32:34Z, last seen 2026-06-05T23:35:53Z.

2026-06-05 23:35:53 UTC
#37 lint.dev_debug.bluetooth_printer_missing_permission_errors high new rerun
android
printing bluetooth_printer_missing_permission

Static source probe reproduced this issue. Bluetooth helper files still suppress MissingPermission around permission-sensitive calls including getBluetoothClass, getType, getAddress, connectGatt, and requestMtu. The coordinator has a runtime permission guard, but the helper/lint annotation issue remains.

Steps to reproduce
  1. Use branch main at commit f6c012cc30db and target Android checkout master blocked by index lock permission.
  2. Rerun test repo.sync.github_master; the latest run did not store a shell command, so use its artifact trail for the exact invocation.
  3. Open run 20260605T172505Z-continuous and its artifact.
  4. Verify phase permission_sensitive_calls still records ERROR: Static source probe reproduced issue #37: Bluetooth helper files still suppress MissingPermission around permission-sensitive calls including getBluetoothClass, getType, getAddress, connectGatt, and requestMtu. The coordinator has a runtime permission guard, but the helper/lint annotation issue remains. artifact
Handover ticket for implementation agent

Summary

Issue #37: bluetooth_printer_missing_permission

Static source probe reproduced issue #37: Bluetooth helper files still suppress MissingPermission around permission-sensitive calls including getBluetoothClass, getType, getAddress, connectGatt, and requestMtu. The coordinator has a runtime permission guard, but the helper/lint annotation issue remains.

Severity
high
Status
new
Area
printing
Surface
android
Lane
rerun
Fingerprint
lint.dev_debug.bluetooth_printer_missing_permission_errors

Reproduce

  1. Use commit f6c012cc30db on branch main.
  2. Rerun test repo.sync.github_master; the latest run did not store a shell command, so use its artifact trail for the exact invocation.
  3. Open latest run 20260605T172505Z-continuous and its artifact root artifact.
  4. Verify the evidence checks below still fail, then inspect the linked source/log artifact.

Treat as release-risk until completed, ignored, or documented as known behavior.

Observed Evidence

  • ERROR permission_sensitive_calls 20260605T172505Z-continuous
    Static source probe reproduced issue #37: Bluetooth helper files still suppress MissingPermission around permission-sensitive calls including getBluetoothClass, getType, getAddress, connectGatt, and requestMtu. The coordinator has a runtime permission guard, but the helper/lint annotation issue remains. artifact
  • ERROR permission_sensitive_calls continuous-20260605T162426Z
    Static source probe reproduced issue #37: permission-sensitive Bluetooth calls remain in printer helpers without @RequiresPermission or a local runtime permission guard. Evidence includes EscPosBluetoothPrinterHelper.java:134 device.getBluetoothClass(), ZebraSdkBluetoothPrinterTransportHelper.java:129 bluetoothDevice.getType(), ZebraSdkBluetoothPrinterTransportHelper.java:241 bluetoothDevice.getAddress(), ZebraDirectBlePrinterTransportHelper.java:136 bluetoothDevice.connectGatt(...), and ZebraDirectBlePrinterTransportHelper.java:231 currentGatt.requestMtu(...). Gradle lint could not rerun because the wrapper distribution DNS is blocked. artifact
  • FAIL static_signature_preflight 20260604T190842-62351
    Static source probe on c5ebbb37 still finds the permission-sensitive Bluetooth printer calls that matched the earlier lint failure, including EscPosBluetoothPrinterHelper.java:134 device.getBluetoothClass() and ZebraDirectBlePrinterTransportHelper.java lines 231, 396, and 539. artifact
  • FAIL bluetooth_printer_missing_permission auto_20260604_114555
    app:lintDevDebug found 65 errors and 3108 warnings. First failures are MissingPermission in Bluetooth printer helpers, starting at EscPosBluetoothPrinterHelper.java:134 device.getBluetoothClass(), plus ZebraDirectBlePrinterTransportHelper BLE calls. artifact

Acceptance Criteria

  • The reproduction command above finishes without this issue check failing.
  • The dashboard issue can be marked completed only after a rerun records a passing check for the same area.
  • No product-code behavior should be changed solely to silence the dashboard; keep or update the test evidence.

Related Runs

  • 20260605T172505Z-continuous repo.sync.github_master / health / web 1 fail, 1 checks, started 2026-06-05T17:32:34Z
  • continuous-20260605T162426Z repo.sync.github_master / health / web 1 fail, 1 checks, started 2026-06-05T16:24:26Z
  • 20260604T190842-62351 repo.github_sync_worktree / health / repo 1 fail, 1 checks, started 2026-06-04T17:13:32Z
  • auto_20260604_114555 git.github_master_sync / health / repo 1 fail, 1 checks, started 2026-06-04T09:52:54Z

Status History

  • Unknown -> New 2026-06-05T15:55:02Z by qa_store
    Static source probe on c5ebbb37 still finds the permission-sensitive Bluetooth printer calls that matched the earlier lint failure, including EscPosBluetoothPrinterHelper.java:134 device.getBluetoothClass() and ZebraDirectBlePrinterTransportHelper.java lines 231, 396, and 539.

Observed 4 time(s), reproduced 4 time(s), first seen 2026-06-04T17:13:32Z, last seen 2026-06-05T17:32:34Z.

2026-06-05 17:32:34 UTC
#95 scanner.paywall.continuous_benefit_missing medium new exploratory
android
scanner Scanner+ paywall drops continuous scanning benefit

Testing checklist and runner require five Scanner+ benefits including 'Continuous, hands-free scanning', but current Android layout/string resources expose only 4 of 5. Missing layout refs: ['scanner_plus_paywall_benefit_continuous']; missing strings: ['scanner_plus_paywall_benefit_continuous']; mismatches: none. Commit adb18a96 had the continuous row: True; commit 3e979cad lacks it: True; checklist expects it: True; runner asserts it: True.

Steps to reproduce
  1. Use branch main at commit 9db55151bb24 and target Continuous QA environment health.
  2. Rerun test continuous.environment_health; the latest run did not store a shell command, so use its artifact trail for the exact invocation.
  3. Open run continuous-20260605T222910Z and its artifact.
  4. Verify phase scanner_plus_benefit_contract still records FAIL: Testing checklist and runner require five Scanner+ benefits including 'Continuous, hands-free scanning', but current Android layout/string resources expose only 4 of 5. Missing layout refs: ['scanner_plus_paywall_benefit_continuous']; missing strings: ['scanner_plus_paywall_benefit_continuous']; mismatches: none. Commit adb18a96 had the continuous row: True; commit 3e979cad lacks it: True; checklist expects it: True; runner asserts it: True. artifact
Handover ticket for implementation agent

Summary

Issue #95: Scanner+ paywall drops continuous scanning benefit

Testing checklist and runner require five Scanner+ benefits including 'Continuous, hands-free scanning', but current Android layout/string resources expose only 4 of 5. Missing layout refs: ['scanner_plus_paywall_benefit_continuous']; missing strings: ['scanner_plus_paywall_benefit_continuous']; mismatches: none. Commit adb18a96 had the continuous row: True; commit 3e979cad lacks it: True; checklist expects it: True; runner asserts it: True.

Severity
medium
Status
new
Area
scanner
Surface
android
Lane
exploratory
Fingerprint
scanner.paywall.continuous_benefit_missing

Reproduce

  1. Use commit 9db55151bb24 on branch main.
  2. Rerun test continuous.environment_health; the latest run did not store a shell command, so use its artifact trail for the exact invocation.
  3. Open latest run continuous-20260605T222910Z and its artifact root artifact.
  4. Verify the evidence checks below still fail, then inspect the linked source/log artifact.

Review before release if this area is in scope.

Observed Evidence

  • FAIL scanner_plus_benefit_contract continuous-20260605T222910Z
    Testing checklist and runner require five Scanner+ benefits including 'Continuous, hands-free scanning', but current Android layout/string resources expose only 4 of 5. Missing layout refs: ['scanner_plus_paywall_benefit_continuous']; missing strings: ['scanner_plus_paywall_benefit_continuous']; mismatches: none. Commit adb18a96 had the continuous row: True; commit 3e979cad lacks it: True; checklist expects it: True; runner asserts it: True. artifact

Acceptance Criteria

  • The reproduction command above finishes without this issue check failing.
  • The dashboard issue can be marked completed only after a rerun records a passing check for the same area.
  • No product-code behavior should be changed solely to silence the dashboard; keep or update the test evidence.

Related Runs

  • continuous-20260605T222910Z continuous.environment_health / publication / publication 1 fail, 1 checks, started 2026-06-05T22:29:10Z

Status History

  • Unknown -> New 2026-06-05T22:36:21Z by qa_store
    Testing checklist and runner require five Scanner+ benefits including 'Continuous, hands-free scanning', but current Android layout/string resources expose only 4 of 5. Missing layout refs: ['scanner_plus_paywall_benefit_continuous']; missing strings: ['scanner_plus_paywall_benefit_continuous']; mismatches: none. Commit adb18a96 had the continuous row: True...

Observed 1 time(s), reproduced 1 time(s), first seen 2026-06-05T22:29:10Z, last seen 2026-06-05T22:29:10Z.

2026-06-05 22:29:10 UTC

Recent Runs

Latest run history with check summaries and expandable phase evidence.

RunTestWhat Was TestedLaneSurfaceDevicesStatusChecksFailsInfraStarted
continuous-qa-20260606T103448Z Continuous QA environment health continuous.environment_health
Continuous QA environment health
Show 10 recorded checks
StatusSeverityCheckEvidence
INFRA high android_github_sync Android GitHub remote is configured, but git fetch --prune github master failed with cannot open .git/FETCH_HEAD: Operation not permitted. Android worktree is also not clean due untracked .gradle-local/. Tested snapshot remains local qa at baae49601b265f9f117a63aadb1a05ce8bdcdacd; latest GitHub master was not verified. artifact
DEVICE_FAIL high adb_devices adb devices, emulator boot state, installed package state, screenshots, UI dumps, logcat, and connected Android runners are invalid because adb is not on PATH in this runtime. artifact
INFRA high web_checkout_discovery No WEB_APP_ROOT is set and linked-projects/web-app/common local checkout paths are absent, so Web source checks, DEV Web smoke, and Android/Web shared sync are invalid for this run. artifact
INFRA medium dev_web_common_ports curl checks to localhost/127.0.0.1 on ports 3000, 5173, and 8080 returned 000; no local DEV Web server was reachable for smoke testing. artifact
PASS info source_contract Static probe passed for QR/Data Matrix symbology enablement, Scandit GS1 carrier metadata to AIM inference, normalized scan event propagation, Scanner+ callback lookup value, GS1 resolver Digital Link and element-string parsing, GTIN fallback candidates, ML Kit AIM preservation, and focused unit coverage. artifact
DEVICE_FAIL high device_runner_prerequisite qa/products/qa_test_gs1_2d_product_identifier_android.sh stopped at prerequisite check with 'Missing required command: adb', so GS1 QR/Data Matrix runtime scanning, screenshots, and UI dumps were not valid. artifact
NETWORK_FAIL high gradle_jvm_runner qa/technical/qa_test_appcheck_token_cache_android.sh could not run because the Gradle wrapper attempted to download gradle-8.14.3-bin.zip and failed with UnknownHostException for services.gradle.org. artifact
FAIL high blocking_backoff_source_contract Existing issue #124 still reproduces: AppCheckTokenCache.getTokenBlocking() calls fetchTokenFromFirebase() before checking nextAllowedFetchAt; refreshTokenAsync() checks cooldown first. AuditLogRepository uses getTokenBlocking() for audit-log flushes, so background flushes can force App Check fetches during failure cooldown. AppCheckTokenCacheTest covers getToken() async backoff but not getTokenBlocking() cooldown behavior. artifact
NETWORK_FAIL high git_push_origin_main git push origin main failed because github.com could not resolve. Local main contains dashboard commit 35ca83231502835086c48cb2bb844da2c89820f6 and remains ahead of origin/main by six commits, so Cloudflare Pages will not redeploy until the local commits reach GitHub. artifact
NETWORK_FAIL medium public_pages_url_final Final curl to https://mobile-inventory-testing.pages.dev failed because the host could not resolve from this runtime, so the public Pages deployment could not be verified. artifact
publication publication not recorded finished 10
1 pass, 0 info, 0 skipped
1 8 2026-06-06 10:34:48 UTC
continuous-qa-20260606T093332Z Mobile Inventory continuous QA cycle continuous_mobile_inventory_qa
Mobile Inventory continuous QA cycle
Show 12 recorded checks
StatusSeverityCheckEvidence
INFRA medium github_fetch_prune git fetch --prune github failed with cannot open .git/FETCH_HEAD: Operation not permitted. Continued with read-only current qa snapshot and local master git-object comparisons. artifact
DEVICE_FAIL medium adb_devices_package_state adb is not on PATH; adb devices, emulator boot state, installed package state, logcat, UI dumps, screenshots, and connected tests are invalid for this run. artifact
INFRA medium web_app_root WEB_APP_ROOT is unset and linked-projects/web-app is absent, so Web source sync, local DEV smoke, and Android/Web shared sync checks cannot run. artifact
NETWORK_FAIL medium common_local_ports curl to common local DEV Web ports 3000, 5173, 4173, and 8080 failed with connection refused. No Web smoke was claimed. artifact
PASS low source_permission_guards Manifest, PermissionHelper, Bluetooth printer chooser, product print dialog, and Labelcodes native print bridge all gate Android 12+ paired-printer access/printing behind BLUETOOTH_CONNECT and BLUETOOTH_SCAN permission checks. This does not close runtime issue #37 because adb and real Bluetooth hardware were unavailable. artifact
DEVICE_FAIL medium adb_preflight qa/settings/qa_test_printed_barcode_label_sizes_android.sh exited at preflight with Missing required command: adb. Runtime permission dialog, paired-printer list, and Android print preview checks remain invalid. artifact
FAIL high room_transaction_error_finalizer ImportDataInserter wraps default setup/delete/cache reads and row inserts in a Room transaction, but finalizes with Completable.doOnEvent and unconditionally calls setTransactionSuccessful before endTransaction. In RxJava doOnEvent receives a non-null throwable on error, so failed imports can still commit partial setup or row changes. artifact
FAIL high room_transaction_error_finalizer Read-only local master has the same doOnEvent finalizer, so #111 is not fixed in the available master snapshot. Latest GitHub master still could not be fetched. artifact
INFO info probe_refinement The first whole-file source check matched an earlier saved-address helper before printWithSavedBluetoothPrinter. A refined function-level slice showed the saved-printer print path requests permission before getPairedDevices, so no product bug was recorded. artifact
PASS low update_dashboard scripts/update_dashboard.py updated public/index.html, dashboard/dashboard.html.gz.b64, and dashboard/metadata.json from the testing repo QA store. artifact
NETWORK_FAIL medium git_push_origin_main git push origin main failed with Could not resolve host: github.com, so Cloudflare Pages automatic redeploy cannot start from this environment. artifact
NETWORK_FAIL medium pages_dns curl -I https://mobile-inventory-testing.pages.dev failed with Could not resolve host; public dashboard freshness could not be verified. artifact
publication dashboard not recorded finished_with_existing_product_issue_and_infra 12
2 pass, 1 info, 0 skipped
2 7 2026-06-06 09:33:32 UTC
cq-20260606T083319Z-3921 Mobile Inventory continuous QA cycle continuous_mobile_inventory_qa
Mobile Inventory continuous QA cycle
Show 15 recorded checks
StatusSeverityCheckEvidence
NETWORK_FAIL medium git_fetch_origin git fetch --prune origin failed with Could not resolve host: github.com. The testing repo remains ahead of origin until network returns. artifact
INFRA medium fetch_checkout_github_master git fetch --prune github failed with cannot open .git/FETCH_HEAD: Operation not permitted; checkout master failed creating .git/index.lock. Continued on readable qa snapshot. artifact
DEVICE_FAIL medium adb_devices_package_state adb is not on PATH; adb devices, emulator boot state, installed package state, logcat, UI dumps, screenshots, and connected tests are invalid for this run. artifact
DEVICE_FAIL medium emulator_binary command -v emulator returned not found, so no emulator boot or Pixel Tablet runtime validation could be run. artifact
INFRA medium discover_web_checkout WEB_APP_ROOT is unset and linked-projects/web-app is absent, so Web source sync, Web smoke, and Android/Web shared sync checks cannot run. artifact
NETWORK_FAIL medium common_dev_hosts curl to localhost ports 3000, 5173, and 8080 failed with connection refused; https://web.mi.binosol.com also failed DNS. No DEV Web smoke was claimed. artifact
NETWORK_FAIL medium pages_dns curl -I https://mobile-inventory-testing.pages.dev failed with Could not resolve host, so public redeploy visibility could not be checked from this environment. artifact
PASS low static_foundation_controls The standalone runner passed constants, strings, JSON migration, history query, ZapCount endpoints, editor, guardrail, and transaction quantity controls before the tablet overlay invariant. artifact
FAIL high tablet_zoom_overlay Current Android qa checkout still uses ImageView for layout-sw600dp fragment_product_detail expanded_image, so tablet product detail zoom cannot render CountImagePreviewImageView point metadata. Local master 762855e7 contains the static fix, but checkout/sync and runtime are blocked. artifact
FAIL high product_detail_tablet_expanded_image Phone product detail layout uses CountImagePreviewImageView, but tablet sw600dp expanded_image is a plain ImageView on the current qa checkout. This repeats the known tablet overlay loss and is not a new duplicate. artifact
PASS low phone_and_tablet_overlay_layouts Read-only git-object probe found CountImagePreviewImageView in both phone and sw600dp product detail layouts at local master 762855e7. This is not runtime confirmation and latest GitHub master could not be fetched. artifact
NETWORK_FAIL medium gradle_distribution_resolution qa/technical/qa_test_appcheck_token_cache_android.sh could not execute AppCheckTokenCacheTest because Gradle wrapper download failed with UnknownHostException services.gradle.org. A relative GRADLE_USER_HOME first attempt was ignored as harness setup noise, then rerun with an absolute run-local Gradle cache. artifact
FAIL high blocking_get_token_respects_failure_backoff AppCheckTokenCache.getTokenBlocking() calls fetchTokenFromFirebase() before checking nextAllowedFetchAt; refreshTokenAsync() checks cooldown first. AuditLogRepository requires getTokenBlocking() for audit-log flushes, so the audit-log worker can retry while still forcing App Check fetches during cooldown. artifact
INFO info dedupe_scope AuditLogFlushWorker delegates to AuditLogRepository.flushDueEventsForCurrentUser(true); sendBatch obtains App Check through getTokenBlocking(). This broadens evidence for #124 but does not justify a separate issue fingerprint. artifact
NETWORK_FAIL high git_push_origin_main git push origin main failed with Could not resolve host: github.com. Local dashboard commit 33790b6 is present, but Cloudflare Pages cannot redeploy until push succeeds. artifact
publication testing-repo not recorded finished_with_existing_product_issues_and_infra 15
2 pass, 1 info, 0 skipped
3 9 2026-06-06 08:33:19 UTC
cq-20260606T073320Z-7477 Count from Image field foundation and tablet overlay transactions.count_image.field_foundation.current_checkout
Count from Image field foundation and tablet overlay
Show 7 recorded checks
StatusSeverityCheckEvidence
FAIL high tablet_zoom_overlay Current Android qa checkout still uses ImageView for layout-sw600dp fragment_product_detail expanded_image, so tablet product detail zoom cannot render CountImagePreviewImageView point metadata. Local master 762855e7 contains the static fix, but checkout/sync is sandbox-blocked. artifact
FAIL high product_detail_tablet_expanded_image Tablet product detail layout-sw600dp still declares expanded_image as ImageView on the current qa checkout. Count image previews therefore lose point overlay behavior on tablet zoom. Local master 762855e7 statically changes this view to CountImagePreviewImageView. artifact
PASS low static_foundation_controls The updated standalone runner passed the Count from Image constants, JSON contract, ZapCount endpoint, editor, guardrail, and transaction quantity static controls before failing the tablet overlay invariant. artifact
INFRA medium github_fetch_checkout_master git fetch --prune github failed with cannot open .git/FETCH_HEAD: Operation not permitted; git checkout master failed creating .git/index.lock. Latest GitHub master coverage is invalid for this run. artifact
DEVICE_FAIL medium adb_devices command -v adb returned exit 1 and adb devices returned command not found, so emulator boot state, installed package state, UI dumps, screenshots, and logcat checks were blocked. artifact
INFRA medium web_app_root WEB_APP_ROOT is unset and linked-projects/web-app is absent, so Web source sync, local DEV smoke, and Android/Web shared sync checks cannot run. artifact
NETWORK_FAIL medium web_mi_binosol_dns curl -I https://web.mi.binosol.com/ failed with Could not resolve host; localhost:3000 also had no server. DEV Web smoke is invalid in this environment. artifact
regression android not recorded finished_with_product_fail_and_infra 7
1 pass, 0 info, 0 skipped
2 4 2026-06-06 07:33:20 UTC
cq-20260606T073320Z-7477-local-master-readonly Local master Count from Image tablet overlay read-only probe transactions.count_image.tablet_overlay.local_master_readonly
Local master Count from Image tablet overlay read-only probe
Show 1 recorded checks
StatusSeverityCheckEvidence
PASS low phone_and_tablet_overlay_layouts Read-only git-object probe found CountImagePreviewImageView in both phone and sw600dp product detail layouts at local master 762855e7. This is not a runtime confirmation and latest GitHub master could not be fetched. artifact
latest_commit android not recorded finished 1
1 pass, 0 info, 0 skipped
0 0 2026-06-06 07:33:20 UTC

Autonomous Next Tests

Recommended QA work generated from current issue state, coverage staleness, and commit freshness.

PriorityTypeLaneRecommendationUpdated
90 confirm_issue rerun
android
Rerun and confirm issue #124: Blocking App Check token fetch ignores failure backoff Active product issue needs rerun confirmation before release triage treats it as stable evidence. 2026-06-06 11:20:16 UTC
90 confirm_issue rerun
android
Rerun and confirm issue #111: Product import transaction commits after setup error Active product issue needs rerun confirmation before release triage treats it as stable evidence. 2026-06-06 11:20:16 UTC
90 confirm_issue rerun
android
Rerun and confirm issue #70: Tablet count-image zoom drops point overlay Active product issue needs rerun confirmation before release triage treats it as stable evidence. 2026-06-06 11:20:16 UTC
90 confirm_issue rerun
android
Rerun and confirm issue #10: Tablet zoom loses Count from Image overlay metadata Active product issue needs rerun confirmation before release triage treats it as stable evidence. 2026-06-06 11:20:16 UTC
90 confirm_issue rerun
android
Rerun and confirm issue #36: printed_barcode_configs_copy_paths Active product issue needs rerun confirmation before release triage treats it as stable evidence. 2026-06-06 11:20:16 UTC

Coverage

Area-level check volume, failure pressure, thin coverage, and recent evidence.

Areas47
Checks1222
Failures39
Latest Evidence2026-06-06

Coverage Bubble Map

Bubble size is check volume. Color and ring strength show failure pressure. Dashed bubbles have thin coverage.

No failures Has failures High pressure
transactions 469 10 fails
count-image 110 0 fails
unassigned 93 1 fail
infra 87 0 fails
qa 77 0 fails
repo 48 0 fails
infrastructure 48 0 fails
continuous_qa 47 0 fails
android_runtime 37 0 fails
web 25 0 fails
build 20 0 fails
printing 16 5 fails
scanner 15 1 fail
environment 13 0 fails
settings 12 7 fails
device 12 0 fails
technical 10 5 fails
tooling 9 0 fails
publication 9 0 fails
continuous 7 1 fail
imports 5 3 fails
qa-strategy 5 0 fails
qa_infra 4 4 fails
qa_strategy 4 0 fails
network 4 0 fails
bluetooth_printing 3 2 fails
strategy 3 0 fails
qa_learning 3 0 fails
android_build 3 0 fails
source-sync 2 0 fails
shared-inventory 2 0 fails
runtime 2 0 fails
release 2 0 fails
qa_tooling 2 0 fails
products 2 0 fails
scanner_plus 1 0 fails
repo_sync 1 0 fails
release_readiness 1 0 fails
qa_store 1 0 fails
localization 1 0 fails
gradle 1 0 fails
dev_web 1 0 fails
dev-web 1 0 fails
dashboard 1 0 fails
continuous-qa 1 0 fails
android_host 1 0 fails
android 1 0 fails

Failure Pressure

qa_infra 4 fails · 100% rate · 4 checks
bluetooth_printing 2 fails · 67% rate · 3 checks
imports 3 fails · 60% rate · 5 checks
settings 7 fails · 58% rate · 12 checks
technical 5 fails · 50% rate · 10 checks
printing 5 fails · 31% rate · 16 checks

Thin Coverage

android 1 check · last 2026-06-04 13:11:12 UTC
android_host 1 check · last 2026-06-04 23:16:31 UTC
continuous-qa 1 check · last 2026-06-06 02:37:24 UTC
dashboard 1 check · last 2026-06-05 23:41:34 UTC
dev-web 1 check · last 2026-06-06 02:37:24 UTC
dev_web 1 check · last 2026-06-04 23:16:31 UTC
Show exact coverage table
AreaChecksFailuresLast Seen
technical 10 5 2026-06-06 10:34:48 UTC
scanner 15 1 2026-06-06 10:34:48 UTC
infra 87 0 2026-06-06 10:34:48 UTC
device 12 0 2026-06-06 10:34:48 UTC
tooling 9 0 2026-06-06 09:33:32 UTC
settings 12 7 2026-06-06 09:33:32 UTC
publication 9 0 2026-06-06 09:33:32 UTC
infrastructure 48 0 2026-06-06 09:33:32 UTC
imports 5 3 2026-06-06 09:33:32 UTC
transactions 469 10 2026-06-06 08:33:19 UTC
unassigned 93 1 2026-06-06 05:31:36 UTC
products 2 0 2026-06-06 05:31:36 UTC
source-sync 2 0 2026-06-06 02:37:24 UTC
dev-web 1 0 2026-06-06 02:37:24 UTC
continuous-qa 1 0 2026-06-06 02:37:24 UTC
build 20 0 2026-06-06 02:37:24 UTC
count-image 110 0 2026-06-06 01:36:31 UTC
shared-inventory 2 0 2026-06-06 00:29:09 UTC
dashboard 1 0 2026-06-05 23:41:34 UTC
printing 16 5 2026-06-05 23:35:53 UTC
environment 13 0 2026-06-05 23:35:53 UTC
network 4 0 2026-06-05 19:38:15 UTC
continuous 7 1 2026-06-05 19:36:51 UTC
gradle 1 0 2026-06-05 19:29:30 UTC
repo_sync 1 0 2026-06-05 19:28:00 UTC
web 25 0 2026-06-05 18:26:19 UTC
repo 48 0 2026-06-05 18:26:19 UTC
continuous_qa 47 0 2026-06-05 18:26:19 UTC
android_runtime 37 0 2026-06-05 18:26:19 UTC
android_build 3 0 2026-06-05 18:26:19 UTC
qa_infra 4 4 2026-06-05 17:32:34 UTC
release 2 0 2026-06-05 15:31:29 UTC
qa_strategy 4 0 2026-06-05 10:28:09 UTC
qa-strategy 5 0 2026-06-05 08:21:28 UTC
qa 77 0 2026-06-05 07:19:40 UTC
qa_store 1 0 2026-06-05 02:24:42 UTC
scanner_plus 1 0 2026-06-05 00:15:47 UTC
dev_web 1 0 2026-06-04 23:16:31 UTC
android_host 1 0 2026-06-04 23:16:31 UTC
qa_tooling 2 0 2026-06-04 21:14:14 UTC
qa_learning 3 0 2026-06-04 21:14:14 UTC
localization 1 0 2026-06-04 21:14:14 UTC
release_readiness 1 0 2026-06-04 19:12:27 UTC
bluetooth_printing 3 2 2026-06-04 19:12:27 UTC
android 1 0 2026-06-04 13:11:12 UTC
strategy 3 0 2026-06-04 10:47:36 UTC
runtime 2 0 2026-06-04 09:52:54 UTC