Steps 1+2 of RA-live/TA-live, live-verified end-to-end on blog.rose-ash.com. (1) DEPLOY: docker-compose.dev-sx-host.yml gains an sx_kernel service running next/kernel/serve.sh (the durable-execution kernel), SX_HTTP_HOST=0.0.0.0 so the host container reaches it at http://sx_kernel:8930. (2) HOST AS CLIENT: lib/host/ra.sx gains a KERNEL runner — host/ra--make-kernel-runner drives the kernel over HTTP (http-request, native primitive; returns {status headers body}). It advertises {effect,branch,each,suspend}, so select-runner routes a durable DAG to it. host/blog.sx: the DAG registry + runner fleet are now mutable (register-dag!/add-runner!); emit! records SUSPENSIONS in a durable pending log; /flows shows suspended instances with a resume link (?resume=<id>) driving host/ra--kernel-resume. serve.sh wires it: set kernel-base, add the kernel runner, register the durable 'blog-digest' DAG, declare a DURABLE behavior on article (create→publish SYNC, update→ blog-digest DURABLE), add a 'category' field. LIVE PROOF: editing a published newsletter article → Update → routes to the kernel runner → POST /flow/start/newsletter → kernel SUSPENDS (instance 5, shown pending on /flows) → /flows?resume=5 → host re-drives the kernel → DONE → digest-sent effect + pending cleared. Durable suspend/resume across separate HTTP requests, on a deployed persistent kernel. urgent edits complete immediately (digest). http-request works in the serving context. blog 217/217, full conformance green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
12 KiB
Executable File
12 KiB
Executable File