@clawos-dev/clawd 0.2.125 → 0.2.126-beta.253.542a917

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -24,34 +24,43 @@ set -a; . "$PERSONA_DIR/.secrets/aliyun.env"; set +a
24
24
  echo "==> 删 FC 资源: $APP_NAME"
25
25
  ( cd "$EXT_DIR" && s remove -y )
26
26
 
27
- # 2) Supabase 表(仅当 ext.conf 声明了 SUPABASE_TABLES)
27
+ # 2) 列出要删的 Supabase 表(脚本不直接调 DB,改打印 DROP 让 agent 用 supabase MCP 跑)
28
+ #
29
+ # 历史 bug(2026-06-03 老板手测 + persona-app-builder 自查发现):旧实现走 python3 读
30
+ # .mcp.json 取 SUPABASE_ACCESS_TOKEN + curl https://api.supabase.com/v1/... 删表,三个
31
+ # 错叠在一起:
32
+ # ① 当前 .mcp.json 用阿里云 RDS 风格(--aliyun-ak 命令行参数),没有 env.SUPABASE_ACCESS_TOKEN
33
+ # 字段 → python3 KeyError → set -euo pipefail exit
34
+ # ② https://api.supabase.com 是云上 supabase.com 的 management API,跟阿里云自建实例
35
+ # 120.26.157.138 不通(即便通,删的也是云上早废弃的表)
36
+ # ③ SUPABASE_PROJECT_REF 是云上 project-ref 概念,阿里云自建用 instance_name
37
+ # 结果:第 1 步删 FC 一直对,第 2 步从来没真删过表(脚本提前 crash exit)。
38
+ #
39
+ # 修法:bash 调不到 MCP(MCP 是 LLM 通道),pg 直连要密码 agent 拿不到,PostgREST RPC 又
40
+ # 要装 drop_table_safe + 手刷 schema cache。最干净:打印 DROP,让 agent 看到 Bash tool
41
+ # stdout 后用 mcp__supabase__execute_sql 接力。长期方案是参照 publish.sh 模式做
42
+ # appBuilder.delete RPC + UI 按钮,等下一轮做。
28
43
  if [ -n "$SUPABASE_TABLES" ]; then
29
- echo ""
30
- echo "⚠️ 即将删除以下 Supabase 表(数据不可逆):"
31
- for t in $SUPABASE_TABLES; do echo " - public.$t"; done
32
-
33
44
  # 安全锁:每个表必须 <app>_ 前缀,否则拒绝(防误伤 clawos 共享库)
34
45
  for t in $SUPABASE_TABLES; do
35
46
  case "$t" in
36
47
  ${APP_NAME}_*) ;;
37
- *) echo "❌ 表 '$t' 不是 '${APP_NAME}_' 前缀,拒绝删除(可能误伤 clawos)"; exit 1 ;;
48
+ *) echo "❌ 表 '$t' 不是 '${APP_NAME}_' 前缀,拒绝输出(可能误伤 clawos)"; exit 1 ;;
38
49
  esac
39
50
  done
40
51
 
41
- read -r -p "确认删表? 输入 yes 继续: " ans
42
- if [ "$ans" = "yes" ]; then
43
- TOKEN="$(python3 -c "import json;print(json.load(open('$PERSONA_DIR/.mcp.json'))['mcpServers']['supabase']['env']['SUPABASE_ACCESS_TOKEN'])")"
44
- for t in $SUPABASE_TABLES; do
45
- curl -s -X POST "https://api.supabase.com/v1/projects/$SUPABASE_PROJECT_REF/database/query" \
46
- -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
47
- -d "{\"query\":\"drop table if exists public.$t cascade;\"}" >/dev/null \
48
- && echo " ✓ dropped public.$t"
49
- done
50
- else
51
- echo "跳过删表(FC 已删;表保留)。"
52
- fi
52
+ echo ""
53
+ echo "==> ⚠️ 下面是要删的 Supabase 表,脚本不直接调 DB"
54
+ echo " (阿里云自建无 management API + bash 调不到 MCP)"
55
+ echo ""
56
+ for t in $SUPABASE_TABLES; do
57
+ echo " DROP TABLE IF EXISTS public.$t CASCADE;"
58
+ done
59
+ echo ""
60
+ echo "==> agent: 上面这几条 DROP 请用 supabase MCP 跑(mcp__supabase__execute_sql),"
61
+ echo " 完了项目清理才算完成"
53
62
  else
54
- echo "ext.conf 未声明 SUPABASE_TABLES,跳过删表。如有表请手动确认清理。"
63
+ echo "ext.conf 未声明 SUPABASE_TABLES,无表要清理。"
55
64
  fi
56
65
 
57
66
  echo "✅ $APP_NAME 清理完成。"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clawos-dev/clawd",
3
- "version": "0.2.125",
3
+ "version": "0.2.126-beta.253.542a917",
4
4
  "description": "Standalone clawd daemon — Claude Code (and future Codex) session server over WebSocket",
5
5
  "type": "module",
6
6
  "license": "MIT",