[P1-01] Split the embeddable StarIntel Server library from the service executable #39

Open
opened 2026-07-22 00:16:23 +00:00 by lost-rob0t · 0 comments
lost-rob0t commented 2026-07-22 00:16:23 +00:00 (Migrated from github.com)

Objective

Turn the repository into both:

  1. an importable Common Lisp library with no hidden startup side effects
  2. a separately packaged service/daemon that composes the library with HTTP, RabbitMQ, CouchDB, Valkey, and process lifecycle

ARDR reconciliation — 2026-08-29

Current source shows the original proposed ten-system split is too large for the first realization. source/starintel-gserver.asd is still one serial service/program system, but source/runtime-lifecycle.lisp already provides an explicit star.runtime lifecycle seam and source/main.lisp is already a thin CLI delegate.

Canonical research/design:

  • lost-rob0t/starintel-auto-research/roam/research/star-server/STAR-RESEARCH-039-embeddable-server-library-boundary.org
  • lost-rob0t/starintel-auto-research/roam/design/star-server/STAR-SERVER-046-embeddable-server-library-boundary.org

Proposed first implementation slice — PENDING OPERATOR APPROVAL

Create only a useful, side-effect-free starintel-server/core ASDF/package boundary. Preserve :starintel-gserver as the compatibility/service system.

Core may contain only pure conditions, value/contracts, configuration normalization, and abstract protocols. It must not depend transitively on Sento, cl-rabbit, cl-couch, Clack/Hunchentoot, or lparallel.

Mandatory RED-first target

On untouched master, a fresh-image (asdf:load-system :starintel-server/core) fails because the system does not exist.

GREEN must prove:

  • the core system loads successfully;
  • zero StarIntel-owned threads, actor systems, timers, kernels, listeners, or network connections are created;
  • its ASDF dependency closure excludes concrete actor/network/service adapters;
  • existing :starintel-gserver remains loadable and its existing tests continue through the compatibility system.

Important dependency boundary

The original acceptance test requiring two isolated runtime instances in one Lisp image is not part of this first slice. Current source still has singleton/process globals including star.runtime:*runtime* and star.actors:*sys*. ASDF modularity cannot honestly provide multi-instance isolation. That remains downstream of runtime ownership/lifecycle work.

Acceptance criteria for first slice

  • useful core, not an empty marker system;
  • deterministic side-effect-free core load;
  • no concrete service adapters in the core closure;
  • startup remains explicit through runtime/service calls;
  • :starintel-gserver compatibility preserved;
  • no new StarLang syntax or external process.

Implementation authorization

PENDING / AWAITING_OPERATOR_APPROVAL

Research/design readiness, issue state, or publication do not authorize implementation.

## Objective Turn the repository into both: 1. an importable Common Lisp library with no hidden startup side effects 2. a separately packaged service/daemon that composes the library with HTTP, RabbitMQ, CouchDB, Valkey, and process lifecycle ## ARDR reconciliation — 2026-08-29 Current source shows the original proposed ten-system split is too large for the first realization. `source/starintel-gserver.asd` is still one serial service/program system, but `source/runtime-lifecycle.lisp` already provides an explicit `star.runtime` lifecycle seam and `source/main.lisp` is already a thin CLI delegate. Canonical research/design: - `lost-rob0t/starintel-auto-research/roam/research/star-server/STAR-RESEARCH-039-embeddable-server-library-boundary.org` - `lost-rob0t/starintel-auto-research/roam/design/star-server/STAR-SERVER-046-embeddable-server-library-boundary.org` ## Proposed first implementation slice — PENDING OPERATOR APPROVAL Create only a useful, side-effect-free `starintel-server/core` ASDF/package boundary. Preserve `:starintel-gserver` as the compatibility/service system. Core may contain only pure conditions, value/contracts, configuration normalization, and abstract protocols. It must not depend transitively on Sento, cl-rabbit, cl-couch, Clack/Hunchentoot, or lparallel. ### Mandatory RED-first target On untouched `master`, a fresh-image `(asdf:load-system :starintel-server/core)` fails because the system does not exist. GREEN must prove: - the core system loads successfully; - zero StarIntel-owned threads, actor systems, timers, kernels, listeners, or network connections are created; - its ASDF dependency closure excludes concrete actor/network/service adapters; - existing `:starintel-gserver` remains loadable and its existing tests continue through the compatibility system. ## Important dependency boundary The original acceptance test requiring two isolated runtime instances in one Lisp image is **not** part of this first slice. Current source still has singleton/process globals including `star.runtime:*runtime*` and `star.actors:*sys*`. ASDF modularity cannot honestly provide multi-instance isolation. That remains downstream of runtime ownership/lifecycle work. ## Acceptance criteria for first slice - useful core, not an empty marker system; - deterministic side-effect-free core load; - no concrete service adapters in the core closure; - startup remains explicit through runtime/service calls; - `:starintel-gserver` compatibility preserved; - no new StarLang syntax or external process. ## Implementation authorization `PENDING / AWAITING_OPERATOR_APPROVAL` Research/design readiness, issue state, or publication do not authorize implementation.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
nsaspy/starintel-server#39
No description provided.