Complete concrete Sento runtime boundary and real actor-system tests #43

Open
lost-rob0t wants to merge 17 commits from feature/real-actor-system-tests into main
lost-rob0t commented 2026-08-17 07:04:04 +00:00 (Migrated from github.com)

Closes #42.

Ownership moved

  • star-sento-compat now owns concrete local Sento construction, spawn, tell, asynchronous ask/reply, lookup/liveness, stop/shutdown, and remoting translation.
  • Prototype remoting remains thin composition only; a static guard blocks direct backend calls.
  • Unrelated live GitHub HTTP/protocol branch work was removed from this slice.

Real actor evidence

  • Adds the hard-dependency star-sento-compat-integration-tests system.
  • Exercises real multi-actor coordinator, echo, probe, and counter actors on real mailboxes and dispatchers.
  • Covers asynchronous ask futures, concurrent producer serialization, duplicate names, timeout mapping, stop/shutdown, and unconditional teardown.
  • Uses bounded polling/backoff only; sleeps are not correctness gates.
  • Teardown regression handling catches only the deliberate body failure, so a real Sento shutdown/leak failure cannot be masked by the test harness.

Real remoting evidence

  • prototype/bbp-remoting-runtime-example.lisp loads star-sento-compat and routes the existing Sento two-process BBP smoke through the final adapter.
  • Adds ci/run-real-sento-remoting-smoke.sh to boot separate main/worker actor systems, wait on explicit readiness, exercise remote domain registration/tool execution/replay/conflict handling, and require clean process exit.
  • The focused Nix workflow now runs both the local actor integration suite and the two-process remoting smoke and uploads all three diagnostic logs.

Reproducibility and CI

  • flake.lock pins the Nix inputs.
  • nix/sento-remoting.nix pins the service backend closure explicitly: Sento 3.4.4 (013ab637...), Pure TLS 1.13.0 (79230b14...), and cl-cancel (bec34fb3...) with fixed-output hashes.
  • This was required because the nixpkgs Common Lisp snapshot carried an older Sento source tree without the separate sento-remoting ASDF system.
  • Adds a dedicated real-Sento CI job with bounded inner timeouts and uploaded logs.
  • flake check includes the real-Sento integration suite.
  • README and AGENTS share the execution contract; CI checks their consistency and the backend boundary.

Final verification on head 88645e465ddc2014f23d38e5594728be6a79665e

  • star-lang CI — green.
  • star-lang Nix — green.
  • focused real Sento actor integration — green.
  • real two-process Sento remoting/domain-server smoke — green.
  • nix flake check --print-build-logs — green.

Remaining migration debt

  • The CLI/Nix product path still composes starlang-prototype; migration is not complete.
  • Wire lifecycle, deterministic transport dispatcher/runtime directory, and supervision/journal/lease work remain.
  • Nested split-phase ask remains unsolved.
  • Remoting backend availability remains separate from local Sento availability.
Closes #42. ## Ownership moved - `star-sento-compat` now owns concrete local Sento construction, spawn, tell, asynchronous ask/reply, lookup/liveness, stop/shutdown, and remoting translation. - Prototype remoting remains thin composition only; a static guard blocks direct backend calls. - Unrelated live GitHub HTTP/protocol branch work was removed from this slice. ## Real actor evidence - Adds the hard-dependency `star-sento-compat-integration-tests` system. - Exercises real multi-actor coordinator, echo, probe, and counter actors on real mailboxes and dispatchers. - Covers asynchronous ask futures, concurrent producer serialization, duplicate names, timeout mapping, stop/shutdown, and unconditional teardown. - Uses bounded polling/backoff only; sleeps are not correctness gates. - Teardown regression handling catches only the deliberate body failure, so a real Sento shutdown/leak failure cannot be masked by the test harness. ## Real remoting evidence - `prototype/bbp-remoting-runtime-example.lisp` loads `star-sento-compat` and routes the existing Sento two-process BBP smoke through the final adapter. - Adds `ci/run-real-sento-remoting-smoke.sh` to boot separate main/worker actor systems, wait on explicit readiness, exercise remote domain registration/tool execution/replay/conflict handling, and require clean process exit. - The focused Nix workflow now runs both the local actor integration suite and the two-process remoting smoke and uploads all three diagnostic logs. ## Reproducibility and CI - `flake.lock` pins the Nix inputs. - `nix/sento-remoting.nix` pins the service backend closure explicitly: Sento 3.4.4 (`013ab637...`), Pure TLS 1.13.0 (`79230b14...`), and `cl-cancel` (`bec34fb3...`) with fixed-output hashes. - This was required because the nixpkgs Common Lisp snapshot carried an older Sento source tree without the separate `sento-remoting` ASDF system. - Adds a dedicated real-Sento CI job with bounded inner timeouts and uploaded logs. - `flake check` includes the real-Sento integration suite. - README and AGENTS share the execution contract; CI checks their consistency and the backend boundary. ## Final verification on head `88645e465ddc2014f23d38e5594728be6a79665e` - `star-lang CI` — green. - `star-lang Nix` — green. - focused real Sento actor integration — green. - real two-process Sento remoting/domain-server smoke — green. - `nix flake check --print-build-logs` — green. ## Remaining migration debt - The CLI/Nix product path still composes `starlang-prototype`; migration is not complete. - Wire lifecycle, deterministic transport dispatcher/runtime directory, and supervision/journal/lease work remain. - Nested split-phase ask remains unsolved. - Remoting backend availability remains separate from local Sento availability.
Some checks failed
star-lang Nix / Nix flake check (pull_request) Failing after 3s
star-lang Nix / Real Sento actor/remoting integration (pull_request) Failing after 5s
star-lang CI / SBCL ASDF contract (pull_request) Failing after 1m55s
This pull request has changes conflicting with the target branch.
  • CHANGELOG.md
  • README.md
  • flake.nix
View command line instructions

Manual merge helper

Use this merge commit message when completing the merge manually.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feature/real-actor-system-tests:feature/real-actor-system-tests
git switch feature/real-actor-system-tests

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff feature/real-actor-system-tests
git switch feature/real-actor-system-tests
git rebase main
git switch main
git merge --ff-only feature/real-actor-system-tests
git switch feature/real-actor-system-tests
git rebase main
git switch main
git merge --no-ff feature/real-actor-system-tests
git switch main
git merge --squash feature/real-actor-system-tests
git switch main
git merge --ff-only feature/real-actor-system-tests
git switch main
git merge feature/real-actor-system-tests
git push origin main
Sign in to join this conversation.
No description provided.