fix(schema): latencyWindow ist ein String, duration-Muster folgt der Go-Grammatik

Review-Nachbefunde am neuen embedding-Schema:
- latencyWindow war als integer/number deklariert, ist in Go aber ein String
  (ConfigEmbeddingGroup.OnSingleQuery.LatencyWindow, per Atoi geprüft) — Schema
  und index.d.ts auf digits-String (>0) umgestellt.
- duration-Pattern erlaubte nur eine Einheit und akzeptierte Unsinn wie "1ss":
  jetzt (Zahl+Einheit)+, damit auch 1m30s/1h1m/1.5h gelten und 1ss/8/abc fallen.
- Beispiel examples/server/embedding.yml übt latencyWindow und Mehrfach-Einheiten
  aus (npm test: 5 YAML gegen 17 Schemas, tsc --noEmit --strict grün).
This commit is contained in:
apairon committed 2026-10-17 14:07:30 +00:00
1 parent 5a45c4dd3f
commit 1233bd393d
3 files changed
+11 -7

No files matched your search

+4 -1
View File
@@ -26,11 +26,14 @@ groups:
- bge-m3-external
- bge-m3-local
timeoutPerAttempt: 8s
timeoutTotal: 25s
timeoutTotal: 25s # Mehrfach-Einheiten sind erlaubt: 1m30s
autoFailback: true
retryAttempts: 1
retryBackoff: 200ms
retryBackoffMax: 2s
latencyWindow: "100"
onBulkWrite:
distribution: lowest-latency
maxConcurrentTotal: 6
Vendored
+2 -1
View File
@@ -780,7 +780,8 @@ declare global {
raceDelay?: string
raceMaxFanout?: number
weights?: number[]
latencyWindow?: number
/** Digits as string (Go field is a string, validated with Atoi; must be > 0) */
latencyWindow?: string
retryAttempts?: number
retryBackoff?: string
retryBackoffMax?: string
+5 -5
View File
@@ -26,8 +26,8 @@
"definitions": {
"duration": {
"type": "string",
"description": "Go-Duration, z. B. 120s, 800ms, 25s",
"pattern": "^[0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h)+$"
"description": "Go-Duration (time.ParseDuration), z. B. 120s, 800ms, 25s, 1m30s, 1.5h",
"pattern": "^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
},
"provider": {
"type": "object",
@@ -172,9 +172,9 @@
"description": "Nur policy weighted: relative Gewichte je Mitglied, positional zur members-Liste."
},
"latencyWindow": {
"type": "integer",
"minimum": 1,
"description": "Fenster für die EWMA-Latenz (lowest-latency)."
"type": "string",
"pattern": "^[0-9]+$",
"description": "Fenster für die EWMA-Latenz (lowest-latency) als Ziffern-String (> 0); Go-Feld ist ein String, der per Atoi geprüft wird."
},
"retryAttempts": {
"type": "integer",