Add portable logic protocol and fake backend foundation #39

Merged
lost-rob0t merged 11 commits from agent/portable-logic-foundation into main 2026-08-16 20:02:16 +00:00
lost-rob0t commented 2026-08-16 18:33:25 +00:00 (Migrated from github.com)

What changed

Implements the first real StarLang logic-runtime slice beneath the approved star.logic.api/1 architecture instead of expanding design documents further.

  • adds final-owned star-logic-protocol
    • stable public backend identities for LISA, SWI-Prolog, and N-Prolog
    • typed backend descriptors
    • deterministic backend registry ordering
    • explicit/auto selection by semantic profile, capabilities, hard-limit support, and isolation class
    • typed failures for duplicate, missing, incompatible, ambiguous, unsupported, and session cases
    • portable adapter generics for session lifecycle, fact deltas, operation invocation, streaming results, cancellation, status, and health
  • adds final-owned star-logic-testing
    • engine-free fake backend
    • ordered fake fact deltas
    • streamed answers
    • distinct zero-answer terminal state
    • terminal cancellation behavior
  • adds conformance tests covering descriptor normalization, registry determinism, explicit pins, incompatible pins, missing pins, auto selection, tie rejection, streaming, no-answer, cancellation, and prototype independence
  • wires both new systems into the final ASDF load matrix and adds an independent asdf:test-system :star-logic-protocol CI gate

Why this slice

The current final compiler/process/capability shells are not enough to safely jump into three concrete engine adapters. This creates one final-owned engine-neutral boundary first so LISA, SWI-Prolog, and N-Prolog must conform to one protocol instead of each establishing accidental semantics.

This deliberately does not implement real SWI/LISA/N-Prolog execution, proof graphs, executable-package trust, expert syntax, or backend-native term escape hatches. Those stay out until the portable boundary is proven.

Validation

The branch is wired for GitHub Actions to load star-logic-protocol and star-logic-testing independently and run the new protocol/fake-backend tests with prototype-independence assertions.

Local SBCL execution was not possible in the assistant runtime because SBCL is not installed and outbound DNS is unavailable, so CI is the executable validation authority for this draft.

## What changed Implements the first real StarLang logic-runtime slice beneath the approved `star.logic.api/1` architecture instead of expanding design documents further. - adds final-owned `star-logic-protocol` - stable public backend identities for LISA, SWI-Prolog, and N-Prolog - typed backend descriptors - deterministic backend registry ordering - explicit/auto selection by semantic profile, capabilities, hard-limit support, and isolation class - typed failures for duplicate, missing, incompatible, ambiguous, unsupported, and session cases - portable adapter generics for session lifecycle, fact deltas, operation invocation, streaming results, cancellation, status, and health - adds final-owned `star-logic-testing` - engine-free fake backend - ordered fake fact deltas - streamed answers - distinct zero-answer terminal state - terminal cancellation behavior - adds conformance tests covering descriptor normalization, registry determinism, explicit pins, incompatible pins, missing pins, auto selection, tie rejection, streaming, no-answer, cancellation, and prototype independence - wires both new systems into the final ASDF load matrix and adds an independent `asdf:test-system :star-logic-protocol` CI gate ## Why this slice The current final compiler/process/capability shells are not enough to safely jump into three concrete engine adapters. This creates one final-owned engine-neutral boundary first so LISA, SWI-Prolog, and N-Prolog must conform to one protocol instead of each establishing accidental semantics. This deliberately does **not** implement real SWI/LISA/N-Prolog execution, proof graphs, executable-package trust, expert syntax, or backend-native term escape hatches. Those stay out until the portable boundary is proven. ## Validation The branch is wired for GitHub Actions to load `star-logic-protocol` and `star-logic-testing` independently and run the new protocol/fake-backend tests with prototype-independence assertions. Local SBCL execution was not possible in the assistant runtime because SBCL is not installed and outbound DNS is unavailable, so CI is the executable validation authority for this draft.
Sign in to join this conversation.
No description provided.