Add Star-Lang remoting runtime configuration and BBP liveness #31

Merged
lost-rob0t merged 35 commits from agent/star-lang-bbp-runtime-config-v1 into main 2026-07-23 18:00:44 +00:00
lost-rob0t commented 2026-07-23 14:53:48 +00:00 (Migrated from github.com)

What

  • add a validated runtime configuration boundary for Star-Lang remoting
  • keep compiled external actor endpoints runtime-neutral
  • materialize BBP endpoints only after the remoting transport binds
  • support fixed ports and OS-assigned port 0
  • expose Sento's actual bound port through a narrow runtime capability
  • pass bind host, advertised host, TLS, serializer, and message-size settings through one config object
  • add deterministic heartbeat lease expiry with an injectable monotonic clock
  • exclude expired workers from routing and revive them on valid heartbeat
  • select multiple live workers deterministically and fail over when the first lease expires
  • add a live two-process SBCL/Sento TCP smoke test
  • pin Sento and its source-only remoting dependencies in CI
  • add Common Lisp conformance tests and CI artifacts
  • document the compiler/runtime boundary in STAR-LANG-RESEARCH-015

Architecture

compiled Star-Lang actor
  sento://dynamic/user/bbp-domain
            |
            v
validated domain-remoting-config
  port = fixed or 0
            |
            v
Sento transport bind
            |
            v
actual bound port resolution
            |
            v
runtime BBP worker actor
  sento://<advertised-host>:<actual-port>/user/bbp-domain
            |
            v
registration + heartbeat lease
            |
            v
deterministic main-gserver routing and failover

Star-Lang retains actor identity and protocol. Deployment configuration supplies network coordinates without mutating the portable compiled contract. The main gserver owns worker liveness and will not route to an expired node.

Verification

  • portable endpoint and runtime materialization tests
  • unresolved port-zero rejection before bind
  • actual bound-port resolution and advertised URI tests
  • heartbeat expiry boundary, routing exclusion, revival, and timeout validation
  • deterministic two-worker selection and lease-based failover
  • existing fake-network BBP remoting conformance suite
  • live main/worker processes communicating over actual Sento TCP
  • both smoke processes request OS-assigned ports and discover each other through materialized URIs
  • deterministic remote program registration and tool-result round trip

Next

  • worker-level run-id idempotency
  • runtime journal port for pending commands and terminal results
  • mTLS identity verification
## What - add a validated runtime configuration boundary for Star-Lang remoting - keep compiled external actor endpoints runtime-neutral - materialize BBP endpoints only after the remoting transport binds - support fixed ports and OS-assigned port `0` - expose Sento's actual bound port through a narrow runtime capability - pass bind host, advertised host, TLS, serializer, and message-size settings through one config object - add deterministic heartbeat lease expiry with an injectable monotonic clock - exclude expired workers from routing and revive them on valid heartbeat - select multiple live workers deterministically and fail over when the first lease expires - add a live two-process SBCL/Sento TCP smoke test - pin Sento and its source-only remoting dependencies in CI - add Common Lisp conformance tests and CI artifacts - document the compiler/runtime boundary in STAR-LANG-RESEARCH-015 ## Architecture ```text compiled Star-Lang actor sento://dynamic/user/bbp-domain | v validated domain-remoting-config port = fixed or 0 | v Sento transport bind | v actual bound port resolution | v runtime BBP worker actor sento://<advertised-host>:<actual-port>/user/bbp-domain | v registration + heartbeat lease | v deterministic main-gserver routing and failover ``` Star-Lang retains actor identity and protocol. Deployment configuration supplies network coordinates without mutating the portable compiled contract. The main gserver owns worker liveness and will not route to an expired node. ## Verification - portable endpoint and runtime materialization tests - unresolved port-zero rejection before bind - actual bound-port resolution and advertised URI tests - heartbeat expiry boundary, routing exclusion, revival, and timeout validation - deterministic two-worker selection and lease-based failover - existing fake-network BBP remoting conformance suite - live main/worker processes communicating over actual Sento TCP - both smoke processes request OS-assigned ports and discover each other through materialized URIs - deterministic remote program registration and tool-result round trip ## Next - worker-level `run-id` idempotency - runtime journal port for pending commands and terminal results - mTLS identity verification
Sign in to join this conversation.
No description provided.