Conversation
This commit introduces a new `scopes_exclude` configuration parameter for compute services, addressing issue #222. Changes: - Added `scopes_exclude` field to ComputeServiceSettings with validation - Updated ComputeService to initialize and pass scopes_exclude to client - Updated ComputeClient.claim_tasks() to accept and transmit scopes_exclude - Updated compute API /claim endpoint to filter taskhubs based on excluded scopes - Filtering uses Scope.is_superset() to exclude taskhubs matching excluded scopes The scopes_exclude option is applied after scopes as a filter, allowing users to specify broad scopes while excluding specific subset scopes from task claiming. Fixes #222
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #477 +/- ##
==========================================
+ Coverage 78.88% 79.54% +0.65%
==========================================
Files 29 29
Lines 4808 4830 +22
==========================================
+ Hits 3793 3842 +49
+ Misses 1015 988 -27 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
The validate_scopes_exclude validator crashed on None input (the field default), since it attempted to slice a None value. Added a None guard. Also added unit tests for the validator and integration tests for the /claim endpoint and client with scopes_exclude filtering, including edge cases for excluding all scopes and wildcard exclusions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The same None-guard issue existed in validate_scopes — it would crash when scopes defaults to None. Added the guard and a unit test. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace verbose nested loop with dict comprehension using any(). Apply minimize_scope_space to scopes_exclude to eliminate redundant exclusion checks. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Extract _make_token_data_override and _make_compute_api_no_auth helpers to eliminate duplication between single-scope and multi-scope fixtures. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
dotsdl
commented
Mar 17, 2026
Member
Author
dotsdl
left a comment
There was a problem hiding this comment.
I'm happy with this. Ready for review @ianmkenney!
Starlette's TestClient needs json= to set Content-Type: application/json automatically. Using content=json.dumps(...) sends raw bytes without the proper content type, causing FastAPI to return 422. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This commit introduces a new
scopes_excludeconfiguration parameter for compute services, addressing issue #222.Changes:
scopes_excludefield to ComputeServiceSettings with validationThe scopes_exclude option is applied after scopes as a filter, allowing users to specify broad scopes while excluding specific subset scopes from task claiming.
Fixes #222