From 5c2fc9b9c084246d3a98dd890f74a8ea327ccef1 Mon Sep 17 00:00:00 2001 From: giles Date: Wed, 1 Apr 2026 14:20:48 +0000 Subject: [PATCH] Fix handler-source and component-source lookups Both used (env-get name) with one arg which always returned nil. Now use eval-expr + make-symbol with cek-try fallback, same pattern as the handler dispatch. Co-Authored-By: Claude Opus 4.6 (1M context) --- sx/sx/data/helpers.sx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/sx/sx/data/helpers.sx b/sx/sx/data/helpers.sx index 4c4080b7..c296b7ee 100644 --- a/sx/sx/data/helpers.sx +++ b/sx/sx/data/helpers.sx @@ -3,7 +3,7 @@ (fn (name) (let - ((val (env-get name))) + ((val (cek-try (fn () (eval-expr (make-symbol name))) (fn (err) nil)))) (if (or (component? val) (island? val)) (let @@ -24,11 +24,15 @@ (fn (name) (let - ((val (env-get name))) + ((handler-key (str "handler:" name)) + (val + (cek-try + (fn () (eval-expr (make-symbol handler-key))) + (fn (err) nil)))) (if (not (nil? val)) (pretty-print val) - (error (str "Handler not found: " name)))))) + (str ";;; Handler not found: " name))))) (define _spec-dirs (list "spec" "web" "shared/sx/ref" "lib"))