You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adopts static type checking (mypy) for the eggai package as a CI gate, plus the annotation cleanups required to make it pass. Along the way this fixes a couple of error paths.
Status: ⚠️ FAILED - Critical or high severity issues found
Summary
Total Issues: 27
Critical: 0 🔴
High: 4 🟠
Medium: 16 🟡
Low: 7 🟢
Files Analyzed: 20
🟠 High Issues (4)
sdk/eggai/channel.py:104 - bug
Transport is subscribed before the connection is established, which may cause the subscription to fail or behave incorrectly if the transport requires an active connection first.
sdk/eggai/hooks.py:90 - bug
Signal handler lambda captures sig loop variable incorrectly, always using the last value of sig in the fallback signal.signal path.
sdk/eggai/transport/redis.py:562 - bug
When retry_on_idle_ms is set but group is None (i.e., handler_id is None and no explicit group was passed), the reclaimer is set up with group=None, which will likely cause a runtime error or silent misbehavior in the reclaimer and the Redis XAUTOCLAIM/XPENDING commands that require a valid group name.
sdk/eggai/transport/kafka.py:148 - performance
The force_metadata_update() call is made synchronously on the internal aiokafka client without any timeout, which can block the event loop if the Kafka broker is slow or unreachable.
🟡 Medium Issues (16)
sdk/eggai/adapters/a2a/executor.py:36 - security
A2A error response leaks the complete list of registered skill handler names to any caller, enabling full skill-surface enumeration.
sdk/eggai/adapters/a2a/executor.py:54 - bug
When data_type has __args__ but validation fails, the code still attempts to instantiate data_type(source=..., type=..., data=validated_data) with the raw dict, which may raise a TypeError or validation error if the constructor expects a validated model instance.
sdk/eggai/adapters/a2a/plugin.py:50 - bug
subscribe() raises ValueError when data_type is None, but register_skill() accepts data_type: type | None, making the None case unreachable through the normal path and the error message misleading.
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
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.
Summary
Adopts static type checking (mypy) for the
eggaipackage as a CI gate, plus the annotation cleanups required to make it pass. Along the way this fixes a couple of error paths.