FIX: Render brach ab - RSI-Zeile griff im falschen Scope zu (Dashboard kaputt)
User-Screenshot: sechs leere "—"-Zeilen in der M15-Karte unter Gate ④ und eine
komplett leere Breakout-Karte.
URSACHE, mein Fehler von heute Abend: `renderM15(s)` bekommt NUR `m15_setup`.
Meine RSI-Zeile griff aber auf `d.market.rsi_m15` zu - `d` existiert in diesem
Scope nicht. ReferenceError mitten im Render: alles ab der Fehlerstelle blieb
auf dem Initialwert "—", und die danach gerufenen Renderer (u.a. renderBrk)
liefen gar nicht mehr. Genau die Signatur im Screenshot.
⚠⚠ WARUM DIE PIPELINE ES DURCHGELASSEN HAT: `node --check` prueft nur SYNTAX.
Ein ReferenceError ist syntaktisch einwandfrei. Python hat dafuer ruff F821 -
fuer JS gab es nichts Vergleichbares. Das ist die Luecke, nicht ein
Einzelversehen: es ist der ZWEITE Fall derselben Klasse heute (vorhin `d5.m5`
statt `s.m5`, den hatte ich beim Bauen selbst bemerkt).
BEHOBEN: renderM15(s, snap) bekommt den vollen Snapshot mit, Aufrufer angepasst,
Zugriff auf ((snap||{}).market||{}).rsi_m15. Ein Kommentar an der Signatur haelt
fest, warum `d.` dort verboten ist.
NEU: tools/render_check.mjs - laesst renderM15 und renderBrk gegen ein
Minimal-DOM mit einem ECHTEN Snapshot laufen und meldet jede Exception.
Mutationsprobe bestanden: Fehler zurueckgebaut -> "❌ d is not defined",
zurueck -> gruen. Alle vier Zeilen rendern wieder korrekt (RSI, M5-Kontext,
Gate ③b, BRK-Position).
v=188, damit der Browser das Update sicher zieht.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
621c82bab8
commit
95b22e2add
+8
-3
@@ -252,7 +252,12 @@ function renderBrk(d) {
|
||||
}
|
||||
}
|
||||
|
||||
function renderM15(s) {
|
||||
function renderM15(s, snap) {
|
||||
// ⚠⚠ `snap` = der VOLLE Snapshot. `s` ist nur `m15_setup` — wer hier auf
|
||||
// `d.` zugreift, erzeugt einen ReferenceError, der den GESAMTEN Render
|
||||
// abbricht: alles ab der Fehlerstelle bleibt auf "—" stehen, und die
|
||||
// danach gerufenen Renderer (u. a. `renderBrk`) laufen gar nicht mehr.
|
||||
// Genau das ist am 19.08. passiert (RSI-Zeile griff auf `d.market`).
|
||||
const st = $("m15-status");
|
||||
if (!s) { st.className = "m15-status"; st.textContent = "— keine Daten"; return; }
|
||||
const f = (v, d = 2) => (v == null ? "—" : (+v).toFixed(d));
|
||||
@@ -410,7 +415,7 @@ function renderM15(s) {
|
||||
// Ueberdehnungs-Anzeige, die aus demselben Grund "Ueberdehnung" heisst und
|
||||
// nicht "Bounce".
|
||||
const rsiEl = $("m15-rsi");
|
||||
const rv = (d.market || {}).rsi_m15;
|
||||
const rv = ((snap || {}).market || {}).rsi_m15;
|
||||
if (rv == null) {
|
||||
rsiEl.textContent = "RSI · —";
|
||||
} else {
|
||||
@@ -1079,7 +1084,7 @@ function render(d) {
|
||||
}
|
||||
|
||||
// ── Gesamtempfehlung (aggregiert) ───────
|
||||
renderM15(d.m15_setup);
|
||||
renderM15(d.m15_setup, d);
|
||||
renderBrk(d);
|
||||
renderKontext(d);
|
||||
renderCircuitBreaker(d.circuit_breaker);
|
||||
|
||||
Reference in New Issue
Block a user