chore: YAML-Schemas in Dateiköpfe, tibi-types auf 4c55f82
deploy to production / deploy (push) Successful in 43s

- yaml-language-server-Schema direkt in jeder api-YAML statt
  .vscode/yaml.schemas-Mapping (exakter pro Datei, kein Glob-Rätsel)
- erweiterte meta.agent-Doku in den Collections
- tibi-types-Submodul auf 4c55f82 (meta.agent- + meta.query-Schemas)
This commit is contained in:
LeanAgent committed 2026-10-12 16:15:16 +00:00
1 parent 7ef080ba88
commit 45a021fb53
10 files changed
+18 -21

No files matched your search

+1
View File
@@ -1,3 +1,4 @@
# yaml-language-server: $schema=../../tibi-types/schemas/config/collection.schema.json
name: comment
uploadPath: ../media/comment
audit:
+3 -2
View File
@@ -1,3 +1,4 @@
# yaml-language-server: $schema=../../tibi-types/schemas/config/collection.schema.json
########################################################################
# Content collection — CMS-managed pages with pagebuilder blocks
########################################################################
@@ -38,8 +39,8 @@ meta:
translationKey: "required, e.g. home/ueber-uns/kontakt; unique per lang"
blocks: "type selects visible fields via dependsOn $parent.type"
examples: [{ name: "Startseite", path: "/", lang: "de", translationKey: "home", active: true }]
workflows: ["filter before create (path+lang) to stay idempotent; 409 means exists", "after PUT/DELETE verify /de and /api/content?lookup; SSR invalidates via clear_cache hooks"]
hints: ["richtext image only renders when _lookup.image.file.src exists", "hero fallback is gradient when no image"]
workflows: ["filter before create (path+lang) to stay idempotent; 409 means exists", "after PUT/DELETE verify /de and anonymous SSR HTML (window.__SSR_CACHE__: navigation count>0, heroImage/image with _lookup); PAT-only lookup success is NOT sufficient; SSR invalidates via clear_cache hooks"]
hints: ["richtext image only renders when _lookup.image.file.src exists", "hero fallback is gradient when no image", "images/nav invisible publicly until their medialib/navigation docs carry active:true (verified incident 2026-10-05)"]
hooks:
get:
+1
View File
@@ -1,3 +1,4 @@
# yaml-language-server: $schema=../../../tibi-types/schemas/config/image-filter.schema.json
xs-webp:
- width: 100
height: 100
+4 -3
View File
@@ -1,3 +1,4 @@
# yaml-language-server: $schema=../../tibi-types/schemas/config/collection.schema.json
########################################################################
# Media library — reusable uploaded assets referenced via foreignMedia
########################################################################
@@ -42,12 +43,12 @@ meta:
file.type_like: ^(?!image/|video/|audio/).+
agent:
purpose: "Reusable uploads referenced via foreignMedia (blocks.heroImage.image, blocks.image)."
instructions: "Upload file as object {src:'data:<mime>;base64,...', path:'name.jpg'} (path optional). Stored as {src:'<field>/name.jpg', path, type}. Never {filename,data}, never file as plain string. Public read URL: /api/medialib/<entryId>/<src> plus ?filter=l-webp for raster images. downscale max 2048px applies on upload."
instructions: "Upload file as object {src:'data:<mime>;base64,...', path:'name.jpg'} (path optional). Stored as {src:'<field>/name.jpg', path, type}. Never {filename,data}, never file as plain string. Public read URL: /api/medialib/<entryId>/<src> plus ?filter=l-webp for raster images. downscale max 2048px applies on upload. GOTCHA 2026-10-05: filter_public.js forces active:true on anonymous reads although this schema declares no active field – without stored active:true every medialib lookup stays unresolved publicly (plain IDs, no _lookup, HeroBlock renders gradient fallback and Richtext images vanish) although PAT reads succeed. Always store active:true on every medialib doc."
fieldHints:
file: "required, widget file, max 50MB"
alt: "object {de,en}, used by MedialibImage for accessibility"
examples: [{ title: "Demo Hero 1200", file: { src: "data:image/jpeg;base64,...", path: "demo-hero-1200.jpg" } }]
hints: ["list with select excluding file.data to avoid context bloat", "verify file.src starts with <field>/ after create"]
examples: [{ title: "Demo Hero 1200", file: { src: "data:image/jpeg;base64,...", path: "demo-hero-1200.jpg" }, active: true }]
hints: ["list with select excluding file.data to avoid context bloat", "verify file.src starts with <field>/ after create", "missing active:true => public lookups unresolved (verified incident 2026-10-05)"]
permissions:
public:
+3 -2
View File
@@ -1,3 +1,4 @@
# yaml-language-server: $schema=../../tibi-types/schemas/config/collection.schema.json
########################################################################
# Navigation collection — header and footer navigation entries
########################################################################
@@ -51,12 +52,12 @@ meta:
label: { de: "Einstellungen", en: "Settings" }
agent:
purpose: "Header/footer trees per language, rendered by App.svelte from elements."
instructions: "Singletons: type header/footer x language de/en (unique type+language). elements: {name, page->content.id} internal, {name, external:true, externalUrl} external, optional hash without #. Always request lookup elements.page:content; href = localizedPath(_lookup.page.path) + hash."
instructions: "Singletons: type header/footer x language de/en (unique type+language). elements: {name, page->content.id} internal, {name, external:true, externalUrl} external, optional hash without #. Always request lookup elements.page:content; href = localizedPath(_lookup.page.path) + hash. GOTCHA 2026-10-05: filter_public.js forces active:true on anonymous reads although this schema declares no active field – without stored active:true the header/footer query returns count 0 publicly (PAT reads still succeed). Always store active:true on every navigation doc."
fieldHints:
type: "header or footer"
language: "de or en"
examples: [{ language: "de", type: "header", elements: [{ name: "Start", page: "<content.id>" }] }]
hints: ["page holds content.id, resolve via _lookup.page.path", "never hardcode /de prefix in DB"]
hints: ["page holds content.id, resolve via _lookup.page.path", "never hardcode /de prefix in DB", "missing active:true => public nav empty + SSR count 0 (verified incident 2026-10-05)"]
hooks:
get:
+1
View File
@@ -1,3 +1,4 @@
# yaml-language-server: $schema=../../tibi-types/schemas/config/collection.schema.json
########################################################################
# SSR Dummy collections
########################################################################
+1
View File
@@ -1,3 +1,4 @@
# yaml-language-server: $schema=../../tibi-types/schemas/config/collection.schema.json
########################################################################
# Tags — verwaltete Schlagwörter für Mediathek und andere Collections
########################################################################