Skip to content

Conversation

@unbalancedparentheses
Copy link

Summary

Add comprehensive tests for the new supervisor helper functionality added in PR #96:

  • test_restart_type_should_restart_permanent: verify Permanent always restarts
  • test_restart_type_should_restart_transient: verify Transient only restarts on crash
  • test_restart_type_should_restart_temporary: verify Temporary never restarts
  • test_restart_intensity_tracker_basic: verify restart counting and limiting
  • test_restart_intensity_tracker_reset: verify reset clears recorded restarts

Depends on: PR #96 (Supervisor Improvements)

Test plan

  • All 84 tests pass (79 existing + 5 new)
  • Clippy passes with no warnings
  • Cargo check passes

🤖 Generated with Claude Code

unbalancedparentheses and others added 11 commits January 8, 2026 02:23
Rename types from Erlang-style names to more accessible, universal terminology
as specified in ROADMAP.md.

Type renames:
- GenServer → Actor
- GenServerHandle<G> → ActorRef<A>
- CallMsg → Request
- CastMsg → Message
- OutMsg → Reply
- CallResponse → RequestResult
- CastResponse → MessageResult
- InfoResponse → InfoResult
- GenServerError → ActorError
- GenServerInMsg → ActorInMsg

Method renames:
- handle_call → handle_request
- handle_cast → handle_message

Error variant renames:
- CallMsgUnused → RequestUnused
- CastMsgUnused → MessageUnused
- CallTimeout → RequestTimeout

File renames:
- gen_server.rs → actor.rs (in both tasks/ and threads/ modules)

This is a breaking change that affects the public API but makes the library
more accessible to developers unfamiliar with Erlang/OTP terminology.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add Backend enum to allow explicit selection of how an Actor is spawned:
- Async: Run on the async runtime (tokio tasks) - cooperative multitasking
- Blocking: Run on blocking thread pool (spawn_blocking) - for blocking I/O
- Thread: Run on dedicated OS thread - for long-running singletons

Add start_with_backend(backend: Backend) method to Actor trait that
provides a unified API for runtime selection. Existing start(),
start_blocking(), and start_on_thread() methods remain as convenience
aliases.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add helper methods and extract common patterns:

- Add RestartType::should_restart() method to determine if a child
  should be restarted based on exit reason
- Extract RestartIntensityTracker struct to track restart frequency
  and prevent restart storms
- Add ChildSpec::new_with_type() helper to reduce code duplication
  between worker() and supervisor() constructors
- Export RestartIntensityTracker from crate root

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add comprehensive tests for the new supervisor helper functionality:

- test_restart_type_should_restart_permanent: verify Permanent always restarts
- test_restart_type_should_restart_transient: verify Transient only restarts on crash
- test_restart_type_should_restart_temporary: verify Temporary never restarts
- test_restart_intensity_tracker_basic: verify restart counting and limiting
- test_restart_intensity_tracker_reset: verify reset clears recorded restarts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@unbalancedparentheses
Copy link
Author

Closing: This PR was based on a diverged fork. The changes have been reorganized into PRs #102 and #103 for proper sequencing.

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.

1 participant