grix-connector 3.22.0 → 3.24.0
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.
- package/dist/adapter/acp/acp-adapter.js +14 -12
- package/dist/adapter/claude/claude-adapter.js +18 -18
- package/dist/adapter/claude/protocol-contract.js +1 -1
- package/dist/adapter/opencode/format-error.js +1 -0
- package/dist/adapter/opencode/opencode-adapter.js +6 -6
- package/dist/adapter/opencode/opencode-transport.js +3 -3
- package/dist/adapter/opencode/opencode-types.js +1 -0
- package/dist/adapter/shared/session-context.js +2 -0
- package/dist/bridge/acp-toolbar-persist.js +1 -1
- package/dist/bridge/adapter-pool.js +1 -1
- package/dist/bridge/bridge.js +10 -11
- package/dist/core/aibot/binding-card-meta-cache.js +1 -1
- package/dist/core/config/claude-direct-env.js +1 -1
- package/dist/core/config/provider-env.js +1 -1
- package/dist/core/persistence/agent-global-config-store.js +1 -1
- package/dist/core/persistence/session-binding-store.js +1 -1
- package/dist/core/protocol/interaction-parser.js +1 -1
- package/dist/core/provider-quota/index.js +1 -1
- package/dist/core/provider-quota/providers.js +2 -2
- package/dist/default-skills/grix-agent-dispatch/SKILL.md +130 -58
- package/dist/default-skills/grix-owner-relay/SKILL.md +7 -0
- package/dist/manager.js +1 -1
- package/dist/mcp/stream-http/security.js +1 -1
- package/openclaw-plugin/index.js +26 -2
- package/package.json +3 -1
- package/scripts/analyze-audit-replays.mjs +1416 -0
- package/scripts/upgrade-guardian.sh +64 -29
|
@@ -59,32 +59,49 @@ log "started: from=$FROM_VERSION target=$TARGET_VERSION crash_count=$CRASH_COUNT
|
|
|
59
59
|
# Wait for old daemon to exit (SIGTERM + shutdown + restart)
|
|
60
60
|
sleep 15
|
|
61
61
|
|
|
62
|
-
#
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
# 前向激活:用已装好的目标版本 CLI start 刷新受管 runtime 副本、服务定义并触发重启。
|
|
63
|
+
# 放在 guardian(detached 独立进程)而非旧 daemon 进程内执行:旧 daemon 的激活子
|
|
64
|
+
# 进程在 systemd 默认 KillMode=control-group 下会随 restart 一起被杀,且旧 daemon
|
|
65
|
+
# 在 await 期间被杀后 pending 的失败处理(回滚/上报)执行不到,会与 guardian 脱同步。
|
|
66
|
+
# Linux 无受管 runtime 副本(服务直接跑全局包),start 只做服务定义刷新与重启,同样安全。
|
|
67
|
+
# 激活失败视同新版本启动失败,落入下方崩溃计数/回滚路径,不删 pending。
|
|
68
|
+
TARGET_CLI="$(npm root -g 2>> "$LOG_FILE")/$NPM_PACKAGE/dist/grix.js"
|
|
69
|
+
ACTIVATED=0
|
|
70
|
+
if [ -f "$TARGET_CLI" ] && node "$TARGET_CLI" start >> "$LOG_FILE" 2>&1; then
|
|
71
|
+
ACTIVATED=1
|
|
72
|
+
log "forward activation succeeded: managed runtime switched to $TARGET_VERSION"
|
|
73
|
+
else
|
|
74
|
+
log "forward activation failed for target $TARGET_VERSION; treating as startup failure"
|
|
75
|
+
fi
|
|
76
|
+
|
|
77
|
+
# Monitor loop: wait for healthz to return 200 (only after successful activation)
|
|
78
|
+
if [ $ACTIVATED -eq 1 ]; then
|
|
79
|
+
ELAPSED=0
|
|
80
|
+
while [ $ELAPSED -lt $HEALTH_TIMEOUT ]; do
|
|
81
|
+
if curl -sf "$HEALTH_URL" > /dev/null 2>&1; then
|
|
82
|
+
# healthz 通过=新版健康。这里不删 pending:删了会抢在新进程的
|
|
83
|
+
# handlePendingOnStartup 之前,使其读不到 pending、success 回执发不出去
|
|
84
|
+
# (后端只见 installed 不见 success)。交由新进程上报 success 后自行删 pending,
|
|
85
|
+
# guardian 只负责崩溃回滚。
|
|
86
|
+
log "healthz passed, upgrade healthy; leaving pending for in-process success report"
|
|
87
|
+
exit 0
|
|
88
|
+
fi
|
|
89
|
+
sleep 3
|
|
90
|
+
ELAPSED=$((ELAPSED + 3))
|
|
91
|
+
done
|
|
92
|
+
|
|
93
|
+
# Extra grace period for slow systems
|
|
94
|
+
sleep 15
|
|
65
95
|
if curl -sf "$HEALTH_URL" > /dev/null 2>&1; then
|
|
66
|
-
#
|
|
67
|
-
|
|
68
|
-
# (后端只见 installed 不见 success)。交由新进程上报 success 后自行删 pending,
|
|
69
|
-
# guardian 只负责崩溃回滚。
|
|
70
|
-
log "healthz passed, upgrade healthy; leaving pending for in-process success report"
|
|
96
|
+
# 同上:不删 pending,交由进程内 handlePendingOnStartup 上报 success 并删除。
|
|
97
|
+
log "healthz passed (delayed), upgrade healthy; leaving pending for in-process success report"
|
|
71
98
|
exit 0
|
|
72
99
|
fi
|
|
73
|
-
sleep 3
|
|
74
|
-
ELAPSED=$((ELAPSED + 3))
|
|
75
|
-
done
|
|
76
|
-
|
|
77
|
-
# Extra grace period for slow systems
|
|
78
|
-
sleep 15
|
|
79
|
-
if curl -sf "$HEALTH_URL" > /dev/null 2>&1; then
|
|
80
|
-
# 同上:不删 pending,交由进程内 handlePendingOnStartup 上报 success 并删除。
|
|
81
|
-
log "healthz passed (delayed), upgrade healthy; leaving pending for in-process success report"
|
|
82
|
-
exit 0
|
|
83
100
|
fi
|
|
84
101
|
|
|
85
|
-
# Health check failed
|
|
102
|
+
# Health check failed (or forward activation failed)
|
|
86
103
|
CRASH_COUNT=$((CRASH_COUNT + 1))
|
|
87
|
-
log "healthz timeout, crash_count=$CRASH_COUNT"
|
|
104
|
+
log "healthz timeout or forward activation failed, crash_count=$CRASH_COUNT"
|
|
88
105
|
|
|
89
106
|
if [ $CRASH_COUNT -ge $MAX_CRASHES ]; then
|
|
90
107
|
# 新版升级器会把完整旧包保留在同文件系统的固定备份目录。优先原子恢复,
|
|
@@ -98,13 +115,23 @@ if [ $CRASH_COUNT -ge $MAX_CRASHES ]; then
|
|
|
98
115
|
if { [ ! -e "$PACKAGE_DIR" ] || mv "$PACKAGE_DIR" "$FAILED_DIR"; } \
|
|
99
116
|
&& mv "$BACKUP_DIR" "$PACKAGE_DIR"; then
|
|
100
117
|
rm -rf "$FAILED_DIR"
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
118
|
+
# 原子恢复只换回全局包;macOS 服务跑的是受管 runtime 副本,必须用
|
|
119
|
+
# 旧包 CLI start 刷新副本并触发重启,激活成功才删 pending。
|
|
120
|
+
NPM_ROOT="$(npm root -g 2>> "$LOG_FILE")"
|
|
121
|
+
ROLLBACK_CLI="$NPM_ROOT/$NPM_PACKAGE/dist/grix.js"
|
|
122
|
+
if [ -n "$NPM_ROOT" ] && [ -f "$ROLLBACK_CLI" ] \
|
|
123
|
+
&& node "$ROLLBACK_CLI" start >> "$LOG_FILE" 2>&1; then
|
|
124
|
+
rm -f "$PENDING_FILE"
|
|
125
|
+
log "atomic rollback succeeded and managed runtime activated"
|
|
126
|
+
exit 0
|
|
127
|
+
fi
|
|
128
|
+
# 激活失败不退出:落到下面的 npm 回滚路径再试一次(npm install 旧版幂等)。
|
|
129
|
+
log "atomic rollback package restored but managed runtime activation failed; falling through to npm rollback"
|
|
130
|
+
else
|
|
131
|
+
log "atomic rollback failed; restoring current package before npm fallback"
|
|
132
|
+
if [ ! -e "$PACKAGE_DIR" ] && [ -e "$FAILED_DIR" ]; then
|
|
133
|
+
mv "$FAILED_DIR" "$PACKAGE_DIR" 2>/dev/null || true
|
|
134
|
+
fi
|
|
108
135
|
fi
|
|
109
136
|
fi
|
|
110
137
|
;;
|
|
@@ -115,8 +142,16 @@ if [ $CRASH_COUNT -ge $MAX_CRASHES ]; then
|
|
|
115
142
|
if npm install -g "${NPM_PACKAGE}@${FROM_VERSION}" --prefer-online --no-audit --no-fund >> "$LOG_FILE" 2>&1 \
|
|
116
143
|
|| { log "rollback via default registry failed, retrying official npm"; \
|
|
117
144
|
npm install -g "${NPM_PACKAGE}@${FROM_VERSION}" --registry https://registry.npmjs.org --prefer-online --no-audit --no-fund >> "$LOG_FILE" 2>&1; }; then
|
|
118
|
-
log "rollback
|
|
119
|
-
|
|
145
|
+
log "rollback package installed; activating managed runtime"
|
|
146
|
+
NPM_ROOT="$(npm root -g 2>> "$LOG_FILE")"
|
|
147
|
+
ROLLBACK_CLI="$NPM_ROOT/$NPM_PACKAGE/dist/grix.js"
|
|
148
|
+
if [ -n "$NPM_ROOT" ] && [ -f "$ROLLBACK_CLI" ] \
|
|
149
|
+
&& node "$ROLLBACK_CLI" start >> "$LOG_FILE" 2>&1; then
|
|
150
|
+
log "rollback succeeded and managed runtime activated"
|
|
151
|
+
rm -f "$PENDING_FILE"
|
|
152
|
+
else
|
|
153
|
+
log "ROLLBACK ACTIVATION FAILED — package restored but managed runtime was not switched"
|
|
154
|
+
fi
|
|
120
155
|
else
|
|
121
156
|
log "ROLLBACK FAILED — manual intervention required"
|
|
122
157
|
fi
|