feat(claude): bump latest=2.1.120 + verify ae2/ae3 markers in installer
- index.json latest: 2.1.119 → 2.1.120 (artifacts already published in releases/v2.1.120/sea/, manifest carries ae3 patched binary sha256 eb126100...) - uclaude_install.sh SEA verification expanded: now requires ae1 + ae2 + ae3 + bypass markers (was only ae1 + bypass). ae2 gates the /model picker for custom-prefixed models, ae3 gates Agent.model accepting gpt-5.5/glm-5.1 — both critical for the proxy workflow. After this: new machines doing curl ... uclaude_install.sh | sudo bash get v2.1.120 directly with all 9 patches; verification step catches any missing patch with explicit "missing: ae3" diagnostic.
This commit is contained in:
@@ -1,6 +1,13 @@
|
||||
{
|
||||
"latest": "2.1.119",
|
||||
"latest": "2.1.120",
|
||||
"releases": [
|
||||
{
|
||||
"version": "2.1.120",
|
||||
"date": "2026-04-26",
|
||||
"patches": 9,
|
||||
"status": "stable",
|
||||
"install_type": "sea_binary"
|
||||
},
|
||||
{
|
||||
"version": "2.1.119",
|
||||
"date": "2026-04-24",
|
||||
|
||||
@@ -216,14 +216,21 @@ if [ -n "$CLAUDE_BIN" ] && [ -f "$CLAUDE_BIN" ]; then
|
||||
fi
|
||||
;;
|
||||
claude.exe|claude)
|
||||
# SEA binary — grep -a treats binary as text
|
||||
# SEA binary — grep -a treats binary as text. Three required
|
||||
# markers that gate user-visible features:
|
||||
# ae1: /model picker shows custom models from availableModels
|
||||
# ae2: picker accepts non-"anthropic.*"-prefixed models
|
||||
# ae3: Agent.model accepts gpt-5.5/glm-5.1 (not just sonnet/opus/haiku)
|
||||
sea_ok=true
|
||||
grep -aq '/\*ae1_models_filter_patched' "$CLAUDE_BIN" 2>/dev/null || sea_ok=false
|
||||
grep -aq '/\*bypass_permissions_prompt' "$CLAUDE_BIN" 2>/dev/null || sea_ok=false
|
||||
missing=""
|
||||
grep -aq '/\*ae1_models_filter_patched' "$CLAUDE_BIN" 2>/dev/null || { sea_ok=false; missing="$missing ae1"; }
|
||||
grep -aq '/\*ae2_anthropic_unfilter' "$CLAUDE_BIN" 2>/dev/null || { sea_ok=false; missing="$missing ae2"; }
|
||||
grep -aq '/\*ae3_subagent_model' "$CLAUDE_BIN" 2>/dev/null || { sea_ok=false; missing="$missing ae3"; }
|
||||
grep -aq '/\*bypass_permissions_prompt' "$CLAUDE_BIN" 2>/dev/null || { sea_ok=false; missing="$missing bypass"; }
|
||||
if $sea_ok; then
|
||||
echo " SEA binary: OK (ae1_models_filter + bypass_permissions markers)"
|
||||
echo " SEA binary: OK (ae1 + ae2 + ae3 + bypass_permissions markers)"
|
||||
else
|
||||
echo " SEA binary: ⚠ NOT fully patched ($CLAUDE_BIN — re-run uclaude_updater.py --force)"
|
||||
echo " SEA binary: ⚠ NOT fully patched (missing:$missing) — re-run uclaude_updater.py --force"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
|
||||
Reference in New Issue
Block a user