Repository navigation
feat(odin): Let Integrations API own the available actions limit - #596
Conversation
…s per task Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Code Review
This pull request increases the maximum number of available actions sent at startup from 100 to 250 in the unstable package to align with the Odin limit. This allows extractors with up to 100 actionable tasks (each registering a start and stop action) plus custom actions to register. The changes define a MAX_AVAILABLE_ACTIONS constant, update the Pydantic validation limits, and add corresponding unit tests to verify the new limits. I have no feedback to provide as there are no review comments.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #596 +/- ##
=======================================
Coverage 84.16% 84.16%
=======================================
Files 46 46
Lines 4711 4711
=======================================
Hits 3965 3965
Misses 746 746
🚀 New features to boost your workflow:
|
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Yaseen-A-Khan
left a comment
There was a problem hiding this comment.
Have some minor comments
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
trygveu
left a comment
There was a problem hiding this comment.
🦄 This is an improvement, but there might be a couple of issues to think throug. See below.
Summary
Removes the client-side limit of 100 on
availableActionsin the startup request. Integrations API (Odin) now owns the maximum, so raising it needs no extractor-utils release.Type of change
What changed
unstable/core/_dto.py:AvailableActionListis a plainlist[AvailableActionWrite](was capped at 100).tests/test_unstable/test_dto.py: the max-length test now asserts that 500 available actions are accepted; the action-updates cap test (100) is unchanged.tests/test_unstable/test_action_registration.py: 300 actionable tasks build a startup request with exactly 2 x 300 + the custom actions.CHANGELOG.md: Unreleased entry underFixed.Why it changed
Each actionable task costs 2 actions, so the old cap of 100 allowed only 49 actionable tasks while Odin's
task_limitis 100. The limit is now defined only in Odin (odin #334), so it is changed in one place.task_limit+ 50); EDG-1032 (fix(odin): Make check-ins resilient to startup failures and transient network errors (EDG-1032) #588) makes unexpected check-in thread errors fatal instead of silentWhat to focus on during review
RETRY_STARTUP(defaultTrueonExtractor), retries until the limit is raised or the extractor stops; it does not fail fast. Making permanent 4xx startup errors fatal is a follow-up (it touches the check-in error handling that fix(odin): Make check-ins resilient to startup failures and transient network errors (EDG-1032) #588 rewrites).MAX_ACTION_UPDATES_PER_CHECKIN(100) is intentionally unchanged: excess updates carry over to the next check-in.Test evidence
uv run pytest tests/test_unstable/test_dto.py tests/test_unstable/test_action_registration.py-> 72 passedpre-commit run --all-files-> all hooks passedtests/test_unstablesuite has the same live-CDF failures/errors as cleanmaster(noCOGNITE_DEV_PROJECTlocally); needs CI.Risks and unknowns
Rollout and rollback
Checklist
🤖 Generated with Claude Code