Hallucination gate URL host-scope — MC #107370
MC #107370 — live JAR/runtime verification
Verified: 2026-08-21 13:03–13:10 CEST
Canonical repo: /Users/makinja/system
Active launcher: /Users/makinja/.claude/hooks/alai-hooks
Status at preflight: paused, unassigned; recorded #107370 PID markers were dead.
What was uncertain
The source fix in HallucinationDetector.kt had been committed, but an earlier review found that the auto-validate worktree tested a rebuilt native binary while the active launcher actually executes:
java -Xss128m -jar $HOME/system/tools/alai-hooks/build/libs/alai-hooks-1.0.0.jar
Therefore source/native PASS was not enough; the canonical JAR and live launcher needed direct proof.
GPT-5.6 high isolated JAR rebuild
Builder worktree:
/Users/makinja/system/.claude/worktrees/codecraft-105500
Builder evidence:
/Users/makinja/system/.claude/worktrees/codecraft-105500/evidence/107370/gpt56-high-jar-build-2026-08-21.md
The wrapper remains broken because empty quoted JVM option variables are passed as an empty main-class argument. The builder used installed Gradle 9.3.1, matching gradle-wrapper.properties, without editing or weakening the wrapper/gates:
gradle --no-daemon --no-build-cache --rerun-tasks jar
BUILD SUCCESSFUL
Forced recompilation and jar tasks both executed. The resulting JAR:
path: /Users/makinja/system/.claude/worktrees/codecraft-105500/tools/alai-hooks/build/libs/alai-hooks-1.0.0.jar
sha256: df0f38d5a86c23b8e5564bd7def2cbaeb280da79ba5fa5b76d87086dfcfa337e
size: 1,930,197 bytes
mtime: 2026-08-21 13:09:07 CEST
The pre-build JAR in that worktree already had the same hash. --rerun-tasks --no-build-cache proved this was byte identity, not a skipped stale build. HallucinationDetector.class is packaged and javap shows java.net.URI.create/getHost/getPort/getPath bytecode.
Builder JAR tests:
#107370 URL scope: 7 passed, 0 failed
existing alai-hooks regression: 29 passed, 0 failed
Gradle compile/check: BUILD SUCCESSFUL
Canonical artifact identity
Canonical JAR:
path: /Users/makinja/system/tools/alai-hooks/build/libs/alai-hooks-1.0.0.jar
sha256: df0f38d5a86c23b8e5564bd7def2cbaeb280da79ba5fa5b76d87086dfcfa337e
size: 1,930,197 bytes
mtime: 2026-08-21 10:50:13 CEST
The canonical JAR is byte-identical to the forced, independently rebuilt worktree JAR. Another session had already rebuilt the correct canonical artifact, so copying/deploying it again would only create duplicate risk. No copy or deployment was performed.
Direct canonical and live tests
Canonical JAR:
PASS localhost:9621/uploads/batch.json -> blocked, exit 2
PASS localhost:9621/upload -> blocked, exit 2
PASS localhost:9621/documents/text -> allowed, exit 0
PASS external host /9621/uploads/... -> allowed, exit 0
PASS external host /uploads/... -> allowed, exit 0
PASS second external /uploads/... -> allowed, exit 0
PASS localhost:11434/uploads/... -> allowed, exit 0
RESULT: 7 passed, 0 failed
Active launcher /Users/makinja/.claude/hooks/alai-hooks against the same matrix:
RESULT #107370 localhost:9621 URL scope tests: passed=7 failed=0
Full existing active-hook regression:
Results: 29 passed, 0 failed
JAR package/bytecode:
com/alai/hooks/HallucinationDetector.class
java/net/URI.create
java/net/URI.getHost
java/net/URI.getPort
java/net/URI.getPath
Verdict
PASS for live runtime behavior. The active hook launcher executes the canonical JAR, that JAR is byte-identical to the forced GPT-5.6 rebuild, and both the focused 7/7 matrix and existing 29/29 regression pass through the active launcher.
No code, active launcher, settings, MC marker, credential, cloud resource or deployment target was changed during this verification.
No comments to display
No comments to display