Files
卡若AI 64c3b23468 chore: Cursor 全面替换 co-chat → pchat 配置真源
- cursor-config/ 项目级+用户级 MCP 与 rules 模板
- deploy-cursor-config.sh 一键部署
- retire_cochat.sh 支持 patchNativeOk 并自动卸载扩展
- mcp-config/cursor.mcp.json 同步 ensure-hub 唯一套

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 17:51:28 +08:00

115 lines
3.4 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
# FR-RETIRE: 卸载 co-chat 扩展Cursor 仅保留 pchatpatchNativeOk 可过门禁)
set -euo pipefail
BACKUP_ROOT="$HOME/.persistent-chat-local/backups/cochat-retire-$(date +%Y%m%d-%H%M%S)"
ENHANCE="$HOME/.persistent-chat-local/composer-enhance.json"
WS="${PCHAT_WORKSPACE:-/Users/karuo/Documents/个人}"
echo "=== pchat retire co-chat ==="
gate_ok=false
if [[ -f "$ENHANCE" ]]; then
read -r permOk patchOk patchNativeOk cursorPrefOk <<< "$(python3 -c "
import json
s=json.load(open('$ENHANCE'))
print(s.get('permOk',False), s.get('patchOk',False), s.get('patchNativeOk',False), s.get('cursorPrefOk',False))
" 2>/dev/null || echo "False False False False")"
w8=false
[[ "$patchOk" == "True" || "$patchNativeOk" == "True" ]] && w8=true
if [[ "$permOk" == "True" && "$cursorPrefOk" == "True" && "$w8" == true ]]; then
gate_ok=true
else
echo "阻断:门禁未过 permOk=$permOk patchOk=$patchOk patchNativeOk=$patchNativeOk cursorPrefOk=$cursorPrefOk"
exit 1
fi
else
echo "警告:无 composer-enhance.json"
exit 1
fi
mkdir -p "$BACKUP_ROOT"
for ext in "$HOME/.cursor/extensions"/co-chat.co-chat-panel-*; do
[[ -d "$ext" ]] || continue
echo "备份 $ext"
cp -R "$ext" "$BACKUP_ROOT/"
done
GS="$HOME/Library/Application Support/Cursor/User/globalStorage/co-chat.co-chat-panel"
if [[ -d "$GS" ]]; then
cp -R "$GS" "$BACKUP_ROOT/globalStorage-co-chat"
echo "保留 globalStoragepchat 原生增强仍读写 storage.json"
fi
for mcp in "$HOME/.cursor/mcp.json" "$WS/.cursor/mcp.json"; do
[[ -f "$mcp" ]] && cp "$mcp" "$BACKUP_ROOT/$(basename "$(dirname "$mcp")")-mcp.json.bak"
done
# 删除 co-chat 扩展
for ext in "$HOME/.cursor/extensions"/co-chat.co-chat-panel-*; do
[[ -d "$ext" ]] || continue
echo "删除 $ext"
rm -rf "$ext"
done
# 退役 workspace co-chat.mdc
if [[ -f "$WS/开发文档/脚本/pchat_retire_co_rule.sh" ]]; then
bash "$WS/开发文档/脚本/pchat_retire_co_rule.sh" "$WS"
fi
# 用户级 mcp避免与项目级重复
cat > "$HOME/.cursor/mcp.json" << 'EOF'
{
"mcpServers": {}
}
EOF
# 项目级 mcppchat + codegraph 唯一套
cat > "$WS/.cursor/mcp.json" << 'EOF'
{
"mcpServers": {
"persistent-chat": {
"type": "stdio",
"command": "/Users/karuo/.persistent-chat-local/ensure-hub.sh",
"args": ["--workspace=/Users/karuo/Documents/个人"],
"env": {
"PCHAT_HTTP_PORT": "13458",
"PCHAT_NODE": "/usr/local/opt/node@22/bin/node",
"PCHAT_WORKSPACE": "/Users/karuo/Documents/个人",
"PCHAT_VSIX_4TOOLS": "1",
"PCHAT_TOOL_SET": "4"
},
"disabled": false,
"autoApprove": [
"wait_for_user_input",
"init_conversation",
"merge_conversation",
"select_conversation"
]
},
"codegraph": {
"type": "stdio",
"command": "/Users/karuo/Documents/个人/卡若AI/04_卡火/火种_知识模型/CodeGraph_MCP语义代码图谱/脚本/codegraph_mcp_serve.sh",
"args": ["${workspaceFolder}"],
"disabled": false,
"autoApprove": [
"codegraph_search",
"codegraph_callers",
"codegraph_callees",
"codegraph_impact",
"codegraph_node",
"codegraph_context",
"codegraph_explore",
"codegraph_files",
"codegraph_status"
]
}
}
}
EOF
echo "备份: $BACKUP_ROOT"
echo "完成co-chat 扩展已删 · co-chat.mdc 已退役 · MCP 已统一为 pchat"
echo "请 Cmd+Q 重启 Cursor"