Skip to content

test(uv): multi-version preference#1229

Draft
xangcastle wants to merge 4 commits into
1.xfrom
xangcastle/multi-version-preference
Draft

test(uv): multi-version preference#1229
xangcastle wants to merge 4 commits into
1.xfrom
xangcastle/multi-version-preference

adding test case to reproduce the issue

58208cd
Select commit
Loading
Failed to load commit list.
Aspect Workflows / aspect / test (test-e2e-bazel-9) succeeded Jul 4, 2026 in 32m 38s

✅ test //... · Tests passed

✅ Succeeded · 📅 Sat Jul 4 16:47:42 UTC 2026 · ⏱ 32m 38s — 🔧 Setup 6.5s · 🧪 Test 32m 32s
👤 runner · 🖥 runnervmjbsos · 💎 aspect-cli v2026.22.44
📦 206 targets · ⚡ 84,685 of 172,864 actions executed (51% cached) · 🧪 63 of 63 tests executed (0% cached) · 🔧 bazel v9.1.1 test · 🎯 x86_64 · ⚙️ fastbuild
🐙 GitHub Actions

💬 Last update: test task complete

Details

🎯 Bazel targets (206)

✅ 63 Tests Passed
Label                                                                     | Target Type                           | Duration
--------------------------------------------------------------------------+---------------------------------------+---------
//cases/cross-repo-610:test                                               | _py_venv_test                         | 313ms   
//cases/firebase-admin-import:test                                        | py_test                               | 6s      
//cases/firebase-admin-import:test_exec                                   | _empty_test                           | 131ms   
//cases/freethreaded-805:test                                             | platform_transition_test              | 5.7s    
//cases/interpreter-features-836:test                                     | container_structure_test              | 11.7s   
//cases/interpreter-provisioning:test                                     | _py_venv_test                         | 625ms   
//cases/interpreter-version-541:test_3_10_classic                         | py_test                               | 431ms   
//cases/interpreter-version-541:test_3_10_venv                            | _py_venv_test                         | 105ms   
//cases/interpreter-version-541:test_3_11_classic                         | py_test                               | 1.1s    
//cases/interpreter-version-541:test_3_11_venv                            | _py_venv_test                         | 208ms   
//cases/interpreter-version-541:test_3_9_classic                          | py_test                               | 1.6s    
//cases/interpreter-version-541:test_3_9_venv                             | _py_venv_test                         | 414ms   
//cases/pth-namespace-547:test                                            | _py_venv_test                         | 816ms   
//cases/pth-namespace-547:test_legacy                                     | py_test                               | 1.1s    
//cases/py-library-defaultinfo-891:default_info_no_transitive_srcs_test   | _default_info_no_transitive_srcs_test | 65ms    
//cases/pytest-main-867:test_collection_check                             | py_test                               | 6.9s    
//cases/pytest-main-867:test_direct_pytest_main                           | py_test                               | 5.1s    
//cases/pytest-main-867:test_example                                      | py_test                               | 2.6s    
//cases/pytest-main-867:test_multi_src                                    | py_test                               | 4.6s    
//cases/pytest-main-867:test_naming_regression                            | py_test                               | 4.2s    
//cases/pytest-mock-530:test_mock_py_test                                 | py_test                               | 4.3s    
//cases/pytest-mock-530:test_mock_py_venv_test                            | _py_venv_test                         | 5.6s    
//cases/pytest-subdir-imports:test_subdir_import                          | py_test                               | 959ms   
//cases/pytest-xdist-integration:test_xdist                               | py_test                               | 9s      
//cases/repository-rule-deps-299:all_direct                               | py_test                               | 1.4s    
//cases/repository-rule-deps-299:test                                     | py_test                               | 990ms   
//cases/root-dir-paths-538:test_root_dir                                  | sh_test                               | 88ms    
//cases/root-dir-paths-538:test_root_dir_venv                             | sh_test                               | 401ms   
//cases/unconstrained-dependencies:get_python_package_version_humble_test | py_test                               | 4.8s    
//cases/unconstrained-dependencies:get_python_package_version_main_test   | py_test                               | 893ms   
//cases/uv-abi3-compat-853:test_import                                    | _py_venv_test                         | 562ms   
//cases/uv-conflict-817:test_a                                            | _py_venv_test                         | 928ms   
//cases/uv-conflict-817:test_b                                            | _py_venv_test                         | 717ms   
//cases/uv-conflict-gte:test_a                                            | _py_venv_test                         | 211ms   
//cases/uv-conflict-gte:test_b                                            | _py_venv_test                         | 480ms   
//cases/uv-conflict-max-863:test_a                                        | _py_venv_test                         | 468ms   
//cases/uv-conflict-max-863:test_b                                        | _py_venv_test                         | 396ms   
//cases/uv-conflict-tilde-856:test_a                                      | _py_venv_test                         | 425ms   
//cases/uv-conflict-tilde-856:test_b                                      | _py_venv_test                         | 84ms    
//cases/uv-console-script-binary:test                                     | sh_test                               | 3.1s    
//cases/uv-dep-hashes:test_import                                         | _py_venv_test                         | 505ms   
//cases/uv-dep-hashes:test_lockfile_hashless                              | sh_test                               | 74ms    
//cases/uv-deps-650/airflow:airflow                                       | _py_venv_test                         | 267ms   
//cases/uv-deps-650/crossbuild:exec_toolchain_resolution_test             | sh_test                               | 101ms   
//cases/uv-deps-650/extras:extras                                         | _py_venv_test                         | 1.7s    
//cases/uv-deps-650/say:say                                               | _py_venv_test                         | 593ms   
//cases/uv-include-group-versions:include_group_versions_build            | _py_venv_test                         | 313ms   
//cases/uv-include-group-versions:include_group_versions_test             | _py_venv_test                         | 1.3s    
//cases/uv-include-group:include_group                                    | _py_venv_test                         | 2.8s    
//cases/uv-legacy-deps-750:googlemaps                                     | _py_venv_test                         | 1.4s    
//cases/uv-no-sdist-754:test                                              | sh_test                               | 71ms    
//cases/uv-patching-829:test                                              | _py_venv_test                         | 165ms   
//cases/uv-platform-filter-844:test                                       | sh_test                               | 68ms    
//cases/uv-plus-version:test                                              | _py_venv_test                         | 841ms   
//cases/uv-toolchain:test                                                 | sh_test                               | 67ms    
//cases/uv-whl-install-output-group:test                                  | _py_venv_test                         | 1s      
//cases/uv-workspace-789:test                                             | _py_venv_test                         | 1.8s    
//cases/venv-bin-scripts-423:test                                         | _py_venv_test                         | 2.2s    
//cases/venv-conflict-608:test_no_venv_conflict                           | _empty_test                           | 32ms    
//cases/venv-internal-symlinks:test_internal_symlinks                     | _py_venv_test                         | 895ms   
//cases/venv-internal-symlinks:test_internal_symlinks_legacy              | py_test                               | 1.1s    
//cases/venv-isolated-mode-703:test                                       | _py_venv_test                         | 306ms   
//cases/windows-crossbuild-837:test                                       | sh_test                               | 91ms    
✅ 73 Targets Built
Label                                                                                  | Target Type                  
---------------------------------------------------------------------------------------+------------------------------
//cases/cross-repo-610/subrepo_a:foo                                                   | py_library                   
//cases/cross-repo-610/subrepo_b:bar                                                   | py_library                   
//cases/firebase-admin-import:firebase_importer                                        | py_binary                    
//cases/firebase-admin-import:run_in_exec                                              | genrule                      
//cases/interpreter-features-836:amd64_image                                           | platform_transition_filegroup
//cases/interpreter-features-836:amd64_layers                                          | platform_transition_filegroup
//cases/interpreter-features-836:image                                                 | oci_image                    
//cases/interpreter-features-836:image.digest                                          | jq_rule                      
//cases/interpreter-features-836:image_index_json                                      | directory_path               
//cases/interpreter-features-836:image_index_json_cp                                   | _copy_file                   
//cases/interpreter-features-836:image_write_entrypoint                                | _write_file                  
//cases/interpreter-features-836:layers                                                | filegroup                    
//cases/interpreter-features-836:layers.manifest                                       | mtree_spec                   
//cases/interpreter-features-836:layers_default                                        | tar                          
//cases/interpreter-features-836:layers_interpreter                                    | tar                          
//cases/interpreter-features-836:layers_manifests                                      | genrule                      
//cases/interpreter-features-836:layers_packages                                       | tar                          
//cases/interpreter-version-541:expanded_test_3_10.py                                  | expand_template              
//cases/interpreter-version-541:expanded_test_3_11.py                                  | expand_template              
//cases/interpreter-version-541:expanded_test_3_9.py                                   | expand_template              
//cases/oci/py_image_layer/branding:branding                                           | py_library                   
//cases/oci/py_image_layer:image_load_write_tags                                       | _write_file                  
//cases/oci/py_image_layer:image_write_entrypoint                                      | _write_file                  
//cases/oci/py_venv_image_layer:image_load_write_tags                                  | _write_file                  
//cases/oci/py_venv_image_layer:image_write_entrypoint                                 | _write_file                  
//cases/pytest-main-867:test_collection_check.pytest_paths                             | pytest_paths                 
//cases/pytest-main-867:test_example.pytest_paths                                      | pytest_paths                 
//cases/pytest-main-867:test_multi_src.pytest_paths                                    | pytest_paths                 
//cases/pytest-main-867:test_naming_regression.pytest_paths                            | pytest_paths                 
//cases/pytest-mock-530:test_mock_py_test.pytest_paths                                 | pytest_paths                 
//cases/pytest-subdir-imports:lib                                                      | py_library                   
//cases/pytest-subdir-imports:test_subdir_import.pytest_paths                          | pytest_paths                 
//cases/pytest-xdist-integration:test_xdist.pytest_paths                               | pytest_paths                 
//cases/repository-rule-deps-299/direct/directmod:directmod                            | py_library                   
//cases/repository-rule-deps-299/imported/flat:flat                                    | py_library                   
//cases/repository-rule-deps-299/imported:subdir                                       | py_library                   
//cases/repository-rule-deps-299/toplevel:toplevel                                     | py_library                   
//cases/root-dir-paths-538:check_paths_bin                                             | py_binary                    
//cases/root-dir-paths-538:check_paths_venv_bin                                        | _py_venv_binary              
//cases/unconstrained-dependencies:get_python_package_version_humble_test.pytest_paths | pytest_paths                 
//cases/unconstrained-dependencies:get_python_package_version_main_test.pytest_paths   | pytest_paths                 
//cases/unconstrained-dependencies:print_python_package_version_humble                 | py_binary                    
//cases/unconstrained-dependencies:print_python_package_version_main                   | py_binary                    
//cases/uv-console-script-binary:_mkdocs_search                                        | genrule                      
//cases/uv-console-script-binary:_mkdocs_search_binary                                 | _py_venv_binary              
//cases/uv-console-script-binary:_whoowns_explicit_search                              | genrule                      
//cases/uv-console-script-binary:_whoowns_explicit_search_binary                       | _py_venv_binary              
//cases/uv-console-script-binary:_whoowns_search                                       | genrule                      
//cases/uv-console-script-binary:_whoowns_search_binary                                | _py_venv_binary              
//cases/uv-console-script-binary:mkdocs                                                | _py_venv_binary              
//cases/uv-console-script-binary:whoowns                                               | _py_venv_binary              
//cases/uv-console-script-binary:whoowns_explicit                                      | _py_venv_binary              
//cases/uv-deps-650/crossbuild:image_write_entrypoint                                  | _write_file                  
//cases/uv-deps-650/crossbuild:unpack_path                                             | unpack_toolchain_path        
//cases/uv-deps-650/crossbuild:unpack_path_for_arm64                                   | unpack_toolchain_path        
//cases/uv-deps-650/crossbuild:unpack_path_for_arm64_transition                        | platform_transition_filegroup
//cases/uv-deps-650/third_party/cowsay:cowsay                                          | py_library                   
//cases/uv-gazelle-778:_gazelle_python_manifest_pypi_airflow_whls                      | platform_transition_filegroup
//cases/uv-gazelle-778:_gazelle_python_manifest_pypi_crossbuild_whls                   | platform_transition_filegroup
//cases/uv-gazelle-778:_gazelle_python_manifest_pypi_extras_whls                       | platform_transition_filegroup
//cases/uv-gazelle-778:_gazelle_python_manifest_pypi_say_whls                          | platform_transition_filegroup
//cases/uv-gazelle-778:gazelle_python_manifest                                         | _modules_mapping             
//cases/uv-gazelle-778:gazelle_python_manifest.update                                  | sh_binary                    
//cases/uv-no-sdist-754:pywin32_targets                                                | genquery                     
//cases/uv-platform-filter-844:watchdog_targets                                        | genquery                     
//cases/uv-toolchain:uv_bazel_fork_version                                             | genrule                      
//cases/uv-toolchain:uv_custom_version                                                 | genrule                      
//cases/uv-toolchain:uv_legacy_version                                                 | genrule                      
//cases/uv-toolchain:uv_mirror_version                                                 | genrule                      
//cases/uv-toolchain:uv_version                                                        | genrule                      
//cases/venv-conflict-608:app                                                          | py_binary                    
//cases/windows-crossbuild-837:windows_arm64_toolchain_deps                            | genquery                     
//cases/windows-crossbuild-837:windows_x64_toolchain_deps                              | genquery                     
⤵️ 70 Targets Skipped
Label                                                         | Target Type                  
--------------------------------------------------------------+------------------------------
//cases/oci/py_image_layer:amd64_image                        | platform_transition_filegroup
//cases/oci/py_image_layer:image                              | oci_image                    
//cases/oci/py_image_layer:image.digest                       | jq_rule                      
//cases/oci/py_image_layer:image_index_json                   | directory_path               
//cases/oci/py_image_layer:image_index_json_cp                | _copy_file                   
//cases/oci/py_image_layer:image_load                         | oci_load                     
//cases/oci/py_image_layer:my_app_bin                         | py_binary                    
//cases/oci/py_image_layer:my_app_layers                      | filegroup                    
//cases/oci/py_image_layer:my_app_layers.manifest             | mtree_spec                   
//cases/oci/py_image_layer:my_app_layers_default              | tar                          
//cases/oci/py_image_layer:my_app_layers_interpreter          | tar                          
//cases/oci/py_image_layer:my_app_layers_manifests            | genrule                      
//cases/oci/py_image_layer:my_app_layers_packages             | tar                          
//cases/oci/py_image_layer:my_app_layers_test                 | _write_source_file           
//cases/oci/py_image_layer:my_app_layers_test_listing         | genrule                      
//cases/oci/py_image_layer:my_app_layers_test_test            | _diff_test                   
//cases/oci/py_image_layer:platform_image                     | platform_transition_filegroup
//cases/oci/py_image_layer:platform_layers                    | platform_transition_filegroup
//cases/oci/py_image_layer:py_image_test                      | container_structure_test     
//cases/oci/py_venv_image_layer:amd64_image                   | platform_transition_filegroup
//cases/oci/py_venv_image_layer:amd64_layers                  | platform_transition_filegroup
//cases/oci/py_venv_image_layer:arm64_image                   | platform_transition_filegroup
//cases/oci/py_venv_image_layer:arm64_layers                  | platform_transition_filegroup
//cases/oci/py_venv_image_layer:image                         | oci_image                    
//cases/oci/py_venv_image_layer:image.digest                  | jq_rule                      
//cases/oci/py_venv_image_layer:image_index_json              | directory_path               
//cases/oci/py_venv_image_layer:image_index_json_cp           | _copy_file                   
//cases/oci/py_venv_image_layer:image_load                    | oci_load                     
//cases/oci/py_venv_image_layer:my_app_amd64_layers           | _write_source_file           
//cases/oci/py_venv_image_layer:my_app_amd64_layers_listing   | genrule                      
//cases/oci/py_venv_image_layer:my_app_amd64_layers_test      | _diff_test                   
//cases/oci/py_venv_image_layer:my_app_arm64_layers           | _write_source_file           
//cases/oci/py_venv_image_layer:my_app_arm64_layers_listing   | genrule                      
//cases/oci/py_venv_image_layer:my_app_arm64_layers_test      | _diff_test                   
//cases/oci/py_venv_image_layer:my_app_layers                 | filegroup                    
//cases/oci/py_venv_image_layer:my_app_layers.manifest        | mtree_spec                   
//cases/oci/py_venv_image_layer:my_app_layers_default         | tar                          
//cases/oci/py_venv_image_layer:my_app_layers_interpreter     | tar                          
//cases/oci/py_venv_image_layer:my_app_layers_manifests       | genrule                      
//cases/oci/py_venv_image_layer:my_app_layers_packages        | tar                          
//cases/oci/py_venv_image_layer:platform_image                | platform_transition_filegroup
//cases/oci/py_venv_image_layer:py_amd64_image_command_test   | container_structure_test     
//cases/oci/py_venv_image_layer:py_amd64_image_content_test   | container_structure_test     
//cases/oci/py_venv_image_layer:py_arm64_image_command_test   | container_structure_test     
//cases/oci/py_venv_image_layer:py_arm64_image_content_test   | container_structure_test     
//cases/unconstrained-dependencies:get_python_package_version | py_library                   
//cases/uv-deps-650/crossbuild:amd64_image                    | platform_transition_filegroup
//cases/uv-deps-650/crossbuild:amd64_layers                   | platform_transition_filegroup
//cases/uv-deps-650/crossbuild:app_bin                        | _py_venv_binary              
//cases/uv-deps-650/crossbuild:app_layers                     | filegroup                    
//cases/uv-deps-650/crossbuild:app_layers.manifest            | mtree_spec                   
//cases/uv-deps-650/crossbuild:app_layers_default             | tar                          
//cases/uv-deps-650/crossbuild:app_layers_interpreter         | tar                          
//cases/uv-deps-650/crossbuild:app_layers_manifests           | genrule                      
//cases/uv-deps-650/crossbuild:app_layers_packages            | tar                          
//cases/uv-deps-650/crossbuild:arm64_image                    | platform_transition_filegroup
//cases/uv-deps-650/crossbuild:arm64_layers                   | platform_transition_filegroup
//cases/uv-deps-650/crossbuild:crossbuild_compile_pyc_test    | sh_test                      
//cases/uv-deps-650/crossbuild:image                          | oci_image                    
//cases/uv-deps-650/crossbuild:image.digest                   | jq_rule                      
//cases/uv-deps-650/crossbuild:image_index                    | oci_image_index              
//cases/uv-deps-650/crossbuild:image_index.digest             | jq_rule                      
//cases/uv-deps-650/crossbuild:image_index_index_json         | directory_path               
//cases/uv-deps-650/crossbuild:image_index_index_json_cp      | _copy_file                   
//cases/uv-deps-650/crossbuild:image_index_json               | directory_path               
//cases/uv-deps-650/crossbuild:image_index_json_cp            | _copy_file                   
//cases/uv-sdist-native-build:test                            | _py_venv_test                
//cases/uv-whl-install-output-group:iniconfig_install_dir     | filegroup                    
//cases/uv-workspace-789/packages/foo:foo                     | py_library                   
//cases/uv-workspace-789/packages/pi:pi                       | py_library                   

🔁 Reproduce

aspect test -- //...
# without Aspect CLI
bazel test -- //...

Install aspect: docs.aspect.build/cli/install

📎 Artifacts

Artifacts · Profile · BEP

⏱️ Task timing

Phase | Description                  | Duration
------+------------------------------+---------
Setup | Prepare the task environment | 6.5s    
Test  | Run bazel tests              | 32m 32s 
------+------------------------------+---------
Total |                              | 32m 38s 

🧮 Bazel details

📟 Command line · bazel test //...
bazel test \
  --experimental_output_paths=strip \
  --disk_cache=/home/runner/.cache/bazel-disk \
  --test_tag_filters=-skip-on-bazel9 \
  --generate_json_trace_profile=1 \
  --experimental_profile_include_target_label \
  --profile=/tmp/74488855-3026-41fb-8459-ccc520a03af8.profile.gz \
  --color=yes \
  --build_metadata=ASPECT_TASK_NAME=Test \
  --build_metadata=ASPECT_TASK_ID=test-e2e-bazel-9 \
  --build_event_publish_all_actions \
  --build_event_binary_file_upload_mode=fully_async \
  --build_event_binary_file=/tmp/build-event-out-37d9d44f-2cea-485b-a187-0834da83b5f3.bin \
  -- \
  //...
ℹ️ Invocation details
  • Invocation ID: c4c211dc-ee4b-4b4a-a2af-c5b53cc63b06
  • Command: test
  • Bazel version: 9.1.1
  • Start time: Sat Jul 4 16:47:42 UTC 2026
  • End time: Sat Jul 4 17:19:59 UTC 2026
  • User: runner
  • Host name: runnervmjbsos
  • CPU Target: x86_64
  • Mode: fastbuild
  • Working directory: /home/runner/work/rules_py/rules_py/e2e
  • Workspace directory: /home/runner/work/rules_py/rules_py/e2e
  • Server PID: 2915
⏱ Timing
  • Elapsed time: 32m 16s
  • Analysis time: 36.3s
  • Execution time: 32m 10s
  • Bazel server time: 1.3 cpu-hours
  • Executed Tests Time: 1.8 cpu-minutes
📦 Build graph
  • Targets: 206 targets (2,284,778 configured, 6,524 aspect applications)
  • Actions: 84,685 actions (172,864 created)
  • Packages: 1,350 packages loaded
💾 Cache stats
  • Actions: 88,179 of 172,864 cached (51%)
  • Tests: 0 of 63 cached (0%)
⚡ Actions by mnemonic (20)
Mnemonic              | Count  | %    
----------------------+--------+------
CppCompile            | 39,153 | 46.2%
Rustc                 | 17,304 | 20.4%
Symlink               | 9,324  | 11.0%
FileWrite             | 2,557  | 3.0% 
ExecutableSymlink     | 2,276  | 2.6% 
CppArchive            | 1,842  | 2.1% 
RepoMappingManifest   | 1,686  | 1.9% 
RunfilesTree          | 1,684  | 1.9% 
SourceSymlinkManifest | 1,684  | 1.9% 
CargoBuildScriptRun   | 1,563  | 1.8% 
CppModuleMap          | 1,170  | 1.3% 
CppLink               | 975    | 1.1% 
CopyToDirectory       | 821    | 0.9% 
CcStage0Compile       | 585    | 0.6% 
CppTransitiveArchive  | 585    | 0.6% 
…5 more (1,373 actions)
🏃 Actions by runner (3)
Runner                  | Count  | %    
------------------------+--------+------
linux-sandbox · Local   | 63,304 | 74.7%
internal                | 20,678 | 24.4%
disk cache hit · Remote | 756    | 0.8% 
🏠 Workspace status (4)
  • BUILD_HOST: runnervmjbsos
  • BUILD_TIMESTAMP: 1783183668
  • BUILD_USER: runner
  • FORMATTED_DATE: 2026 Jul 04 16 47 48 Sat
🏷️ Build metadata (2)
  • ASPECT_TASK_ID: test-e2e-bazel-9
  • ASPECT_TASK_NAME: Test
🎛️ Startup options (11)
--connect_timeout_secs=30
--failure_detail_out=/home/runner/.cache/bazel/_bazel_runner/ea5a46adc4ace432824f7d10087e1393/failure_detail.rawproto
--idle_server_tasks
--max_idle_secs=10800
--noclient_debug
--nofatal_event_bus_exceptions
--noshutdown_on_low_sys_mem
--nowindows_enable_symlinks
--output_base=/home/runner/.cache/bazel/_bazel_runner/ea5a46adc4ace432824f7d10087e1393
--output_user_root=/home/runner/.cache/bazel/_bazel_runner
--write_command_log
🎛️ Command options (22)
--build_event_binary_file=/tmp/build-event-out-37d9d44f-2cea-485b-a187-0834da83b5f3.bin
--build_event_binary_file_upload_mode=fully_async
--build_event_publish_all_actions
--build_metadata=ASPECT_TASK_ID=test-e2e-bazel-9
--build_metadata=ASPECT_TASK_NAME=Test
--color=yes
--disk_cache=/home/runner/.cache/bazel-disk
--enable_platform_specific_config
--experimental_output_paths=strip
--experimental_profile_include_target_label
--generate_json_trace_profile=1
--host_platform=//:linux_gnu
--incompatible_enable_cc_toolchain_resolution
--lockfile_mode=off
--nobuild_runfile_links
--platforms=//:linux_gnu
--profile=/tmp/74488855-3026-41fb-8459-ccc520a03af8.profile.gz
--remote_download_outputs=minimal
--repo_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1
--repo_env=BAZEL_NO_APPLE_CPP_TOOLCHAIN=1
--repository_cache=/home/runner/.cache/bazel-repo
--test_tag_filters=-skip-on-bazel9

⏱ Last updated Sat Jul 4 17:20:04 UTC 2026 · 📊 GitHub API quota 1,290/15,000 (9% used, resets in 49m, throttle 3×)
🚀 Powered by Aspect CLI (v2026.22.44)  |  Aspect Build · X · LinkedIn · YouTube