host: blog published-post read endpoint GET /<slug>/ -> HTML, 156/156
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 15s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 15s
lib/host/blog.sx serves blog posts as HTML at GET /<slug>/ (the original strangler target, Quart blog post_detail). A post is a content-on-sx CtDoc rendered via content/html; anonymous + world-visible. In-memory slug->doc registry now (host/blog-lookup swappable for a persist-backed content stream later, handler/route unchanged). :slug catch-all mounted LAST so /feed, /health, /internal/* take precedence. Needs the Smalltalk+persist+content preload chain + (st-bootstrap-classes!)+(content/bootstrap!) — blog.sx self-bootstraps at load. serve.sh loads the chain + seeds a welcome post. Ledger gains the migrated blog post-detail (off-Quart 50% -> 53%). LIVE: blog.rose-ash.com/welcome/ renders real HTML through Cloudflare->Caddy; /feed still JSON (precedence verified), unknown slug 404. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -36,8 +36,8 @@ host — no `ocaml-on-sx` dependency.
|
||||
|
||||
## Status (rolling)
|
||||
|
||||
`bash lib/host/conformance.sh` → **145/145** (8 suites: handler, middleware, sxtp,
|
||||
router, feed, relations, server, ledger). Phases 1 & 2 DONE; Phase 3 cut-over
|
||||
`bash lib/host/conformance.sh` → **156/156** (9 suites: handler, middleware, sxtp,
|
||||
router, feed, relations, blog, server, ledger). Phases 1 & 2 DONE; Phase 3 cut-over
|
||||
landed (50% off Quart). **The host now serves live HTTP** — `lib/host/server.sx`
|
||||
bridges the native `http-listen` server to the Dream app and `lib/host/serve.sh`
|
||||
boots it (verified: GET /health, /feed, /feed?actor=, relations get-children/
|
||||
@@ -147,6 +147,14 @@ lib/host/sxtp.sx subsystem APIs (feed/search/commerce/…
|
||||
via reload-from-non-bind-path, then RECONCILED by restarting Caddy so the
|
||||
bind re-points to the corrected file. Verified post-restart: blog serves, and
|
||||
`sx.rose-ash.com`/`rose-ash.com` survived.)
|
||||
- [x] blog published-post read endpoint — `lib/host/blog.sx`: `GET /<slug>/`
|
||||
renders a content-on-sx `CtDoc` to HTML via `content/html` (anonymous,
|
||||
world-visible). In-memory slug→doc registry now (swap `host/blog-lookup` for
|
||||
a persist-backed content stream later, handler/route unchanged). `:slug`
|
||||
catch-all mounted LAST so domain routes win. **LIVE**: `blog.rose-ash.com/
|
||||
welcome/` renders real HTML through Caddy. Needs Smalltalk+persist+content
|
||||
preloads + `(st-bootstrap-classes!)`+`(content/bootstrap!)` (self-bootstraps
|
||||
at load).
|
||||
- [ ] proxy-to-Quart fallback for un-migrated paths (strangler requirement before
|
||||
a real subdomain fronts users).
|
||||
- [ ] internal-HMAC middleware on `/internal/*` (service-to-service auth; protocol
|
||||
|
||||
Reference in New Issue
Block a user