Hot-reload config mintázat#
TL;DR#
Állítható tuning-konstans (threshold, top-k, prompt-version) fix path-os plain-text fájlba kerül, a runtime minden hívás előtt re-read-eli (no daemon-restart). Lehetővé teszi a shadow→conservative→aggressive ramp-et zero downtime-mal. Cross-source: 17+ fact, 3 source-type.
Háttér (3+ source-evidence)#
- Crystallize-threshold:
~/.vault-config/crystallize-threshold.txtegy szám (0.85vagy1.0),11.11crystallizeminden hívás előttcat-eli (sv-05-crystallization-automation, crystallize-threshold-ramp) - env-defaults tracker:
/root/.vault-config/env-defaults.mdmint 15-flag dashboard — operátor egy doksiban látja az aktuális state-et (MEMORY.mdenv-defaultstracker) - Threshold-ramp protokoll: Shadow=1.0 → Conservative=0.95 → Aggressive=0.85 átállás csak a fájl módosításával, nincs script-deploy (crystallize-threshold-ramp)
- Per-target threshold YAML: PR-thoz külön drift-target threshold YAML-ben — hot-reload (2026-05-17-3 super-session bullet)
- Lib-prisma singleton kontraszt: Next.js
lib/db.tsglobalThis.__prisma__— NEM hot-reload (process-lifetime singleton); a hot-reload pattern KÜLSŐ konfig-fájlra való, NEM in-process state-re
Mintázat#
runtime call ─┬─> read config file (atomic fs read, <1ms)
├─> parse value (fallback to default if malformed)
└─> execute with current value
Architektúrális szabályok:
- Fix path — sosem env-var vagy CLI-arg; az operátor egyetlen path-ot ír / olvas
- Plain text vagy YAML —
0.85\nvagykey: value; NE JSON-tomb (parse-fail brittle) - Default-fallback — ha fájl hiányzik vagy malformed → safe-default (shadow-mode)
- Atomic write —
mv tmp final(NEM>redirect — partial-write race a reader-rel) - Audit-log minden state-flip-re —
flip 1.0 → 0.95 by user@2026-05-17(audit-log-append-only-pattern) - NE használj inotify-ot — overkill, kifagy edge-case-ekben; egyszerű
catper-hívás 1ms
Anti-pattern#
- ❌ In-memory state hot-swap —
globals()["threshold"] = 0.85race-elhet multi-process környezetben - ❌ DB-stored config — overkill 1-számos konstanshoz; emelhet a DB-roundtrip
- ❌ REST endpoint POST /config — felelős service-restart-ot követel; nem cron-barát
- ❌ Hot-reload mindenre — csak tuning-konstans (numerikus tartomány); NEM struktúra-változás (séma, predikátum-lista)
Példa#
# vault-crystallize-monitor (Bash)
THRESHOLD=$(cat ~/.vault-config/crystallize-threshold.txt 2>/dev/null || echo "1.0")
if awk "BEGIN {exit !($CONFIDENCE >= $THRESHOLD)}"; then
auto_propagate
else
manual_review_queue
fi
# 11.11crystallize (Python)
def current_threshold():
p = os.path.expanduser("~/.vault-config/crystallize-threshold.txt")
try:
return float(open(p).read().strip())
except Exception:
return 1.0 # shadow default
Mikor használd#
| Use case | Hot-reload? |
|---|---|
| Threshold (0.0-1.0) | ✅ Igen |
| Top-K érték (numerikus) | ✅ Igen |
Prompt-version (v0.2 / v0.3) | ✅ Igen (ENV-flag dual-track) |
| Predikátum-lista (struktúra) | ❌ Schema-migration kell |
| Auth-token | ❌ Secret rotation flow |
| Feature ENV-flag | ❌ Separate gate (env-defaults tracker) |
Kapcsolódó#
- crystallize-threshold-ramp — ramp-protokoll a hot-reload fájl módosításával
- env-flag-default-disabled-gate — flag-gating mint komplementer mechanizmus
- audit-log-append-only-pattern — minden state-flip auditolva
- multi-layer-safety-gate — config-hot-reload mint Layer 2 a propagation-ban