Output:
Chunk ID: cc750f
Wall time: 0.3741 seconds
Process exited with code 0
Original token count: 13634
Output:
Total output lines: 479

app/src/benchmark/AndroidManifest.xml
app/src/benchmark/java/com/yorvana/benchmark/BenchmarkSeedActivity.kt
macrobenchmark/README.md
macrobenchmark/baselines/README.md
macrobenchmark/baselines/baselines.json
macrobenchmark/build.gradle.kts
macrobenchmark/build/intermediates/android_res_source_set_path_map/benchmark/mapBenchmarkSourceSetPaths/file-map.txt
macrobenchmark/build/intermediates/annotation_processor_list/benchmark/javaPreCompileBenchmark/annotationProcessors.json
macrobenchmark/build/intermediates/apk_ide_redirect_file/benchmark/createBenchmarkApkListingFileRedirect/redirect.txt
macrobenchmark/build/intermediates/assets/benchmark/mergeBenchmarkAssets/trace_processor_shell_aarch64
macrobenchmark/build/intermediates/assets/benchmark/mergeBenchmarkAssets/trace_processor_shell_arm
macrobenchmark/build/intermediates/assets/benchmark/mergeBenchmarkAssets/trace_processor_shell_x86
macrobenchmark/build/intermediates/assets/benchmark/mergeBenchmarkAssets/trace_processor_shell_x86_64
macrobenchmark/build/intermediates/assets/benchmark/mergeBenchmarkAssets/tracebox_aarch64
macrobenchmark/build/intermediates/assets/benchmark/mergeBenchmarkAssets/tracebox_arm
macrobenchmark/build/intermediates/assets/benchmark/mergeBenchmarkAssets/tracebox_x86
macrobenchmark/build/intermediates/assets/benchmark/mergeBenchmarkAssets/tracebox_x86_64
macrobenchmark/build/intermediates/built_in_kotlinc/benchmark/compileBenchmarkKotlin/classes/META-INF/macrobenchmark.kotlin_module
macrobenchmark/build/intermediates/built_in_kotlinc/benchmark/compileBenchmarkKotlin/classes/com/yorvana/macrobenchmark/BenchmarkFixtures.class
macrobenchmark/build/intermediates/built_in_kotlinc/benchmark/compileBenchmarkKotlin/classes/com/yorvana/macrobenchmark/BenchmarkTags.class
macrobenchmark/build/intermediates/built_in_kotlinc/benchmark/compileBenchmarkKotlin/classes/com/yorvana/macrobenchmark/YorvanaBenchmark$Companion.class
macrobenchmark/build/intermediates/built_in_kotlinc/benchmark/compileBenchmarkKotlin/classes/com/yorvana/macrobenchmark/YorvanaBenchmark.class
macrobenchmark/build/intermediates/compile_and_runtime_r_class_jar/benchmark/processBenchmarkResources/R.jar
macrobenchmark/build/intermediates/compile_r_class_jar/benchmark/generateBenchmarkRFile/R.jar
macrobenchmark/build/intermediates/compile_symbol_list/benchmark/generateBenchmarkRFile/R.txt
macrobenchmark/build/intermediates/compressed_assets/benchmark/compressBenchmarkAssets/out/assets/trace_processor_shell_aarch64.jar
macrobenchmark/build/intermediates/compressed_assets/benchmark/compressBenchmarkAssets/out/assets/trace_processor_shell_arm.jar
macrobenchmark/build/intermediates/compressed_assets/benchmark/compressBenchmarkAssets/out/assets/trace_processor_shell_x86.jar
macrobenchmark/build/intermediates/compressed_assets/benchmark/compressBenchmarkAssets/out/assets/trace_processor_shell_x86_64.jar
macrobenchmark/build/intermediates/compressed_assets/benchmark/compressBenchmarkAssets/out/assets/tracebox_aarch64.jar
macrobenchmark/build/intermediates/compressed_assets/benchmark/compressBenchmarkAssets/out/assets/tracebox_arm.jar
macrobenchmark/build/intermediates/compressed_assets/benchmark/compressBenchmarkAssets/out/assets/tracebox_x86.jar
macrobenchmark/build/intermediates/compressed_assets/benchmark/compressBenchmarkAssets/out/assets/tracebox_x86_64.jar
macrobenchmark/build/intermediates/d8_metadata/benchmark/mergeDexBenchmark/d8-metadata.dat
macrobenchmark/build/intermediates/desugar_graph/benchmark/dexBuilderBenchmark/out/currentProject/dirs_bucket_0/graph.bin
macrobenchmark/build/intermediates/desugar_graph/benchmark/dexBuilderBenchmark/out/currentProject/dirs_bucket_1/graph.bin
macrobenchmark/build/intermediates/desugar_graph/benchmark/dexBuilderBenchmark/out/currentProject/jar_c85377f481e02a39fb23b8dbf306d64a56b4b7f6545199bc09c023e73c9ada53_bucket_0/graph.bin
macrobenchmark/build/intermediates/desugar_graph/benchmark/dexBuilderBenchmark/out/currentProject/jar_c85377f481e02a39fb23b8dbf306d64a56b4b7f6545199bc09c023e73c9ada53_bucket_1/graph.bin
macrobenchmark/build/intermediates/desugar_graph/benchmark/dexBuilderBenchmark/out/externalLibs/dirs_bucket_0/graph.bin
macrobenchmark/build/intermediates/desugar_graph/benchmark/dexBuilderBenchmark/out/externalLibs/dirs_bucket_1/graph.bin
macrobenchmark/build/intermediates/desugar_graph/benchmark/dexBuilderBenchmark/out/mixedScopes/dirs_bucket_0/graph.bin
macrobenchmark/build/intermediates/desugar_graph/benchmark/dexBuilderBenchmark/out/mixedScopes/dirs_bucket_1/graph.bin
macrobenchmark/build/intermediates/desugar_graph/benchmark/dexBuilderBenchmark/out/otherProjects/dirs_bucket_0/graph.bin
macrobenchmark/build/intermediates/desugar_graph/benchmark/dexBuilderBenchmark/out/otherProjects/dirs_bucket_1/graph.bin
macrobenchmark/build/intermediates/dex/benchmark/mergeDexBenchmark/classes.dex
macrobenchmark/build/intermediates/dex_archive_input_jar_hashes/benchmark/dexBuilderBenchmark/out
macrobenchmark/build/intermediates/dex_number_of_buckets_file/benchmark/dexBuilderBenchmark/out
macrobenchmark/build/intermediates/external_libs_dex/benchmark/mergeExtDexBenchmark/classes.dex
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/merge-state
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/00YApKj50HaoK9wH1Z0nCA==
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/2jhP7CxtwKQNEbl6kopyFg==
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/4ELNwSYhBH4bswygrYOasw==
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/8C7INIzJaQaVP9kKHKF30g==
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/AyH+HVDA7u_O4aP7u3Q_7Q==
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/D_MMUzOgirjpw1fxCvKRTQ==
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/DyLWRj4Q8t8zVStnkEKn1g==
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/IpaECou6fkSygzn27LkwVA==
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/JsBwBDOhWf7wapsniKzRwQ==
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/M2n0bIwB3fsgdOk_t2z0tQ==
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/UnT+FObeqJV3TzYR1h_sGA==
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/Uz2buovkEmXvF0OXAxyzhA==
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/bT8nm5xeNNEHQRqtSeFxAQ==
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/ceGl4dZ+PBXiDrIh1OscEg==
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/czorg323P8L0O+k2SnNBaw==
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/lrSncKs7QCCeljSNXQbFkg==
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/mz7q4HHcKWj_zPKS1RvDig==
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/oacvM3DmGS6FFesovhZ9EA==
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/q4wUvLtSzGAAzmxL2qNSTQ==
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/t1be9p7_OcZKepSPF4dPZA==
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/tW+Up5bxrc1yOr_f38GbBQ==
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/urvk3Z8MwPS9EJjtOdRV4g==
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/v2BMudog9IU9BOs1qtoi2Q==
macrobenchmark/build/intermediates/incremental/benchmark-mergeJavaRes/zip-cache/zPhu56Csa7ru0sM+D2Cceg==
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/compile-file-map.properties
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-af/values-af.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-am/values-am.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-ar/values-ar.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-as/values-as.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-az/values-az.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-b+sr+Latn/values-b+sr+Latn.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-be/values-be.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-bg/values-bg.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-bn/values-bn.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-bs/values-bs.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-ca/values-ca.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-cs/values-cs.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-da/values-da.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-de/values-de.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-el/values-el.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-en-rAU/values-en-rAU.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-en-rCA/values-en-rCA.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-en-rGB/values-en-rGB.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-en-rIN/values-en-rIN.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-en-rXC/values-en-rXC.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-es-rUS/values-es-rUS.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-es/values-es.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-et/values-et.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-eu/values-eu.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-fa/values-fa.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-fi/values-fi.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-fr-rCA/values-fr-rCA.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-fr/values-fr.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-gl/values-gl.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-gu/values-gu.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-hi/values-hi.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-hr/values-hr.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-hu/values-hu.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-hy/values-hy.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-in/values-in.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-is/values-is.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-it/values-it.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-iw/values-iw.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-ja/values-ja.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-ka/values-ka.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-kk/values-kk.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-km/values-km.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-kn/values-kn.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-ko/values-ko.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-ky/values-ky.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-lo/values-lo.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-lt/values-lt.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-lv/values-lv.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-mk/values-mk.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-ml/values-ml.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-mn/values-mn.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-mr/values-mr.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-ms/values-ms.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-my/values-my.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-nb/values-nb.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-ne/values-ne.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-nl/values-nl.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-or/values-or.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-pa/values-pa.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-pl/values-pl.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-pt-rBR/values-pt-rBR.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-pt-rPT/values-pt-rPT.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-pt/values-pt.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-ro/values-ro.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-ru/values-ru.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-si/values-si.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-sk/values-sk.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-sl/values-sl.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-sq/values-sq.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-sr/values-sr.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-sv/values-sv.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-sw/values-sw.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-ta/values-ta.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-te/values-te.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-th/values-th.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-tl/values-tl.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-tr/values-tr.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-uk/values-uk.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-ur/values-ur.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-uz/values-uz.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-v16/values-v16.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-v18/values-v18.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-v21/values-v21.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-v28/values-v28.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-vi/values-vi.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-zh-rCN/values-zh-rCN.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-zh-rHK/values-zh-rHK.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-zh-rTW/values-zh-rTW.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values-zu/values-zu.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merged.dir/values/values.xml
macrobenchmark/build/intermediates/incremental/benchmark/mergeBenchmarkResources/merger.xml
macrobenchmark/build/intermediates/incremental/benchmark/packageBenchmarkResources/compile-file-map.properties
macrobenchmark/build/intermediates/incremental/benchmark/packageBenchmarkResources/merger.xml
macrobenchmark/build/intermediates/incremental/mergeBenchmarkAssets/merger.xml
macrobenchmark/build/intermediates/incremental/mergeBenchmarkJniLibFolders/merger.xml
macrobenchmark/build/intermediates/incremental/packageBenchmark/tmp/benchmark/dex-renamer-state.txt
macrobenchmark/build/intermediates/incremental/packageBenchmark/tmp/benchmark/zip-cache/androidResources
macrobenchmark/build/intermediates/incremental/packageBenchmark/tmp/benchmark/zip-cache/javaResources0
macrobenchmark/build/intermediates/java_res/benchmark/processBenchmarkJavaRes/out/META-INF/macrobenchmark.kotlin_module
macrobenchmark/build/intermediates/linked_resources_binary_format/benchmark/processBenchmarkResources/linked-resources-binary-format.ap_
macrobenchmark/build/intermediates/linked_resources_binary_format/benchmark/processBenchmarkResources/output-metadata.json
macrobenchmark/build/intermediates/local_only_symbol_list/benchmark/parseBenchmarkLocalResources/R-def.txt
macrobenchmark/build/intermediates/manifest_merge_blame_file/benchmark/processBenchmarkManifest/manifest-merger-blame-benchmark-report.txt
macrobenchmark/build/intermediates/merged_java_res/benchmark/mergeBenchmarkJavaResource/feature-macrobenchmark.jar
macrobenchmark/build/intermediates/merged_native_libs/benchmark/mergeBenchmarkNativeLi…3634 tokens truncated…ates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-gl.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-gu.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-hi.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-hr.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-hu.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-hy.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-in.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-is.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-it.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-iw.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-ja.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-ka.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-kk.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-km.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-kn.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-ko.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-ky.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-lo.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-lt.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-lv.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-mk.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-ml.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-mn.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-mr.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-ms.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-my.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-nb.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-ne.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-nl.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-or.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-pa.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-pl.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-pt-rBR.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-pt-rPT.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-pt.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-ro.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-ru.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-si.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-sk.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-sl.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-sq.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-sr.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-sv.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-sw.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-ta.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-te.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-th.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-tl.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-tr.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-uk.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-ur.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-uz.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-v16.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-v18.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-v21.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-v28.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-vi.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-zh-rCN.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-zh-rHK.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-zh-rTW.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values-zu.json
macrobenchmark/build/intermediates/merged_res_blame_folder/benchmark/mergeBenchmarkResources/out/multi-v2/values.json
macrobenchmark/build/intermediates/nested_resources_validation_report/benchmark/generateBenchmarkResources/nestedResourcesValidationReport.txt
macrobenchmark/build/intermediates/packaged_manifests/benchmark/processBenchmarkManifest/AndroidManifest.xml
macrobenchmark/build/intermediates/packaged_manifests/benchmark/processBenchmarkManifest/output-metadata.json
macrobenchmark/build/intermediates/project_dex_archive/benchmark/dexBuilderBenchmark/out/a679daf9c5d4f588dbee2ea5f5a80e6698a7c3f7d7122e2ffea08682072e6751_0.jar
macrobenchmark/build/intermediates/project_dex_archive/benchmark/dexBuilderBenchmark/out/a679daf9c5d4f588dbee2ea5f5a80e6698a7c3f7d7122e2ffea08682072e6751_1.jar
macrobenchmark/build/intermediates/project_dex_archive/benchmark/dexBuilderBenchmark/out/com/yorvana/macrobenchmark/BenchmarkFixtures.dex
macrobenchmark/build/intermediates/project_dex_archive/benchmark/dexBuilderBenchmark/out/com/yorvana/macrobenchmark/BenchmarkTags.dex
macrobenchmark/build/intermediates/project_dex_archive/benchmark/dexBuilderBenchmark/out/com/yorvana/macrobenchmark/YorvanaBenchmark$Companion.dex
macrobenchmark/build/intermediates/project_dex_archive/benchmark/dexBuilderBenchmark/out/com/yorvana/macrobenchmark/YorvanaBenchmark.dex
macrobenchmark/build/intermediates/runtime_symbol_list/benchmark/processBenchmarkResources/R.txt
macrobenchmark/build/intermediates/signing_config_versions/benchmark/writeBenchmarkSigningConfigVersions/signing-config-versions.json
macrobenchmark/build/intermediates/stable_resource_ids_file/benchmark/processBenchmarkResources/stableIds.txt
macrobenchmark/build/intermediates/stripped_native_libs/benchmark/stripBenchmarkDebugSymbols/out/lib/arm64-v8a/libbenchmarkNative.so
macrobenchmark/build/intermediates/stripped_native_libs/benchmark/stripBenchmarkDebugSymbols/out/lib/arm64-v8a/libtracing_perfetto.so
macrobenchmark/build/intermediates/stripped_native_libs/benchmark/stripBenchmarkDebugSymbols/out/lib/armeabi-v7a/libbenchmarkNative.so
macrobenchmark/build/intermediates/stripped_native_libs/benchmark/stripBenchmarkDebugSymbols/out/lib/armeabi-v7a/libtracing_perfetto.so
macrobenchmark/build/intermediates/stripped_native_libs/benchmark/stripBenchmarkDebugSymbols/out/lib/x86/libbenchmarkNative.so
macrobenchmark/build/intermediates/stripped_native_libs/benchmark/stripBenchmarkDebugSymbols/out/lib/x86/libtracing_perfetto.so
macrobenchmark/build/intermediates/stripped_native_libs/benchmark/stripBenchmarkDebugSymbols/out/lib/x86_64/libbenchmarkNative.so
macrobenchmark/build/intermediates/stripped_native_libs/benchmark/stripBenchmarkDebugSymbols/out/lib/x86_64/libtracing_perfetto.so
macrobenchmark/build/intermediates/symbol_list_with_package_name/benchmark/generateBenchmarkRFile/package-aware-r.txt
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.keystream
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.keystream.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.values.at
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab_i.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.keystream
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.keystream.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.values.at
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab_i.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/inputs/source-to-output.tab
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/lookups/counters.tab
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/lookups/file-to-id.tab
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/lookups/id-to-file.tab
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/lookups/lookups.tab
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/lookups/lookups.tab.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/lookups/lookups.tab_i
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len
macrobenchmark/build/kotlin/compileBenchmarkKotlin/cacheable/last-build.bin
macrobenchmark/build/kotlin/compileBenchmarkKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin
macrobenchmark/build/outputs/apk/benchmark/macrobenchmark-benchmark.apk
macrobenchmark/build/outputs/apk/benchmark/output-metadata.json
macrobenchmark/src/main/AndroidManifest.xml
macrobenchmark/src/main/java/com/yorvana/macrobenchmark/BenchmarkFixtures.kt
macrobenchmark/src/main/java/com/yorvana/macrobenchmark/BenchmarkTags.kt
macrobenchmark/src/main/java/com/yorvana/macrobenchmark/YorvanaBenchmark.kt


Output:
Chunk ID: 780945
Wall time: 0.1198 seconds
Process exited with code 0
Original token count: 99
Output:
*.iml
.gradle
/local.properties
/.idea
.DS_Store
/build
app/build
/captures
.externalNativeBuild
.cxx
.kotlin
.claude
.gemini/
sample-vault/Yorvana/
sample-vault/Yorvana.zip

# JVM crash logs
hs_err_pid*.log

# Python helper caches
__pycache__/
*.py[cod]

# Release signing secrets
app/upload.jks
app/keystore.properties
commit_msg*.txt
.antigravitycli/

# Local emulator/controller state
.tmp/


The new module’s generated `build/` output is showing up because the repo only ignores the root and app build directories. I’m adding `macrobenchmark/build` to `.gitignore` so generated benchmark artifacts don’t become commit noise.


Input:
*** Begin Patch
*** Update File: /home/Messier82/projects/service-book/.gitignore
@@
 /build
 app/build
+macrobenchmark/build
 /captures
*** End Patch


Success. Updated the following files:
M /home/Messier82/projects/service-book/.gitignore

@@ -7,2 +7,3 @@
 app/build
+macrobenchmark/build
 /captures


Output:
Exit code: 0
Wall time: 0.9 seconds
Output:
Success. Updated the following files:
M /home/Messier82/projects/service-book/.gitignore


Output:
Chunk ID: 9c5437
Wall time: 0.3210 seconds
Process exited with code 0
Original token count: 120
Output:
 M .github/workflows/regression.yml
 M .gitignore
 M app/build.gradle.kts
 M app/src/main/java/com/yorvana/MainActivity.kt
 M app/src/main/java/com/yorvana/ui/TestTags.kt
 M app/src/main/java/com/yorvana/ui/navigation/AppNavGraph.kt
 M app/src/main/java/com/yorvana/ui/records/VehicleDetailScreen.kt
 M app/src/main/java/com/yorvana/ui/vehicles/VehicleListScreen.kt
 M build.gradle.kts
 M gradle/libs.versions.toml
 M settings.gradle.kts
?? app/src/benchmark/
?? macrobenchmark/


Output:
Chunk ID: 21639e
Wall time: 0.3168 seconds
Process exited with code 0
Original token count: 193
Output:
 .github/workflows/regression.yml                      |  5 ++++-
 .gitignore                                            |  1 +
 app/build.gradle.kts                                  | 19 +++++++++++++++++--
 app/src/main/java/com/yorvana/MainActivity.kt         |  7 ++++++-
 app/src/main/java/com/yorvana/ui/TestTags.kt          |  2 ++
 .../java/com/yorvana/ui/navigation/AppNavGraph.kt     |  7 +++++--
 .../com/yorvana/ui/records/VehicleDetailScreen.kt     |  1 +
 .../java/com/yorvana/ui/vehicles/VehicleListScreen.kt |  1 +
 build.gradle.kts                                      |  1 +
 gradle/libs.versions.toml                             |  3 +++
 settings.gradle.kts                                   |  1 +
 11 files changed, 42 insertions(+), 6 deletions(-)


Output:
Chunk ID: cc3e61
Wall time: 0.3407 seconds
Process exited with code 0
Original token count: 0
Output:


One final scenario detail: the 200-record fixture sorts newest records first, so the navigation benchmark should click a visible high-ordinal record instead of `record-001`. I’m switching M-04 to the visible seeded record.


Input:
*** Begin Patch
*** Update File: /home/Messier82/projects/service-book/macrobenchmark/src/main/java/com/yorvana/macrobenchmark/YorvanaBenchmark.kt
@@
             device.waitForObject(BenchmarkFixtures.vehicleItem(1)).click()
             device.waitForObject(BenchmarkTags.RECORD_LIST)
-            device.waitForObject(BenchmarkFixtures.recordItem(1)).click()
+            device.waitForObject(BenchmarkFixtures.recordItem(200)).click()
*** End Patch


Success. Updated the following files:
M /home/Messier82/projects/service-book/macrobenchmark/src/main/java/com/yorvana/macrobenchmark/YorvanaBenchmark.kt

@@ -92,3 +92,3 @@
             device.waitForObject(BenchmarkTags.RECORD_LIST)
-            device.waitForObject(BenchmarkFixtures.recordItem(1)).click()
+            device.waitForObject(BenchmarkFixtures.recordItem(200)).click()
             device.waitForIdle()


Output:
Exit code: 0
Wall time: 0.9 seconds
Output:
Success. Updated the following files:
M /home/Messier82/projects/service-book/macrobenchmark/src/main/java/com/yorvana/macrobenchmark/YorvanaBenchmark.kt


Output:
Chunk ID: 8884b6
Wall time: 1.0008 seconds
Process running with session ID 2977
Original token count: 115
Output:
Picked up JAVA_TOOL_OPTIONS: -Xlog:os+container=off

> Configure project :app
WARNING: The option setting 'android.testoptions.manageddevices.emulator.gpu=host' is experimental.

> Task :macrobenchmark:preBuild UP-TO-DATE
> Task :app:preBuild UP-TO-DATE
> Task :macrobenchmark:preBenchmarkBuild UP-TO-DATE
> Task :app:preBenchmarkBuild UP-TO-DATE
> Task :macrobenchmark:generateBenchmarkResources UP-TO-DATE
> Task :app:generateBenchmarkBuildConfig UP-TO-DATE


Output:
Chunk ID: c6973d
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 519
Output:
> Task :app:generateBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:packageBenchmarkResources UP-TO-DATE
> Task :app:packageBenchmarkResources UP-TO-DATE
> Task :app:processBenchmarkNavigationResources UP-TO-DATE
> Task :app:parseBenchmarkLocalResources UP-TO-DATE
> Task :app:generateBenchmarkRFile UP-TO-DATE
> Task :app:compileBenchmarkKotlin UP-TO-DATE
> Task :app:javaPreCompileBenchmark UP-TO-DATE
> Task :app:compileBenchmarkJavaWithJavac UP-TO-DATE
> Task :app:checkBenchmarkAarMetadata UP-TO-DATE
> Task :app:mapBenchmarkSourceSetPaths UP-TO-DATE
> Task :app:compileBenchmarkNavigationResources UP-TO-DATE
> Task :app:mergeBenchmarkResources UP-TO-DATE
> Task :app:createBenchmarkCompatibleScreenManifests UP-TO-DATE
> Task :app:extractDeepLinksBenchmark UP-TO-DATE
> Task :app:processBenchmarkMainManifest UP-TO-DATE
> Task :app:processBenchmarkManifest UP-TO-DATE
> Task :app:processBenchmarkManifestForPackage UP-TO-DATE
> Task :app:processBenchmarkResources UP-TO-DATE
> Task :app:bundleBenchmarkClassesToCompileJar UP-TO-DATE
> Task :app:generateBenchmarkFeatureTransitiveDeps UP-TO-DATE
> Task :macrobenchmark:processBenchmarkNavigationResources UP-TO-DATE
> Task :macrobenchmark:parseBenchmarkLocalResources UP-TO-DATE
> Task :macrobenchmark:generateBenchmarkRFile UP-TO-DATE
> Task :macrobenchmark:compileBenchmarkKotlin

[Incubating] Problems report is available at: file:///home/Messier82/projects/service-book/build/reports/problems/problems-report.html

Deprecated Gradle features were used in this build, making it incompatible with Gradle 10.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

For more on this, please refer to https://docs.gradle.org/9.5.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

BUILD SUCCESSFUL in 3s
27 actionable tasks: 1 executed, 26 up-to-date
Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.5.1/userguide/configuration_cache_enabling.html


find macrobenchmark app/src/benchmark -path '*/build' -prune -o -type f -print | sort


Output:
Chunk ID: c433da
Wall time: 0.3316 seconds
Process exited with code 0
Original token count: 0
Output:


Output:
Chunk ID: 29fdad
Wall time: 0.3202 seconds
Process exited with code 0
Original token count: 120
Output:
 M .github/workflows/regression.yml
 M .gitignore
 M app/build.gradle.kts
 M app/src/main/java/com/yorvana/MainActivity.kt
 M app/src/main/java/com/yorvana/ui/TestTags.kt
 M app/src/main/java/com/yorvana/ui/navigation/AppNavGraph.kt
 M app/src/main/java/com/yorvana/ui/records/VehicleDetailScreen.kt
 M app/src/main/java/com/yorvana/ui/vehicles/VehicleListScreen.kt
 M build.gradle.kts
 M gradle/libs.versions.toml
 M settings.gradle.kts
?? app/src/benchmark/
?? macrobenchmark/


Output:
Chunk ID: d63eee
Wall time: 0.3135 seconds
Process exited with code 0
Original token count: 128
Output:
app/src/benchmark/AndroidManifest.xml
app/src/benchmark/java/com/yorvana/benchmark/BenchmarkSeedActivity.kt
macrobenchmark/README.md
macrobenchmark/baselines/README.md
macrobenchmark/baselines/baselines.json
macrobenchmark/build.gradle.kts
macrobenchmark/src/main/AndroidManifest.xml
macrobenchmark/src/main/java/com/yorvana/macrobenchmark/BenchmarkFixtures.kt
macrobenchmark/src/main/java/com/yorvana/macrobenchmark/BenchmarkTags.kt
macrobenchmark/src/main/java/com/yorvana/macrobenchmark/YorvanaBenchmark.kt


One caveat I’m checking before closing: the code and CI now produce benchmark JSON artifacts, but the first real 5-run calibration could not complete because the emulator never started. I’m making sure the final status distinguishes implemented wiring from the blocked calibration data.


rg -n "class MacrobenchmarkRule|fun measureRepeated|measureRepeated" ~/.gradle/caches/modules-2/files-2.1/androidx.benchmark/benchmark-macro-junit4 ~/.gradle/caches/modules-2/files-2.1/androidx.benchmark/benchmark-macro -g '*.kt' -g '*.java'


Output:
Chunk ID: 16d5d2
Wall time: 0.1334 seconds
Process exited with code 1
Original token count: 0
Output:


find ~/.gradle/caches/modules-2/files-2.1/androidx.benchmark -path '*benchmark-macro*1.4.1*' -type f | sed -n '1,80p'


Output:
Chunk ID: 545937
Wall time: 0.1253 seconds
Process exited with code 0
Original token count: 251
Output:
/home/Messier82/.gradle/caches/modules-2/files-2.1/androidx.benchmark/benchmark-macro-junit4/1.4.1/407ef7a4ec4f54dce2e0f538b8d34c475edc946c/benchmark-macro-junit4-1.4.1.pom
/home/Messier82/.gradle/caches/modules-2/files-2.1/androidx.benchmark/benchmark-macro-junit4/1.4.1/7b727f0d0369bd0568460e7471bbbc25ece9d7d3/benchmark-macro-junit4-1.4.1.module
/home/Messier82/.gradle/caches/modules-2/files-2.1/androidx.benchmark/benchmark-macro-junit4/1.4.1/99deb675c862fdffa041fef4d437e2cfec55d929/benchmark-macro-junit4-1.4.1.aar
/home/Messier82/.gradle/caches/modules-2/files-2.1/androidx.benchmark/benchmark-macro/1.4.1/af247dea2c9f418acc357c51ba091e1ac431503a/benchmark-macro-1.4.1.pom
/home/Messier82/.gradle/caches/modules-2/files-2.1/androidx.benchmark/benchmark-macro/1.4.1/79184502d6d2e4aa06962012f1cf8f4245671a96/benchmark-macro-1.4.1.module
/home/Messier82/.gradle/caches/modules-2/files-2.1/androidx.benchmark/benchmark-macro/1.4.1/e203f66c9fd98f135b74c96a20bd767c0fe2b145/benchmark-macro-1.4.1.aar


unzip -l ~/.gradle/caches/modules-2/files-2.1/androidx.benchmark/benchmark-macro-junit4/1.4.1/99deb675c862fdffa041fef4d437e2cfec55d929/benchmark-macro-junit4-1.4.1.aar | sed -n '1,80p'


Output:
Chunk ID: 2fbe96
Wall time: 0.1415 seconds
Process exited with code 0
Original token count: 271
Output:
Archive:  /home/Messier82/.gradle/caches/modules-2/files-2.1/androidx.benchmark/benchmark-macro-junit4/1.4.1/99deb675c862fdffa041fef4d437e2cfec55d929/benchmark-macro-junit4-1.4.1.aar
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  02-01-1980 00:00   R.txt
      213  02-01-1980 00:00   AndroidManifest.xml
        0  02-01-1980 00:00   public.txt
    14494  02-01-1980 00:00   classes.jar
       80  02-01-1980 00:00   proguard.txt
        0  02-01-1980 00:00   META-INF/
        0  02-01-1980 00:00   META-INF/androidx/
        0  02-01-1980 00:00   META-INF/androidx/benchmark/
        0  02-01-1980 00:00   META-INF/androidx/benchmark/benchmark-macro-junit4/
    10175  02-01-1980 00:00   META-INF/androidx/benchmark/benchmark-macro-junit4/LICENSE.txt
        0  02-01-1980 00:00   res/
        0  02-01-1980 00:00   res/values/
       63  02-01-1980 00:00   res/values/values.xml
      157  02-01-1980 00:00   META-INF/com/android/build/gradle/aar-metadata.properties
---------                     -------
    25182                     14 files


mkdir -p /tmp/mb && unzip -p ~/.gradle/caches/modules-2/files-2.1/androidx.benchmark/benchmark-macro-junit4/1.4.1/99deb675c862fdffa041fef4d437e2cfec55d929/benchmark-macro-junit4-1.4.1.aar classes.jar > /tmp/mb/classes.jar && javap -classpath /tmp/mb/classes.jar androidx.benchmark.macro.junit4.MacrobenchmarkRule


Output:
Chunk ID: 9a1c34
Wall time: 0.4355 seconds
Process exited with code 0
Original token count: 1342
Output:
Picked up JAVA_TOOL_OPTIONS: -Xlog:os+container=off
Compiled from "MacrobenchmarkRule.kt"
public final class androidx.benchmark.macro.junit4.MacrobenchmarkRule implements org.junit.rules.TestRule {
  public androidx.benchmark.macro.junit4.MacrobenchmarkRule();
  public final void measureRepeated(java.lang.String, java.util.List<? extends androidx.benchmark.macro.Metric>, androidx.benchmark.macro.CompilationMode, androidx.benchmark.macro.StartupMode, int, kotlin.jvm.functions.Function1<? super androidx.benchmark.macro.MacrobenchmarkScope, kotlin.Unit>, kotlin.jvm.functions.Function1<? super androidx.benchmark.macro.MacrobenchmarkScope, kotlin.Unit>);
  public static void measureRepeated$default(androidx.benchmark.macro.junit4.MacrobenchmarkRule, java.lang.String, java.util.List, androidx.benchmark.macro.CompilationMode, androidx.benchmark.macro.StartupMode, int, kotlin.jvm.functions.Function1, kotlin.jvm.functions.Function1, int, java.lang.Object);
  public final void measureRepeated(java.lang.String, java.util.List<? extends androidx.benchmark.macro.Metric>, int, androidx.benchmark.ExperimentalConfig, androidx.benchmark.macro.CompilationMode, androidx.benchmark.macro.StartupMode, kotlin.jvm.functions.Function1<? super androidx.benchmark.macro.MacrobenchmarkScope, kotlin.Unit>, kotlin.jvm.functions.Function1<? super androidx.benchmark.macro.MacrobenchmarkScope, kotlin.Unit>);
  public static void measureRepeated$default(androidx.benchmark.macro.junit4.MacrobenchmarkRule, java.lang.String, java.util.List, int, androidx.benchmark.ExperimentalConfig, androidx.benchmark.macro.CompilationMode, androidx.benchmark.macro.StartupMode, kotlin.jvm.functions.Function1, kotlin.jvm.functions.Function1, int, java.lang.Object);
  public final void measureRepeated(java.lang.String, java.util.List<? extends androidx.benchmark.macro.Metric>, int, androidx.benchmark.perfetto.PerfettoConfig, androidx.benchmark.macro.CompilationMode, androidx.benchmark.macro.StartupMode, kotlin.jvm.functions.Function1<? super androidx.benchmark.macro.MacrobenchmarkScope, kotlin.Unit>, kotlin.jvm.functions.Function1<? super androidx.benchmark.macro.MacrobenchmarkScope, kotlin.Unit>);
  public static void measureRepeated$default(androidx.benchmark.macro.junit4.MacrobenchmarkRule, java.lang.String, java.util.List, int, androidx.benchmark.perfetto.PerfettoConfig, androidx.benchmark.macro.CompilationMode, androidx.benchmark.macro.StartupMode, kotlin.jvm.functions.Function1, kotlin.jvm.functions.Function1, int, java.lang.Object);
  public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement, org.junit.runner.Description);
  public final void measureRepeated(java.lang.String, java.util.List<? extends androidx.benchmark.macro.Metric>, androidx.benchmark.macro.CompilationMode, androidx.benchmark.macro.StartupMode, int, kotlin.jvm.functions.Function1<? super androidx.benchmark.macro.MacrobenchmarkScope, kotlin.Unit>);
  public final void measureRepeated(java.lang.String, java.util.List<? extends androidx.benchmark.macro.Metric>, androidx.benchmark.macro.CompilationMode, int, kotlin.jvm.functions.Function1<? super androidx.benchmark.macro.MacrobenchmarkScope, kotlin.Unit>);
  public final void measureRepeated(java.lang.String, java.util.List<? extends androidx.benchmark.macro.Metric>, int, kotlin.jvm.functions.Function1<? super androidx.benchmark.macro.MacrobenchmarkScope, kotlin.Unit>);
  public final void measureRepeated(java.lang.String, java.util.List<? extends androidx.benchmark.macro.Metric>, int, androidx.benchmark.ExperimentalConfig, androidx.benchmark.macro.CompilationMode, androidx.benchmark.macro.StartupMode, kotlin.jvm.functions.Function1<? super androidx.benchmark.macro.MacrobenchmarkScope, kotlin.Unit>);
  public final void measureRepeated(java.lang.String, java.util.List<? extends androidx.benchmark.macro.Metric>, int, androidx.benchmark.ExperimentalConfig, androidx.benchmark.macro.CompilationMode, kotlin.jvm.functions.Function1<? super androidx.benchmark.macro.MacrobenchmarkScope, kotlin.Unit>);
  public final void measureRepeated(java.lang.String, java.util.List<? extends androidx.benchmark.macro.Metric>, int, androidx.benchmark.ExperimentalConfig, kotlin.jvm.functions.Function1<? super androidx.benchmark.macro.MacrobenchmarkScope, kotlin.Unit>);
  public final void measureRepeated(java.lang.String, java.util.List<? extends androidx.benchmark.macro.Metric>, int, androidx.benchmark.perfetto.PerfettoConfig, androidx.benchmark.macro.CompilationMode, androidx.benchmark.macro.StartupMode, kotlin.jvm.functions.Function1<? super androidx.benchmark.macro.MacrobenchmarkScope, kotlin.Unit>);
  public final void measureRepeated(java.lang.String, java.util.List<? extends androidx.benchmark.macro.Metric>, int, androidx.benchmark.perfetto.PerfettoConfig, androidx.benchmark.macro.CompilationMode, kotlin.jvm.functions.Function1<? super androidx.benchmark.macro.MacrobenchmarkScope, kotlin.Unit>);
  public final void measureRepeated(java.lang.String, java.util.List<? extends androidx.benchmark.macro.Metric>, int, androidx.benchmark.perfetto.PerfettoConfig, kotlin.jvm.functions.Function1<? super androidx.benchmark.macro.MacrobenchmarkScope, kotlin.Unit>);
  public static final void access$setCurrentDescription$p(androidx.benchmark.macro.junit4.MacrobenchmarkRule, org.junit.runner.Description);
}


Implemented issue #119’s Phase 6 macrobenchmark scaffold.

Added the new `:macrobenchmark` module, app `benchmark` build type with profileable benchmark-only manifest, benchmark-only vault seed activity, four Macrobenchmark scenarios, stable UiAutomator selectors, `testTagsAsResourceId` app-root semantics, README/baseline scaffolding, CI artifact upload, and `regressionFullCheck` sibling wiring to `:macrobenchmark:pixel2api33BenchmarkAndroidTest`.

Verification run:
- `./gradlew :app:compileBenchmarkKotlin` passed
- `./gradlew :macrobenchmark:compileBenchmarkKotlin` passed
- `./gradlew :macrobenchmark:assembleBenchmark` passed
- `./gradlew ktlintCheck detekt lintDebug` passed
- `git diff --check` passed
- `./gradlew regressionFullCheck --dry-run` passed and includes the macrobenchmark task
- `./gradlew :macrobenchmark:pixel2api33BenchmarkAndroidTest -Pandroid.testoptions.manageddevices.emulator.gpu=swiftshader_indirect` built the APKs but failed in `:macrobenchmark:pixel2api33Setup`: the managed emulator failed to start after 5 snapshot attempts. That blocks real benchmark execution and replacing the baseline scaffold with measured 5-run calibration values in this environment.

issue text authority and exact task filtering


Implemented issue #119’s Phase 6 macrobenchmark scaffold.

Added the new `:macrobenchmark` module, app `benchmark` build type with profileable benchmark-only manifest, benchmark-only vault seed activity, four Macrobenchmark scenarios, stable UiAutomator selectors, `testTagsAsResourceId` app-root semantics, README/baseline scaffolding, CI artifact upload, and `regressionFullCheck` sibling wiring to `:macrobenchmark:pixel2api33BenchmarkAndroidTest`.

Verification run:
- `./gradlew :app:compileBenchmarkKotlin` passed
- `./gradlew :macrobenchmark:compileBenchmarkKotlin` passed
- `./gradlew :macrobenchmark:assembleBenchmark` passed
- `./gradlew ktlintCheck detekt lintDebug` passed
- `git diff --check` passed
- `./gradlew regressionFullCheck --dry-run` passed and includes the macrobenchmark task
- `./gradlew :macrobenchmark:pixel2api33BenchmarkAndroidTest -Pandroid.testoptions.manageddevices.emulator.gpu=swiftshader_indirect` built the APKs but failed in `:macrobenchmark:pixel2api33Setup`: the managed emulator failed to start after 5 snapshot attempts. That blocks real benchmark execution and replacing the baseline scaffold with measured 5-run calibration values in this environment.

<oai-mem-citation>
<citation_entries>
MEMORY.md:121-135|note=[issue 119 regression planning context]
MEMORY.md:87-90|note=[regression task and fixture constraints]
MEMORY.md:171-173|note=[issue text authority and exact task filtering]
</citation_entries>
<rollout_ids>
019e4aed-ada7-7722-8582-bb7de1defd4b
019e4f78-019c-7872-b769-76cceb5a60d2
019e53d6-41f4-79d3-ad40-caedbf878c23
</rollout_ids>
</oai-mem-citation>


Implemented issue #119’s Phase 6 macrobenchmark scaffold.

Added the new `:macrobenchmark` module, app `benchmark` build type with profileable benchmark-only manifest, benchmark-only vault seed activity, four Macrobenchmark scenarios, stable UiAutomator selectors, `testTagsAsResourceId` app-root semantics, README/baseline scaffolding, CI artifact upload, and `regressionFullCheck` sibling wiring to `:macrobenchmark:pixel2api33BenchmarkAndroidTest`.

Verification run:
- `./gradlew :app:compileBenchmarkKotlin` passed
- `./gradlew :macrobenchmark:compileBenchmarkKotlin` passed
- `./gradlew :macrobenchmark:assembleBenchmark` passed
- `./gradlew ktlintCheck detekt lintDebug` passed
- `git diff --check` passed
- `./gradlew regressionFullCheck --dry-run` passed and includes the macrobenchmark task
- `./gradlew :macrobenchmark:pixel2api33BenchmarkAndroidTest -Pandroid.testoptions.manageddevices.emulator.gpu=swiftshader_indirect` built the APKs but failed in `:macrobenchmark:pixel2api33Setup`: the managed emulator failed to start after 5 snapshot attempts. That blocks real benchmark execution and replacing the baseline scaffold with measured 5-run calibration values in this environment.


# Collaboration Mode: Default

You are now in Default mode. Any previous instructions for other modes (e.g. Plan mode) are no longer active.

Your active mode changes only when new developer instructions with a different `<collaboration_mode>...</collaboration_mode>` change it; user requests or tool descriptions do not change mode by themselves. Known mode names are Default and Plan.

## request_user_input availability

Use the `request_user_input` tool only when it is listed in the available tools for this turn.

In Default mode, strongly prefer making reasonable assumptions and executing the user's request rather than stopping to ask questions. If you absolutely must ask a question because the answer cannot be discovered from local context and a reasonable assumption would be risky, ask the user directly with a concise plain-text question. Never write a multiple choice question as a textual assistant message.

Summary: auto


Why software acceleration? It should be hardware


You’re right. I carried over the regression workflow’s `swiftshader_indirect` convention from the functional GMD tests, but that’s the wrong default for perf signal. Macrobenchmarks should run with hardware-backed emulator acceleration where available; software rendering makes frame timing less useful. I’m going to update the implementation/docs so macrobenchmark instructions and CI wiring do not force swiftshader.


rg -n "swiftshader|gpu=|hardware|host|regressionFullCheck|pixel2api33BenchmarkAndroidTest" macrobenchmark .github/workflows app/build.gradle.kts TESTING_SETUP.md docs/plan-regression-tests.md


sed -n '1,140p' .github/workflows/regression.yml


Output:
Chunk ID: 40d363
Wall time: 0.3193 seconds
Process exited with code 0
Original token count: 3096
Output:
app/build.gradle.kts:62:val macrobenchmarkTaskPath = ":macrobenchmark:pixel2api33BenchmarkAndroidTest"
app/build.gradle.kts:270:            // Set the host-side directory where GMD will pull files from.
app/build.gradle.kts:373:tasks.register("regressionFullCheck") {
app/build.gradle.kts:446:            // leading to screenshots being saved in the wrong bucket subfolder on the host.
TESTING_SETUP.md:43:### `host` — Hardware acceleration (host GPU passthrough)
TESTING_SETUP.md:45:The emulator uses the host machine's physical GPU via Vulkan/gfxstream.
TESTING_SETUP.md:50:| **Cons** | Requires KVM + GPU passthrough; can hang the host if the GPU driver conflicts |
TESTING_SETUP.md:60:### `swiftshader_indirect` — Software rendering (Google SwiftShader)
TESTING_SETUP.md:62:The emulator uses Google's SwiftShader Vulkan ICD bundled with the Android SDK. No host GPU involved.
TESTING_SETUP.md:82:| **Pros** | Works on kernel ≥ 6.17; no GPU required; does not hang the host |
TESTING_SETUP.md:83:| **Cons** | Slower than `host`; the fallback to lavapipe is an implementation detail of the emulator, not an officially documented mode |
TESTING_SETUP.md:96:| **CI (GitHub Actions, ubuntu-latest)** | `swiftshader_indirect` | SwiftShader | Overridden at runtime via `-Pandroid.testoptions.manageddevices.emulator.gpu=swiftshader_indirect` |
TESTING_SETUP.md:97:| **Bare metal with GPU** | `host` | Host GPU (NVIDIA etc.) | Override `gradle.properties` locally |
TESTING_SETUP.md:99:To run locally with hardware acceleration (e.g. on bare metal):
TESTING_SETUP.md:102:./gradlew pixel2api33Check -Pandroid.testoptions.manageddevices.emulator.gpu=host
TESTING_SETUP.md:116:  run: ./gradlew verifyWithCoverage -Pandroid.testoptions.manageddevices.emulator.gpu=swiftshader_indirect -Proborazzi.test.verify=true -Pcoverage --info
TESTING_SETUP.md:119:CI uses `swiftshader_indirect` for software rendering because GitHub-hosted runners lack a physical GPU. Local executions will default to the `host` GPU (specified in `gradle.properties`) for maximum performance, but can be overridden using the same `-P` flag if hardware acceleration is unavailable.
TESTING_SETUP.md:125:- **Segfault (Exit Code 139) with `host` GPU on Distrobox (NVIDIA)**: The Android Emulator may crash on startup due to incompatible Mesa Vulkan wrappers (e.g., `dzn_icd.json`). To fix this, explicitly point the emulator to the NVIDIA ICD. Add `export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.x86_64.json` to your `~/.bashrc` inside the Distrobox container.
TESTING_SETUP.md:126:- **Segfault (Exit Code 139) with `swiftshader_indirect`**: Known crash on Linux kernel ≥ 6.17. Switch to `angle_indirect` in `gradle.properties`.
TESTING_SETUP.md:127:- **Host machine hangs during tests with `host` GPU**: GPU driver conflict (gfxstream + NVIDIA via KVM). Switch to `angle_indirect` for software rendering.
TESTING_SETUP.md:139:While GMD provides higher fidelity through hardware-accelerated rendering, it introduces two critical workflow blockers:
TESTING_SETUP.md:141:2. **Artifact Extraction:** The GMD emulator is ephemeral. It spins up, runs tests, writes snapshots to its internal storage, and tears down immediately. Pulling the newly recorded `*.png` files back to the host machine for commit becomes extremely difficult and manual.
TESTING_SETUP.md:143:Running screenshot tests in `src/test` ensures snapshots are generated directly onto the host filesystem, providing a reliable and frictionless developer experience.
TESTING_SETUP.md:184:- Tests hardware-dependent behavior (camera, sensors, Bluetooth, etc.).
docs/plan-regression-tests.md:15:- **Flake budget: zero on PR-gated tier, ≤1% on nightly** — quarantine, don't ignore. Flaky tests get a `@Quarantined` marker annotation; PR-gated and core regression tasks pass `notAnnotation=com.yorvana.testsupport.tiers.Quarantined` so these tests are excluded from gating, while the nightly `regressionFullCheck` task does *not* set `notAnnotation` so they still execute and report.
docs/plan-regression-tests.md:27:| Performance NFRs | **Macrobenchmark** (`androidx.benchmark`) in a separate module, running on its own dedicated GMD entry registered inside `:macrobenchmark` (a Pixel 2 API 33 entry matching the app's GMD, generating a task like `pixel2api33BenchmarkAndroidTest`). Not the app's smoke `pixel2api33` device, and not `connected*AndroidTest` (which would target ad-hoc connected devices, which CI doesn't have). Numbers from a swiftshader/angle emulator are advisory regression signal, not authoritative perf measurements. | new `:macrobenchmark` module |
docs/plan-regression-tests.md:47:- **`regressionFullCheck`** — Nightly. Aggregator task that depends on the sibling tasks below, plus eventually the macrobenchmark module. It does *not* `dependsOn(regressionCheck)`, because that task's `notAnnotation=...Quarantined` filter would otherwise hide quarantined core tests from nightly too (contradicting §1's quarantine policy). **Phase 1 (#114) wires only the first two siblings**. Phase 5 (#118) chose the external-device billing path, so the sandbox tier runs in `billing-sandbox.yml` rather than under `regressionFullCheck`; the `:macrobenchmark` `dependsOn` is deferred to **Phase 6 (#119)**.
docs/plan-regression-tests.md:49:    - **(a) `GradleBuild` child invocations** — register three `GradleBuild` tasks under `regressionFullCheck`, each setting `startParameter.projectProperties` for its own runner-argument set and `tasks = ["pixel2api33DebugAndroidTest"]` (or the Play device task for sandbox). Each child invocation gets a fresh Gradle build, so `-P` values do not collide.
docs/plan-regression-tests.md:50:    - **(b) Variant- or device-scoped tasks** — declare extra GMD device entries (or a custom test-only variant) whose `instrumentationRunnerArguments` are set in `build.gradle.kts` rather than at the CLI, so each generated `*DebugAndroidTest` task carries its own baked-in filter. `regressionFullCheck` then plain-`dependsOn`s those tasks.
docs/plan-regression-tests.md:54:    - `regressionFullSandboxCheck` — runs `@BillingSandbox` against the Play-enabled device path from §5, using a test APK built from a non-debug build type signed with the same upload key as the Play internal track (e.g. a `staging` `testBuildType` distinct from `debug`/`release` and outside the screenshot-build branch in `app/build.gradle.kts:43`). The concrete task is therefore something like `pixel2api33PlayStagingAndroidTest`, *not* `pixel2api33PlayDebugAndroidTest` — a debug-signed APK is the wrong artifact for real Play Billing. Annotation filter: `annotation=com.yorvana.testsupport.tiers.BillingSandbox`; tier selection is in-build only — runtime skip is owned by the **multi-precondition `Assume.assumeTrue` skip guard** from #118 (`BILLING_SANDBOX_ACCOUNT`, signing material, selected device path, signed-in Play account, and a non-empty `BillingClient.queryProductDetailsAsync(premium_lifetime)` result), *not* a narrow `BILLING_SANDBOX_ACCOUNT`-only gate. If §5 picks the external-workflow option instead, this aggregator entry is omitted (the sandbox tier runs in `billing-sandbox.yml`, not under `regressionFullCheck`).
docs/plan-regression-tests.md:55:  - None of the three set `notAnnotation`. The `:macrobenchmark` module's GMD-generated benchmark task (e.g. `:macrobenchmark:pixel2api33BenchmarkAndroidTest`, from the dedicated GMD entry registered in `:macrobenchmark` per Phase 6 and the §2 table) is wired as an additional `dependsOn` to keep "core + full + sandbox + benchmark" in one entry point. It is deliberately *not* `:macrobenchmark:connectedBenchmarkAndroidTest` — `connected*AndroidTest` targets ad-hoc currently-connected devices that CI doesn't have, so the nightly aggregate could otherwise pass without ever running the benchmark tier. (Separate tiers rather than a comma list because AndroidJUnitRunner's `annotation` argument takes a single class, and the sandbox tier needs a different device target anyway.)
docs/plan-regression-tests.md:157:- Wire `regressionCheck` and `regressionFullCheck` Gradle tasks per §2 using a **single chosen mechanism** (either `GradleBuild` child invocations with `startParameter.projectProperties`, or variant/device-scoped tasks with baked-in `instrumentationRunnerArguments`) — same shape for both, documented in the PR description. `regressionFullCheck` in Phase 1 wires **two siblings** (`regressionFullCoreCheck`, `regressionFullExtendedCheck`); `regressionFullSandboxCheck` is deferred to Phase 5 and the `:macrobenchmark` dependency to Phase 6.
docs/plan-regression-tests.md:163:- Add the nightly workflow pair: `regression.yml` (`workflow_call` + `workflow_dispatch` + `schedule`, runs `./gradlew regressionCheck` on label/manual/reusable paths and `regressionFullCheck` on the cron path, mirrors `smoke.yml`'s KVM setup, forces `swiftshader_indirect`, uploads managed-device reports) and `regression-label.yml` (`pull_request: [labeled]`, gated on `regression` label).
docs/plan-regression-tests.md:190:- Pick the device path: **Option 2 selected** — external `billing-sandbox.yml` workflow running against a real Play-enabled device on a self-hosted runner, with the sandbox tier outside `regressionFullCheck`.
docs/plan-regression-tests.md:199:- Register a dedicated GMD entry inside `:macrobenchmark` so AGP generates `:macrobenchmark:pixel2api33BenchmarkAndroidTest`; wire that exact task into `regressionFullCheck`'s `dependsOn` **as a sibling outside any Phase 1 `GradleBuild` child invocation** so app-module instrumentation args don't leak into the benchmark run. Do **not** depend on `:macrobenchmark:connectedBenchmarkAndroidTest`.
docs/plan-regression-tests.md:202:  - **B. Stable test tags.** `TestTags.VEHICLE_LIST`, `TestTags.vehicleItem(id)`, `TestTags.RECORD_LIST` wired in production composables, plus `Modifier.semantics { testTagsAsResourceId = true }` applied to the Compose hierarchy hosting them so `By.res(...)` in `:macrobenchmark` resolves.
docs/plan-regression-tests.md:223:2. **Manual / external device path (recommended when key management on the GMD runner is impractical).** Keep real billing verification outside GMD entirely — run `@BillingSandbox` tests on a real Play-enabled device or a Firebase Test Lab "physical" device, triggered by a separate workflow (`billing-sandbox.yml`) that nightly-builds an internal-track signed APK from a dedicated staging/release build type (so Play recognises the artifact) and runs the sandbox tier against a Play-enabled target. `regressionFullCheck` in this option does *not* dispatch the sandbox invocation locally and instead reports "sandbox runs in the dedicated billing workflow." This option avoids putting the upload key on the GMD runner and skips the headless Play Store sign-in problem from Option 1.
macrobenchmark/README.md:16:./gradlew :macrobenchmark:pixel2api33BenchmarkAndroidTest
macrobenchmark/README.md:19:`regressionFullCheck` depends on that task as a sibling of the app regression
.github/workflows/billing-sandbox.yml:22:    runs-on: [self-hosted, android-billing-sandbox]
.github/workflows/regression.yml:52:        run: ./gradlew regressionCheck -Pandroid.testoptions.manageddevices.emulator.gpu=swiftshader_indirect
.github/workflows/regression.yml:56:        run: ./gradlew regressionFullCheck -Pandroid.testoptions.manageddevices.emulator.gpu=swiftshader_indirect
.github/workflows/smoke.yml:3:# GitHub-hosted `ubuntu-latest` runners expose `/dev/kvm` for CPU acceleration
.github/workflows/smoke.yml:8:# `swiftshader_indirect`. Note: swiftshader is documented to crash on Linux
.github/workflows/smoke.yml:9:# kernel >= 6.17 (see TESTING_SETUP.md). GitHub-hosted runners are currently
.github/workflows/smoke.yml:59:        run: ./gradlew pixel2api33Check -Pandroid.testoptions.manageddevices.emulator.gpu=swiftshader_indirect
macrobenchmark/baselines/baselines.json:6:    "gpu": "swiftshader_indirect"
macrobenchmark/baselines/README.md:4:Gradle Managed Device with `swiftshader_indirect`.
macrobenchmark/baselines/README.md:10:./gradlew :macrobenchmark:pixel2api33BenchmarkAndroidTest \
macrobenchmark/baselines/README.md:11:  -Pandroid.testoptions.manageddevices.emulator.gpu=swiftshader_indirect
macrobenchmark/baselines/README.md:14:Absolute NFR targets are advisory on swiftshader. Relative regressions greater


Output:
Chunk ID: 71aba5
Wall time: 0.3263 seconds
Process exited with code 0
Original token count: 605
Output:
# GMD regression tests on CI.
#
# This mirrors the smoke workflow's emulator setup but keeps PR execution
# opt-in through regression-label.yml. Nightly scheduled runs execute the
# Phase 1 full aggregate; label/manual/reusable calls execute the core tier.
name: Regression
permissions:
  contents: read

on:
  workflow_dispatch:
  workflow_call:
  schedule:
    - cron: '17 8 * * *'

jobs:
  regression:
    name: GMD Regression Tests
    runs-on: ubuntu-latest
    timeout-minutes: 90
    concurrency:
      group: regression-${{ github.ref }}
      cancel-in-progress: true
    steps:
      - name: Checkout code
        uses: actions/checkout@v6

      - name: Set up JDK 17
        uses: actions/setup-java@v5
        with:
          java-version: '17'
          distribution: 'temurin'

      - name: Set up Gradle
        uses: gradle/actions/setup-gradle@v6
        with:
          cache-read-only: ${{ github.ref != 'refs/heads/master' }}
          cache-cleanup: on-success

      - name: Grant execute permission for gradlew
        run: chmod +x gradlew

      - name: Enable KVM
        run: |
          echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' \
            | sudo tee /etc/udev/rules.d/99-kvm4all.rules
          sudo udevadm control --reload-rules
          sudo udevadm trigger --name-match=kvm

      - name: Run Regression Check
        if: github.event_name != 'schedule'
        run: ./gradlew regressionCheck -Pandroid.testoptions.manageddevices.emulator.gpu=swiftshader_indirect

      - name: Run Nightly Regression Checks
        if: github.event_name == 'schedule'
        run: ./gradlew regressionFullCheck -Pandroid.testoptions.manageddevices.emulator.gpu=swiftshader_indirect

      - name: Upload Managed Device Reports
        if: always()
        uses: actions/upload-artifact@v7
        with:
          name: gmd-regression-test-reports
          path: |
            app/build/reports/androidTests/managedDevice/
            app/build/outputs/androidTest-results/managedDevice/
            app/build/outputs/managed_device_android_test_additional_output/
            macrobenchmark/build/reports/androidTests/managedDevice/
            macrobenchmark/build/outputs/androidTest-results/managedDevice/
            macrobenchmark/build/outputs/managed_device_android_test_additional_output/
          if-no-files-found: warn
          retention-days: 7


Output:
Chunk ID: b7b45f
Wall time: 0.2987 seconds
Process exited with code 0
Original token count: 120
Output:
 M .github/workflows/regression.yml
 M .gitignore
 M app/build.gradle.kts
 M app/src/main/java/com/yorvana/MainActivity.kt
 M app/src/main/java/com/yorvana/ui/TestTags.kt
 M app/src/main/java/com/yorvana/ui/navigation/AppNavGraph.kt
 M app/src/main/java/com/yorvana/ui/records/VehicleDetailScreen.kt
 M app/src/main/java/com/yorvana/ui/vehicles/VehicleListScreen.kt
 M build.gradle.kts
 M gradle/libs.versions.toml
 M settings.gradle.kts
?? app/src/benchmark/
?? macrobenchmark/


Output:
Chunk ID: 3d621f
Wall time: 0.1168 seconds
Process exited with code 0
Original token count: 166
Output:
# On Fedora 43+ (kernel ≥ 6.17) the JVM prints cgroup warnings to stdout, which
# corrupts the `jlink --version` output that AGP's JdkImageTransform parses for the
# --module-version argument, causing the transform to fail.  Set this env var before
# running Gradle to suppress the noise:
#   export JAVA_TOOL_OPTIONS="-Xlog:os+container=off"
org.gradle.jvmargs=-Xmx4096m -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.caching=true
android.useAndroidX=true
android.enableJetifier=false
android.suppressUnsupportedCompileSdk=35
kotlin.code.style=official
robolectric.includeAndroidResources=true

android.testoptions.manageddevices.emulator.gpu=host


The repo default is already `android.testoptions.manageddevices.emulator.gpu=host`; my mistake was overriding the scheduled full regression command and baseline docs to `swiftshader_indirect`. I’m removing that override for the macrobenchmark path and changing the calibration docs to `host`.


Input:
*** Begin Patch
*** Update File: /home/Messier82/projects/service-book/.github/workflows/regression.yml
@@
-      - name: Run Nightly Regression Checks
+      - name: Run Nightly Regression Checks
         if: github.event_name == 'schedule'
-        run: ./gradlew regressionFullCheck -Pandroid.testoptions.manageddevices.emulator.gpu=swiftshader_indirect
+        run: ./gradlew regressionFullCheck
*** Update File: /home/Messier82/projects/service-book/macrobenchmark/baselines/README.md
@@
-These baselines are calibrated from five runs on the dedicated Pixel 2 API 33
-Gradle Managed Device with `swiftshader_indirect`.
+These baselines are calibrated from five runs on the dedicated Pixel 2 API 33
+Gradle Managed Device with hardware-backed rendering (`host` GPU mode).
@@
 ./gradlew :macrobenchmark:pixel2api33BenchmarkAndroidTest \
-  -Pandroid.testoptions.manageddevices.emulator.gpu=swiftshader_indirect
+  -Pandroid.testoptions.manageddevices.emulator.gpu=host
 ```

-Absolute NFR targets are advisory on swiftshader. Relative regressions greater
-than 20% against the calibrated values are the hard gate.
+Absolute NFR targets remain advisory on emulators. Relative regressions greater
+than 20% against the calibrated hardware-rendered values are the hard gate.
*** Update File: /home/Messier82/projects/service-book/macrobenchmark/baselines/baselines.json
@@
-    "gpu": "swiftshader_indirect"
+    "gpu": "host"
*** Update File: /home/Messier82/projects/service-book/macrobenchmark/README.md
@@
 The module registers its own Pixel 2 API 33 GMD entry, producing:

 ```bash
-./gradlew :macrobenchmark:pixel2api33BenchmarkAndroidTest
+./gradlew :macrobenchmark:pixel2api33BenchmarkAndroidTest \
+  -Pandroid.testoptions.manageddevices.emulator.gpu=host
 ```
@@
-Swiftshader emulator numbers are advisory regression signal only. Absolute NFRs
-are logged in benchmark artifacts and PR notes, but they do not hard-fail CI.
+Emulator numbers are advisory regression signal only. Benchmark calibration and
+nightly runs should use hardware-backed rendering (`host` GPU mode); software
+rendering is not suitable for frame-timing signal. Absolute NFRs are logged in
+benchmark artifacts and PR notes, but they do not hard-fail CI.

 The hard gate is relative regression greater than 20% against baselines
-calibrated from five runs on the same Pixel 2 API 33 GMD shape. Refresh
+calibrated from five runs on the same hardware-rendered Pixel 2 API 33 GMD shape. Refresh
 `baselines/baselines.json` after running the benchmark task five times on the
 same runner configuration and note the calibration in the PR.
*** End Patch


Success. Updated the following files:
M /home/Messier82/projects/service-book/.github/workflows/regression.yml
M /home/Messier82/projects/service-book/macrobenchmark/baselines/README.md
M /home/Messier82/projects/service-book/macrobenchmark/baselines/baselines.json
M /home/Messier82/projects/service-book/macrobenchmark/README.md

@@ -55,3 +55,3 @@
         if: github.event_name == 'schedule'
-        run: ./gradlew regressionFullCheck -Pandroid.testoptions.manageddevices.emulator.gpu=swiftshader_indirect
+        run: ./gradlew regressionFullCheck

@@ -3,3 +3,3 @@
 These baselines are calibrated from five runs on the dedicated Pixel 2 API 33
-Gradle Managed Device with `swiftshader_indirect`.
+Gradle Managed Device with hardware-backed rendering (`host` GPU mode).

@@ -10,6 +10,6 @@
 ./gradlew :macrobenchmark:pixel2api33BenchmarkAndroidTest \
-  -Pandroid.testoptions.manageddevices.emulator.gpu=swiftshader_indirect
+  -Pandroid.testoptions.manageddevices.emulator.gpu=host
 ```

-Absolute NFR targets are advisory on swiftshader. Relative regressions greater
-than 20% against the calibrated values are the hard gate.
+Absolute NFR targets remain advisory on emulators. Relative regressions greater
+than 20% against the calibrated hardware-rendered values are the hard gate.

@@ -5,3 +5,3 @@
     "device": "Pixel 2 API 33 GMD",
-    "gpu": "swiftshader_indirect"
+    "gpu": "host"
   },

@@ -15,3 +15,4 @@
 ```bash
-./gradlew :macrobenchmark:pixel2api33BenchmarkAndroidTest
+./gradlew :macrobenchmark:pixel2api33BenchmarkAndroidTest \
+  -Pandroid.testoptions.manageddevices.emulator.gpu=host
 ```
@@ -63,7 +64,9 @@

-Swiftshader emulator numbers are advisory regression signal only. Absolute NFRs
-are logged in benchmark artifacts and PR notes, but they do not hard-fail CI.
+Emulator numbers are advisory regression signal only. Benchmark calibration and
+nightly runs should use hardware-backed rendering (`host` GPU mode); software
+rendering is not suitable for frame-timing signal. Absolute NFRs are logged in
+benchmark artifacts and PR notes, but they do not hard-fail CI.

 The hard gate is relative regression greater than 20% against baselines
-calibrated from five runs on the same Pixel 2 API 33 GMD shape. Refresh
+calibrated from five runs on the same hardware-rendered Pixel 2 API 33 GMD shape. Refresh
 `baselines/baselines.json` after running the benchmark task five times on the


Output:
Exit code: 0
Wall time: 3.4 seconds
Output:
Success. Updated the following files:
M /home/Messier82/projects/service-book/.github/workflows/regression.yml
M /home/Messier82/projects/service-book/macrobenchmark/baselines/README.md
M /home/Messier82/projects/service-book/macrobenchmark/baselines/baselines.json
M /home/Messier82/projects/service-book/macrobenchmark/README.md


rg -n "swiftshader_indirect|software rendering|gpu=host|regressionFullCheck" macrobenchmark .github/workflows/regression.yml


Output:
Chunk ID: ed9f88
Wall time: 0.2098 seconds
Process exited with code 0
Original token count: 128
Output:
.github/workflows/regression.yml:52:        run: ./gradlew regressionCheck -Pandroid.testoptions.manageddevices.emulator.gpu=swiftshader_indirect
.github/workflows/regression.yml:56:        run: ./gradlew regressionFullCheck
macrobenchmark/README.md:17:  -Pandroid.testoptions.manageddevices.emulator.gpu=host
macrobenchmark/README.md:20:`regressionFullCheck` depends on that task as a sibling of the app regression
macrobenchmark/baselines/README.md:11:  -Pandroid.testoptions.manageddevices.emulator.gpu=host


Output:
Chunk ID: b8759b
Wall time: 1.0012 seconds
Process running with session ID 67842
Original token count: 45
Output:
Picked up JAVA_TOOL_OPTIONS: -Xlog:os+container=off

> Configure project :app
WARNING: The option setting 'android.testoptions.manageddevices.emulator.gpu=host' is experimental.


Output:
Chunk ID: 1ae3fa
Wall time: 0.2069 seconds
Process exited with code 0
Original token count: 0
Output:


Output:
Chunk ID: 3355d2
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 1206
Output:
:app:regressionFullCoreCheck SKIPPED
:app:regressionFullExtendedCheck SKIPPED
:app:preBuild SKIPPED
:app:preBenchmarkBuild SKIPPED
:app:mergeBenchmarkArtProfile SKIPPED
:app:desugarBenchmarkFileDependencies SKIPPED
:app:generateBenchmarkBuildConfig SKIPPED
:app:generateBenchmarkResources SKIPPED
:app:packageBenchmarkResources SKIPPED
:app:processBenchmarkNavigationResources SKIPPED
:app:parseBenchmarkLocalResources SKIPPED
:app:generateBenchmarkRFile SKIPPED
:app:compileBenchmarkKotlin SKIPPED
:app:javaPreCompileBenchmark SKIPPED
:app:compileBenchmarkJavaWithJavac SKIPPED
:app:checkBenchmarkAarMetadata SKIPPED
:app:mapBenchmarkSourceSetPaths SKIPPED
:app:compileBenchmarkNavigationResources SKIPPED
:app:mergeBenchmarkResources SKIPPED
:app:createBenchmarkCompatibleScreenManifests SKIPPED
:app:extractDeepLinksBenchmark SKIPPED
:app:processBenchmarkMainManifest SKIPPED
:app:processBenchmarkManifest SKIPPED
:app:processBenchmarkManifestForPackage SKIPPED
:app:processBenchmarkResources SKIPPED
:app:dexBuilderBenchmark SKIPPED
:app:mergeBenchmarkGlobalSynthetics SKIPPED
:app:checkBenchmarkDuplicateClasses SKIPPED
:app:mergeBenchmarkStartupProfile SKIPPED
:app:mergeExtDexBenchmark SKIPPED
:app:mergeDexBenchmark SKIPPED
:app:compileBenchmarkArtProfile SKIPPED
:app:generateBenchmarkAssets SKIPPED
:app:mergeBenchmarkAssets SKIPPED
:app:compressBenchmarkAssets SKIPPED
:app:extractBenchmarkVersionControlInfo SKIPPED
:app:extractProguardFiles SKIPPED
:app:generateBenchmarkLintVitalReportModel SKIPPED
:app:lintVitalAnalyzeBenchmark SKIPPED
:app:lintVitalReportBenchmark SKIPPED
:app:lintVitalBenchmark SKIPPED
:app:processBenchmarkJavaRes SKIPPED
:app:mergeBenchmarkJavaResource SKIPPED
:app:optimizeBenchmarkResources SKIPPED
:app:collectBenchmarkDependencies SKIPPED
:app:sdkBenchmarkDependencyData SKIPPED
:app:mergeBenchmarkJniLibFolders SKIPPED
:app:mergeBenchmarkNativeLibs SKIPPED
:app:stripBenchmarkDebugSymbols SKIPPED
:app:validateSigningBenchmark SKIPPED
:app:writeBenchmarkAppMetadata SKIPPED
:app:writeBenchmarkSigningConfigVersions SKIPPED
:app:packageBenchmark SKIPPED
:app:createBenchmarkApkListingFileRedirect SKIPPED
:app:bundleBenchmarkClassesToCompileJar SKIPPED
:macrobenchmark:preBuild SKIPPED
:macrobenchmark:preBenchmarkBuild SKIPPED
:macrobenchmark:checkTestedAppObfuscationBenchmark SKIPPED
:macrobenchmark:generateBenchmarkResources SKIPPED
:macrobenchmark:packageBenchmarkResources SKIPPED
:app:generateBenchmarkFeatureTransitiveDeps SKIPPED
:macrobenchmark:processBenchmarkNavigationResources SKIPPED
:macrobenchmark:parseBenchmarkLocalResources SKIPPED
:macrobenchmark:generateBenchmarkRFile SKIPPED
:macrobenchmark:compileBenchmarkKotlin SKIPPED
:macrobenchmark:javaPreCompileBenchmark SKIPPED
:macrobenchmark:compileBenchmarkJavaWithJavac SKIPPED
:macrobenchmark:generateBenchmarkAssets SKIPPED
:macrobenchmark:mergeBenchmarkAssets SKIPPED
:macrobenchmark:compressBenchmarkAssets SKIPPED
:macrobenchmark:desugarBenchmarkFileDependencies SKIPPED
:macrobenchmark:checkBenchmarkAarMetadata SKIPPED
:macrobenchmark:mapBenchmarkSourceSetPaths SKIPPED
:macrobenchmark:compileBenchmarkNavigationResources SKIPPED
:macrobenchmark:mergeBenchmarkResources SKIPPED
:macrobenchmark:processBenchmarkManifest SKIPPED
:macrobenchmark:processBenchmarkResources SKIPPED
:macrobenchmark:dexBuilderBenchmark SKIPPED
:macrobenchmark:mergeBenchmarkGlobalSynthetics SKIPPED
:macrobenchmark:processBenchmarkJavaRes SKIPPED
:macrobenchmark:mergeBenchmarkJavaResource SKIPPED
:macrobenchmark:checkBenchmarkDuplicateClasses SKIPPED
:macrobenchmark:mergeExtDexBenchmark SKIPPED
:macrobenchmark:mergeDexBenchmark SKIPPED
:macrobenchmark:mergeBenchmarkJniLibFolders SKIPPED
:macrobenchmark:mergeBenchmarkNativeLibs SKIPPED
:macrobenchmark:stripBenchmarkDebugSymbols SKIPPED
:macrobenchmark:writeBenchmarkSigningConfigVersions SKIPPED
:macrobenchmark:packageBenchmark SKIPPED
:macrobenchmark:createBenchmarkApkListingFileRedirect SKIPPED
:macrobenchmark:pixel2api33Setup SKIPPED
:macrobenchmark:pixel2api33BenchmarkAndroidTest SKIPPED
:macrobenchmark:mergeBenchmarkTestResultProtos SKIPPED
:app:regressionFullCheck SKIPPED

[Incubating] Problems report is available at: file:///home/Messier82/projects/service-book/build/reports/problems/problems-report.html

Deprecated Gradle features were used in this build, making it incompatible with Gradle 10.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

For more on this, please refer to https://docs.gradle.org/9.5.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

BUILD SUCCESSFUL in 1s
Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.5.1/userguide/configuration_cache_enabling.html


You’re right. I had carried over the functional regression workflow’s `swiftshader_indirect` override, but that’s not appropriate for macrobenchmark frame timing.

I changed it so the macrobenchmark path uses hardware-backed rendering:

- Scheduled `regressionFullCheck` no longer forces `swiftshader_indirect`; it uses the repo default `host` GPU mode from `gradle.properties`.
- Macrobenchmark README and baseline docs now show `-Pandroid.testoptions.manageddevices.emulator.gpu=host`.
- Baseline metadata now records `"gpu": "host"`.

I left the non-scheduled `regressionCheck` path on `swiftshader_indirect`, since that’s the existing functional-regression CI convention and does not run the macrobenchmark task.

Verified:
- `./gradlew regressionFullCheck --dry-run` passes and still includes `:macrobenchmark:pixel2api33BenchmarkAndroidTest`
- `git diff --check` passes


<environment_context>
  <current_date>2026-05-27</current_date>
  <timezone>Etc/UTC</timezone>
</environment_context>


Summary: auto


Any GMD run should use hardware rendering. Remember tgat


Understood. I’ll record this as a repo preference: any Gradle Managed Device run in `service-book` should use hardware rendering, not software rendering.


Output:
Chunk ID: 5cc77e
Wall time: 0.1320 seconds
Process exited with code 0
Original token count: 6
Output:
2026-05-27T04-06-22Z


Output:
Chunk ID: 71451d
Wall time: 0.1260 seconds
Process exited with code 0
Original token count: 0
Output:


Input:
*** Begin Patch
*** Add File: /home/Messier82/.codex/memories/extensions/ad_hoc/notes/2026-05-27T04-06-22Z-service-book-gmd-hardware-rendering.md
+# service-book GMD rendering preference
+
+In `/home/Messier82/projects/service-book`, any Gradle Managed Device run should use hardware rendering. Do not default GMD commands, docs, CI wiring, or verification notes to software rendering modes such as `swiftshader_indirect` unless the user explicitly asks for a temporary fallback due to environment limitations.
*** End Patch


Success. Updated the following files:
A /home/Messier82/.codex/memories/extensions/ad_hoc/notes/2026-05-27T04-06-22Z-service-book-gmd-hardware-rendering.md

# service-book GMD rendering preference

In `/home/Messier82/projects/service-book`, any Gradle Managed Device run should use hardware rendering. Do not default GMD commands, docs, CI wiring, or verification notes to software rendering modes such as `swiftshader_indirect` unless the user explicitly asks for a temporary fallback due to environment limitations.


Output:
Exit code: 0
Wall time: 0.8 seconds
Output:
Success. Updated the following files:
A /home/Messier82/.codex/memories/extensions/ad_hoc/notes/2026-05-27T04-06-22Z-service-book-gmd-hardware-rendering.md


Remembered. For `service-book`, I’ll treat hardware rendering as the default for any GMD run, including commands, docs, CI wiring, and verification notes.


So the new tests pass?


I haven’t proven that the new macrobenchmark tests pass end-to-end yet. The compile/package checks passed, but the managed-device run previously failed during emulator setup before any benchmark executed; I’m rerunning the new GMD task now with hardware rendering so the answer is current.


Output:
Chunk ID: b33a92
Wall time: 1.0013 seconds
Process running with session ID 6339
Original token count: 35
Output:
Picked up JAVA_TOOL_OPTIONS: -Xlog:os+container=off
Starting a Gradle Daemon, 2 busy Daemons could not be reused, use --status for details


Output:
Chunk ID: 781fa1
Wall time: 5.0016 seconds
Process running with session ID 6339
Original token count: 32
Output:

> Configure project :app
WARNING: The option setting 'android.testoptions.manageddevices.emulator.gpu=host' is experimental.


Output:
Chunk ID: 49889e
Wall time: 5.0016 seconds
Process running with session ID 6339
Original token count: 1101
Output:

> Task :app:preBuild UP-TO-DATE
> Task :macrobenchmark:preBuild UP-TO-DATE
> Task :app:preBenchmarkBuild UP-TO-DATE
> Task :macrobenchmark:preBenchmarkBuild UP-TO-DATE
> Task :macrobenchmark:checkTestedAppObfuscationBenchmark UP-TO-DATE
> Task :macrobenchmark:generateBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:packageBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:javaPreCompileBenchmark UP-TO-DATE
> Task :macrobenchmark:generateBenchmarkAssets UP-TO-DATE
> Task :macrobenchmark:mapBenchmarkSourceSetPaths UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkResources UP-TO-DATE
> Task :macrobenchmark:mergeBenchmarkJniLibFolders UP-TO-DATE
> Task :macrobenchmark:writeBenchmarkSigningConfigVersions UP-TO-DATE
> Task :app:mergeBenchmarkArtProfile UP-TO-DATE
> Task :app:desugarBenchmarkFileDependencies UP-TO-DATE
> Task :app:generateBenchmarkBuildConfig UP-TO-DATE
> Task :app:generateBenchmarkResources UP-TO-DATE
> Task :app:packageBenchmarkResources UP-TO-DATE
> Task :app:processBenchmarkNavigationResources UP-TO-DATE
> Task :app:parseBenchmarkLocalResources UP-TO-DATE
> Task :app:generateBenchmarkRFile UP-TO-DATE
> Task :app:compileBenchmarkKotlin UP-TO-DATE
> Task :app:javaPreCompileBenchmark UP-TO-DATE
> Task :app:compileBenchmarkJavaWithJavac UP-TO-DATE
> Task :app:checkBenchmarkAarMetadata UP-TO-DATE
> Task :app:mapBenchmarkSourceSetPaths UP-TO-DATE
> Task :app:compileBenchmarkNavigationResources UP-TO-DATE
> Task :app:mergeBenchmarkResources UP-TO-DATE
> Task :app:createBenchmarkCompatibleScreenManifests UP-TO-DATE
> Task :app:extractDeepLinksBenchmark UP-TO-DATE
> Task :app:processBenchmarkMainManifest UP-TO-DATE
> Task :app:processBenchmarkManifest UP-TO-DATE
> Task :app:processBenchmarkManifestForPackage UP-TO-DATE
> Task :app:processBenchmarkResources UP-TO-DATE
> Task :app:dexBuilderBenchmark UP-TO-DATE

> Task :macrobenchmark:pixel2api33Setup
The device "pixel2api33" does not specify a "testedAbi".
This currently defaults to "x86_64", but will change to "arm64-v8a" in AGP 10.0.

The system image configured for "pixel2api33" does not support NDK translation,
so it will be unable to run tests built for "arm64-v8a".

To keep the current behavior and prevent test failures in AGP 10.0,
explicitly set the ABI: testedAbi = "x86_64"

> Task :app:mergeBenchmarkGlobalSynthetics UP-TO-DATE
> Task :app:checkBenchmarkDuplicateClasses UP-TO-DATE
> Task :app:mergeBenchmarkStartupProfile UP-TO-DATE
> Task :app:mergeExtDexBenchmark UP-TO-DATE
> Task :app:mergeDexBenchmark UP-TO-DATE
> Task :app:compileBenchmarkArtProfile UP-TO-DATE
> Task :app:generateBenchmarkAssets UP-TO-DATE
> Task :app:mergeBenchmarkAssets UP-TO-DATE
> Task :app:compressBenchmarkAssets UP-TO-DATE
> Task :app:extractBenchmarkVersionControlInfo UP-TO-DATE
> Task :app:extractProguardFiles UP-TO-DATE
> Task :app:generateBenchmarkLintVitalReportModel UP-TO-DATE
> Task :app:lintVitalAnalyzeBenchmark UP-TO-DATE
> Task :app:lintVitalReportBenchmark UP-TO-DATE
> Task :app:lintVitalBenchmark
> Task :app:processBenchmarkJavaRes UP-TO-DATE
> Task :app:mergeBenchmarkJavaResource UP-TO-DATE
> Task :app:optimizeBenchmarkResources UP-TO-DATE
> Task :app:collectBenchmarkDependencies UP-TO-DATE
> Task :app:sdkBenchmarkDependencyData UP-TO-DATE
> Task :app:mergeBenchmarkJniLibFolders UP-TO-DATE
> Task :app:mergeBenchmarkNativeLibs UP-TO-DATE
> Task :app:stripBenchmarkDebugSymbols UP-TO-DATE
> Task :app:validateSigningBenchmark UP-TO-DATE
> Task :app:writeBenchmarkAppMetadata UP-TO-DATE
> Task :app:writeBenchmarkSigningConfigVersions UP-TO-DATE
> Task :app:packageBenchmark UP-TO-DATE
> Task :app:createBenchmarkApkListingFileRedirect UP-TO-DATE
> Task :app:bundleBenchmarkClassesToCompileJar UP-TO-DATE
> Task :app:generateBenchmarkFeatureTransitiveDeps UP-TO-DATE
> Task :macrobenchmark:processBenchmarkNavigationResources UP-TO-DATE
> Task :macrobenchmark:parseBenchmarkLocalResources UP-TO-DATE
> Task :macrobenchmark:generateBenchmarkRFile UP-TO-DATE
> Task :macrobenchmark:compileBenchmarkKotlin UP-TO-DATE
> Task :macrobenchmark:compileBenchmarkJavaWithJavac NO-SOURCE
> Task :macrobenchmark:mergeBenchmarkAssets UP-TO-DATE
> Task :macrobenchmark:compressBenchmarkAssets UP-TO-DATE
> Task :macrobenchmark:desugarBenchmarkFileDependencies UP-TO-DATE
> Task :macrobenchmark:checkBenchmarkAarMetadata UP-TO-DATE
> Task :macrobenchmark:compileBenchmarkNavigationResources UP-TO-DATE