From bcd8690a2f571e543c854769df64de70ed700b57 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Sun, 5 Jul 2026 09:16:43 +0200 Subject: [PATCH] CI: run lazy api/integration jobs with LAZY_TOOL_STRICT=1 The lazy dispatch jobs set use_lazy_toolbox=true but left LazyTool in its permissive default, where an off-surface attribute read materialises the tool with only a WARN log. An accidental whole-toolbox sweep (a new caller iterating toolbox.tools() and touching an un-forwarded attr) would therefore degrade lazy mode to O(N) tool parses without failing CI. Set LAZY_TOOL_STRICT=1 in the lazy dispatch env so those reads raise NotImplementedError instead, turning any such regression into a hard failure on the lazy run. Legitimate materialisation (to_dict, the execution path) goes through _materialize() directly and is unaffected. Claude-Session: https://claude.ai/code/session_018L7ZmCv2ubKA3JNeSL8Pkr --- .github/workflows/api.yaml | 5 +++++ .github/workflows/integration.yaml | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/.github/workflows/api.yaml b/.github/workflows/api.yaml index 8e95faa2e2c..388b90ea334 100644 --- a/.github/workflows/api.yaml +++ b/.github/workflows/api.yaml @@ -58,6 +58,11 @@ jobs: run: | echo "GALAXY_CONFIG_OVERRIDE_USE_LAZY_TOOLBOX=true" >> $GITHUB_ENV echo "GALAXY_CONFIG_OVERRIDE_TOOL_SOURCE_STORE=database" >> $GITHUB_ENV + # Raise instead of silently materialising on any off-surface + # LazyTool attribute read, so an accidental whole-toolbox + # materialisation regression fails the lazy run loudly rather + # than degrading to O(N) tool parses with only a WARN log. + echo "LAZY_TOOL_STRICT=1" >> $GITHUB_ENV - uses: actions/checkout@v7.0.0 with: path: 'galaxy root' diff --git a/.github/workflows/integration.yaml b/.github/workflows/integration.yaml index 6b736b1db33..93c90071e10 100644 --- a/.github/workflows/integration.yaml +++ b/.github/workflows/integration.yaml @@ -98,6 +98,11 @@ jobs: run: | echo "GALAXY_CONFIG_OVERRIDE_USE_LAZY_TOOLBOX=true" >> $GITHUB_ENV echo "GALAXY_CONFIG_OVERRIDE_TOOL_SOURCE_STORE=database" >> $GITHUB_ENV + # Raise instead of silently materialising on any off-surface + # LazyTool attribute read, so an accidental whole-toolbox + # materialisation regression fails the lazy run loudly rather + # than degrading to O(N) tool parses with only a WARN log. + echo "LAZY_TOOL_STRICT=1" >> $GITHUB_ENV - name: Prune unused docker image, volumes and containers run: docker system prune -a -f - name: Clean dotnet folder for space