improvement!: convert commands from Task-based to GenServer-based execution #27
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
ParamRefresolutionBB.Server.ParamResolutionChanges
New modules
BB.Command.Server- GenServer wrapper for command callback modulesBB.Command.ResultCache- ETS-based cache for command results (handles race between process death and await)BB.Error.State.CommandCrashed- Structured error for crashed commandsBB.Server.ParamResolution- Shared param resolution logic extracted from all server modulesUpdated modules
BB.Command- Full behaviour with__using__macro, new callbacks (handle_command/3,result/1,handle_safety_state_change/2,handle_options/2)BB.Robot.Runtime- Start GenServer instead of Task, handle completion via castBB.Supervisor- Add DynamicSupervisor for commandsBB.Dsl- Accept{module, opts}tuple format for command handlersArm,Disarm,MoveTo) updated to new patternActuator.Server,Sensor.Server,Controller.Server- Use sharedParamResolutionDocumentation
05-commands.mdtutorial for GenServer-based commandsAGENTS.mdBreaking Changes
BB.Commandbehaviour with new callbackshandle_command/3replaces the oldexecute/2callbackresult/1to extract the result from stateTest plan