From 2fb047dcb7b95d8027a7e2f3505d1837e59da275 Mon Sep 17 00:00:00 2001 From: Chris Yau Date: Thu, 19 Mar 2026 04:55:06 +0800 Subject: [PATCH] fix(observe): allow sdk-ts entrypoint in observation hook When running Claude Code via the Agent SDK (e.g. Happy), the CLAUDE_CODE_ENTRYPOINT is set to "sdk-ts" instead of "cli". The Layer 1 entrypoint guard in observe.sh only allowed "cli", causing all observations to be silently dropped for SDK users. This adds "sdk-ts" to the allowlist since Agent SDK sessions can be human-interactive. Non-interactive SDK automation is still filtered by the remaining 4 safety layers (ECC_HOOK_PROFILE, ECC_SKIP_OBSERVE, agent_id check, and path exclusions). Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude Co-Authored-By: Happy --- skills/continuous-learning-v2/hooks/observe.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/skills/continuous-learning-v2/hooks/observe.sh b/skills/continuous-learning-v2/hooks/observe.sh index ce6f563e8..727eb47c6 100755 --- a/skills/continuous-learning-v2/hooks/observe.sh +++ b/skills/continuous-learning-v2/hooks/observe.sh @@ -97,8 +97,11 @@ fi # - automated sessions creating project-scoped homunculus metadata # Layer 1: entrypoint. Only interactive terminal sessions should continue. +# sdk-ts: Agent SDK sessions can be human-interactive (e.g. via Happy). +# Non-interactive SDK automation is still filtered by Layers 2-5 below +# (ECC_HOOK_PROFILE=minimal, ECC_SKIP_OBSERVE=1, agent_id, path exclusions). case "${CLAUDE_CODE_ENTRYPOINT:-cli}" in - cli) ;; + cli|sdk-ts) ;; *) exit 0 ;; esac