host: metamodel overview page (GET /meta) — the first editor surface
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 25s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 25s
The 'see the system you've defined' page: every type-post (with its schema's required blocks) and every relation-post (with its signature), each linking to the post that defines it. The surface the metamodel editor hangs off (North Star UI surface 1 of 3). - host/blog-type-defs: the type DEFINITIONS = the subtype-of hierarchy rooted at 'type' (type + transitive subtypes). NOT host/blog-instances-of 'type' (that's the is-a INSTANCES — typed content, not the definitions, which are linked by subtype-of). - host/blog-meta-index (GET /meta, mounted before /:slug): pure read, all durable reads pre-fetched into let bindings before the quasiquote (perform-in-tree = VmSuspend); relations from the boot-populated host/blog-rel-kinds VALUE. Types + relations tables. - Home footer links to /meta + /tags. Verified live (ephemeral): Types (3: Type/Tag/Article, Article shows required block h1), Relations (4: related symmetric, is-a/subtype-of/tagged directed). Blog suite 122/122. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -588,6 +588,20 @@
|
||||
(list (host/blog-type-valid? "art1" "(p \"no heading\")")
|
||||
(host/blog-type-valid? "art1" "(article (h1 \"H\") (p \"x\"))")))
|
||||
(list false true))
|
||||
|
||||
;; -- metamodel overview (GET /meta) --
|
||||
(host-bl-test "type-defs = the subtype hierarchy (type defs), not is-a instances"
|
||||
(let ((defs (host/blog-type-defs)))
|
||||
(list (contains? defs "type") (contains? defs "article") (contains? defs "art1")))
|
||||
(list true true false))
|
||||
(host-bl-test "/meta is 200 (not shadowed by /:slug)"
|
||||
(dream-status (host-bl-app (host-bl-req "/meta"))) 200)
|
||||
(host-bl-test "/meta lists type definitions + relations + the article's required block"
|
||||
(let ((body (dream-resp-body (host-bl-app (host-bl-req "/meta")))))
|
||||
(list (contains? body "Metamodel") (contains? body "Article")
|
||||
(contains? body "h1") (contains? body "related")
|
||||
(contains? body "symmetric")))
|
||||
(list true true true true true))
|
||||
(host-bl-test "a post with no schema'd type is vacuously valid"
|
||||
(host/blog-type-valid? "ppost" "(p \"anything\")") true)
|
||||
(host-bl-test "edit-submit rejects content violating the type schema (not saved)"
|
||||
|
||||
Reference in New Issue
Block a user