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:
delta-cloud-208e
2026-04-26 10:06:33 +00:00
parent 1325019047
commit e3d01fc341
2 changed files with 20 additions and 6 deletions

View File

@@ -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",

View File

@@ -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
;;
*)