Skip to content

feat: formalize system actor services and SHM control plane - #74

Merged
reiase merged 2 commits into
mainfrom
feature/system-actor-services
Jul 26, 2026
Merged

feat: formalize system actor services and SHM control plane#74
reiase merged 2 commits into
mainfrom
feature/system-actor-services

Conversation

@reiase

@reiase reiase commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Summary

  • formalize system/core as the permanent SystemRoot entry point backed by explicit host capabilities, service manifests, lifecycle states, and typed internal commands
  • add built-in runtime@1, actors@1, metrics@1, and shm@1 services while preserving the legacy SystemMessage adapter
  • introduce an ActorSystem-owned in-process SHM control plane with offer/publish/open, leases, expiration, revocation, drain, and host-level cleanup semantics
  • defer cluster publication until SystemRoot is ready, use the authoritative actor registry for lifecycle operations, and cleanly unwind cluster/host state on bootstrap failure
  • separate tensor transport routing policy from the HTTP/2 client and retain existing raw TCP / HTTP/2 compatibility behavior until a real cross-process SHM backend exists
  • document the System Actor and System Service architecture in English and Chinese

Compatibility

Existing system/core, SystemMessage, actor APIs, and tensor wire behavior remain available. The old SystemRef spawn-time snapshots remain source-compatible but are deprecated and no longer populated by ActorSystem bootstrap. SHM is deliberately reported as an in-process backend; this PR does not claim cross-process mapping or transport authentication.

Validation

  • cargo test -p pulsing-actor — 532 passed, 0 failed, 18 ignored
  • cargo clippy -p pulsing-actor --lib --tests -- -D warnings
  • cargo fmt --all
  • git diff --check

reiase added 2 commits July 26, 2026 17:29
- Streamlined conditional checks and assertions in `remote.py` and `test_tensor_message.py` for better clarity.
- Enhanced formatting in `__init__.py` to maintain consistent style across the codebase.
- Adjusted line breaks and indentation in various test cases to improve overall readability.
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 82.33533% with 236 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
crates/pulsing-actor/src/system_actor/host.rs 74.15% 46 Missing ⚠️
crates/pulsing-actor/src/system_actor/service.rs 87.37% 39 Missing ⚠️
crates/pulsing-actor/src/system_actor/mod.rs 52.70% 35 Missing ⚠️
crates/pulsing-actor/src/system/mod.rs 82.58% 31 Missing ⚠️
crates/pulsing-actor/src/system_actor/builtin.rs 78.50% 23 Missing ⚠️
crates/pulsing-actor/src/system_actor/shm.rs 93.70% 17 Missing ⚠️
crates/pulsing-actor/src/system_actor/lifecycle.rs 79.48% 16 Missing ⚠️
crates/pulsing-actor/src/transport/http2/client.rs 0.00% 16 Missing ⚠️
crates/pulsing-actor/src/transport/tensor.rs 85.00% 9 Missing ⚠️
crates/pulsing-actor/src/system/lifecycle.rs 87.09% 4 Missing ⚠️
Files with missing lines Coverage Δ
crates/pulsing-actor/src/system/handle.rs 50.00% <ø> (ø)
crates/pulsing-actor/src/system/handler.rs 75.07% <100.00%> (+0.15%) ⬆️
crates/pulsing-actor/src/system/spawn.rs 98.00% <100.00%> (+0.08%) ⬆️
crates/pulsing-actor/src/system/traits.rs 60.75% <100.00%> (+6.26%) ⬆️
crates/pulsing-actor/src/system_actor/messages.rs 78.57% <ø> (ø)
python/pulsing/core/__init__.py 76.08% <ø> (ø)
python/pulsing/core/remote.py 77.18% <100.00%> (+0.31%) ⬆️
crates/pulsing-actor/src/system/lifecycle.rs 88.88% <87.09%> (-0.51%) ⬇️
crates/pulsing-actor/src/transport/tensor.rs 83.12% <85.00%> (+0.38%) ⬆️
crates/pulsing-actor/src/system_actor/lifecycle.rs 79.48% <79.48%> (ø)
... and 7 more

... and 2 files with indirect coverage changes

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

@reiase
reiase marked this pull request as ready for review July 26, 2026 11:01
@reiase
reiase merged commit 501d48c into main Jul 26, 2026
23 checks passed
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.

2 participants