Skip to content

Conversation

@reiase
Copy link
Contributor

@reiase reiase commented Jan 25, 2026

Overview:

Details:

Where should the reviewer start?

Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to)

  • closes GitHub issue: #xxx

- Removed deprecated methods from `ActorSystemCoreExt` and `ActorSystemAdvancedExt` to simplify the API.
- Consolidated actor spawning logic into a single internal method, enhancing clarity and reducing redundancy.
- Updated usage of actor spawning in tests and examples to utilize the new builder pattern for improved readability and maintainability.
- Adjusted imports and module structure for better organization and consistency across the codebase.
…ptions

- Simplified the handling of lazy actor references by delegating message sending to resolved references, reducing complexity and avoiding recursion.
- Introduced a new `Format` enum for message serialization, supporting binary and JSON formats, with auto-detection capabilities for improved flexibility.
- Updated the `SpawnOptions` and `ResolveOptions` structures to utilize default constructors, enhancing code clarity and consistency.
- Improved error handling in the `SpawnBuilder` for actor name validation, ensuring clearer feedback on invalid paths.
- Adjusted documentation and examples to reflect the new default options and serialization methods.
- Updated the ActorLifecycle struct to replace string-based identifiers with ActorId for both watchers and targets, enhancing type safety and consistency.
- Modified watch and unwatch methods to accept ActorId parameters, streamlining the registration and removal of watchers.
- Adjusted related methods and tests to reflect the new ActorId usage, ensuring proper functionality and improved clarity in actor relationships.
- Enhanced logging to utilize ActorId for better traceability during watch operations.
- Introduced UUID-based ActorId and NodeId, replacing previous numeric identifiers for improved uniqueness and traceability.
- Updated ActorAddress to support new UUID format, ensuring backward compatibility with legacy formats.
- Refactored tests and system components to utilize the new ActorId structure, enhancing clarity and consistency across the codebase.
- Added `uuid` dependency to the project for UUID generation and handling.
- Modified Justfile to include necessary build dependencies for Python and C++ integration.
- Introduced SystemActorProxy and PythonActorServiceProxy for direct method calls, improving interaction with system and service actors.
- Refactored BucketStorage and TopicBroker to utilize remote method support, streamlining actor communication.
- Updated tests to validate new proxy methods and ensure proper functionality across various scenarios.
- Enhanced message serialization and error handling for improved robustness and clarity in actor interactions.
… handling

- Converted StorageManager from an Actor to a remote class, enabling direct method calls.
- Replaced message-based communication with explicit method calls for bucket and topic management.
- Updated related methods to enhance clarity and maintainability, including get_bucket, get_topic, list_buckets, and get_stats.
- Adjusted tests to validate the new proxy method interactions, ensuring proper functionality across scenarios.
- Unified error handling by introducing a clear hierarchy of error types, including `PulsingError`, `RuntimeError`, and `ActorError`.
- Updated the `PulsingError` enum to categorize errors into `RuntimeError` for framework-level issues and `ActorError` for user-defined execution errors.
- Refactored error conversion logic to ensure seamless integration between Rust and Python, allowing for better error classification and handling.
- Enhanced error messages for clarity and consistency across the system, improving debugging and user feedback.
- Updated tests to validate the new error handling mechanisms and ensure proper functionality across various scenarios.
Signed-off-by: Reiase <reiase@gmail.com>
@reiase reiase merged commit 5fd3d19 into main Jan 25, 2026
8 checks passed
@codecov-commenter
Copy link

Codecov Report

❌ Patch coverage is 43.38235% with 154 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
crates/pulsing-actor/src/error.rs 49.00% 77 Missing ⚠️
python/pulsing/actor/remote.py 13.95% 37 Missing ⚠️
crates/pulsing-actor/src/transport/http2/client.rs 37.50% 15 Missing ⚠️
python/pulsing/exceptions.py 61.29% 12 Missing ⚠️
crates/pulsing-actor/src/behavior/reference.rs 0.00% 5 Missing ⚠️
crates/pulsing-actor/src/system/handler.rs 0.00% 3 Missing ⚠️
crates/pulsing-actor/src/system/resolve.rs 57.14% 3 Missing ⚠️
crates/pulsing-actor/src/transport/http2/mod.rs 0.00% 2 Missing ⚠️
Files with missing lines Coverage Δ
crates/pulsing-actor/src/system/spawn.rs 96.80% <100.00%> (+0.06%) ⬆️
python/pulsing/actor/__init__.py 86.27% <100.00%> (+0.56%) ⬆️
crates/pulsing-actor/src/transport/http2/mod.rs 85.56% <0.00%> (ø)
crates/pulsing-actor/src/system/handler.rs 48.92% <0.00%> (-0.54%) ⬇️
crates/pulsing-actor/src/system/resolve.rs 60.69% <57.14%> (-1.12%) ⬇️
crates/pulsing-actor/src/behavior/reference.rs 10.29% <0.00%> (-0.32%) ⬇️
python/pulsing/exceptions.py 61.29% <61.29%> (ø)
crates/pulsing-actor/src/transport/http2/client.rs 57.81% <37.50%> (-1.63%) ⬇️
python/pulsing/actor/remote.py 63.14% <13.95%> (-3.90%) ⬇️
crates/pulsing-actor/src/error.rs 43.26% <49.00%> (-20.43%) ⬇️

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants