Finalize star-process-port for supervised long-lived external tool actors #53
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/star-lang#53
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent
Goal
Make
star-process-portthe final generic external-process lifecycle boundary required by long-lived StarLang actor hosts.Hackmode needs this for supervised tools such as mitmdump/mitmproxy, browser/CDP helpers, scanners and other provider processes. Application actors should request a typed process capability; they should not own ad-hoc shell/process implementation details.
Required process contract
At minimum:
Actor composition
The expected shape is:
star-supervisorowns actor restart policy.star-process-portowns OS process lifecycle primitives. Host/provider adapters own application-specific readiness/protocol parsing.Relationship to #45
#45 may establish the minimum process lifecycle necessary for the SWI-Prolog MQI worker. Reuse and generalize that final primitive; do not create a second process implementation for generic actors.
Mandatory RED-first tests
Use a deterministic local fixture executable/script under test control; tests about actor semantics must still execute through the real final actor runtime per #42 when actor ownership is under assertion.
Non-goals
.star;Definition of done
A service host can represent an external tool as a supervised actor backed by
star-process-port, cancel/restart/shutdown it deterministically, and prove no child process/resource leaks without host-specific process runners.