From d1a47e1e52946debf417ae697ef17ded70325f04 Mon Sep 17 00:00:00 2001 From: giles Date: Fri, 6 Mar 2026 21:57:44 +0000 Subject: [PATCH] Restore click handler logging + use logInfo for errors (SES-safe) SES lockdown may suppress console.error. Use logInfo for error reporting since we know it works ([sx-ref] prefix visible). Co-Authored-By: Claude Opus 4.6 --- shared/static/scripts/sx-browser.js | 7 ++++--- shared/sx/ref/bootstrap_js.py | 2 +- shared/sx/ref/orchestration.sx | 1 + 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/shared/static/scripts/sx-browser.js b/shared/static/scripts/sx-browser.js index 57e6b76..91cbabd 100644 --- a/shared/static/scripts/sx-browser.js +++ b/shared/static/scripts/sx-browser.js @@ -14,7 +14,7 @@ // ========================================================================= var NIL = Object.freeze({ _nil: true, toString: function() { return "nil"; } }); - var SX_VERSION = "2026-03-06T21:53:47Z"; + var SX_VERSION = "2026-03-06T21:57:37Z"; function isNil(x) { return x === NIL || x === null || x === undefined; } function isSxTruthy(x) { return x !== false && !isNil(x); } @@ -1842,7 +1842,8 @@ return postSwap(target); }); var timer = NIL; var lastVal = NIL; var listenTarget = (isSxTruthy(get(mods, "from")) ? domQuery(get(mods, "from")) : el); - return (isSxTruthy(listenTarget) ? domAddListener(listenTarget, eventName, function(e) { return (function() { + return (isSxTruthy(listenTarget) ? domAddListener(listenTarget, eventName, function(e) { logInfo((String("sx:click ") + String(eventName) + String(" ") + String(domTagName(el)) + String(" href=") + String(domGetAttr(el, "href")))); +return (function() { var shouldFire = true; if (isSxTruthy(get(mods, "changed"))) { (function() { @@ -2994,7 +2995,7 @@ callExpr.push(dictGet(kwargs, k)); } } if (opts.once || opts["once"]) o.once = true; } el.addEventListener(event, function(e) { - try { fn(e); } catch (err) { console.error("[sx-ref] event handler error:", event, err); } + try { fn(e); } catch (err) { logInfo("EVENT ERROR: " + event + " " + (err && err.message ? err.message : err)); console.error("[sx-ref] event handler error:", event, err); } }, o); } diff --git a/shared/sx/ref/bootstrap_js.py b/shared/sx/ref/bootstrap_js.py index d8359ce..c32b0ff 100644 --- a/shared/sx/ref/bootstrap_js.py +++ b/shared/sx/ref/bootstrap_js.py @@ -2515,7 +2515,7 @@ PLATFORM_ORCHESTRATION_JS = """ if (opts.once || opts["once"]) o.once = true; } el.addEventListener(event, function(e) { - try { fn(e); } catch (err) { console.error("[sx-ref] event handler error:", event, err); } + try { fn(e); } catch (err) { logInfo("EVENT ERROR: " + event + " " + (err && err.message ? err.message : err)); console.error("[sx-ref] event handler error:", event, err); } }, o); } diff --git a/shared/sx/ref/orchestration.sx b/shared/sx/ref/orchestration.sx index 695a4f5..f03e35c 100644 --- a/shared/sx/ref/orchestration.sx +++ b/shared/sx/ref/orchestration.sx @@ -373,6 +373,7 @@ (when listen-target (dom-add-listener listen-target event-name (fn (e) + (log-info (str "sx:click " event-name " " (dom-tag-name el) " href=" (dom-get-attr el "href"))) (let ((should-fire true)) ;; Changed modifier: skip if value unchanged (when (get mods "changed")