将运行态数据(对话/用户工作区/日志等)默认迁出源码树到 ~/.agents/<mode>, 对齐 ~/.claude、~/.codex 惯例;同时为日志加上开关与轮转,并归档/清理仓库内 长期堆积的实验残留与误产生文件。 ## 路径变量重写(核心) - 重写 config/paths.py:运行态根按模式分流,host -> ~/.agents/host, 其它(默认 docker/web)-> ~/.agents/web。 - 三级解析优先级(高→低): 1) 具体目录变量 DATA_DIR / LOGS_DIR / USER_SPACE_DIR / API_USER_SPACE_DIR 2) 模式根变量 AGENTS_HOST_HOME / AGENTS_WEB_HOME 3) 兜底 ~/.agents/<mode> - 导出变量名保持不变,20+ 处消费方零改动;统一 config/sub_agent.py 重复的 路径解析逻辑,将 sub_agent 任务目录/状态文件收编进 DATA_DIR; SUB_AGENT_PROJECT_RESULTS_DIR 仍随工作区(有意保留)。 - config/*.json、prompts/、agentskills/ 属配置/资源,仍锚定源码树。 ## 日志止血 - 新增 utils/log_rotation.py:按大小轮转(默认 20MB×3 份)+ 按份清理 (dump 默认保留最近 30 个),阈值可由 AGENT_LOG_ROTATE_MAX_BYTES / AGENT_LOG_ROTATE_BACKUPS / AGENT_DUMP_KEEP 覆盖。 - utils/api_client.py:API 请求体 dump 默认关闭(AGENT_API_DUMP_ENABLED 开启), 收编两处写死的 logs/ 硬编码路径改用 LOGS_DIR;dump 关闭时 request_dump 安全置空。 - utils/host_workspace_debug.py、server/utils_common.py(chunk/conn_diag 等)、 utils/logger.py(TaskLogger/ErrorLogger)统一接入轮转。 ## 迁移与运维脚本 - scripts/migrate_runtime_data.py:源码树 -> 运行态根,复制+备份+校验+可回滚+幂等, logs 丢弃不迁;import config 复用程序同一套路径解析(模式由 .env 决定), 覆盖 data/users/api 及 sub_agent/tasks(-> data/sub_agent_tasks)。 - scripts/cleanup_misplaced_web.sh:清理误迁到 ~/.agents/web 的副本(带 chflags 兜底)。 ## 测试 - 重写 test/test_config_paths_resolution.py:覆盖默认分流、模式切换、模式根变量覆盖、 具体目录变量最高优先级、相对路径锚定 repo root、源码树配置项不随迁移等 6 个用例。 ## 仓库清理 - 删除旧版子智能体目录 sub_agent/(逻辑已统一在 easyagent/)。 - 删除误产生/垃圾文件:误敲命令生成的 "ystemctl status ..."、空文件 .zhouyanbo / testfile_from_ai、运行态日志/pid、test_playwright.png、test_system_message.py 等。 - 实验残留与历史文档(BUG_FIX/POLLING 变更日志、SUB_AGENT 文档、翻译资料、 model_tests、compact_result、奇奇怪怪的bug、截图、goal_research)归档到 本地 _experiments/,并从版本控制移除(已加入 .gitignore)。 - .gitignore:新增 api/、_experiments/,清理已失效的 sub_agent/* 条目与冗余项。 ## 文档 - CLAUDE.md / AGENTS.md:补充数据目录与路径变量、日志策略、迁移流程, 更新目录结构(移除 sub_agent、新增 _experiments/scripts),调试日志路径改为 ~/.agents/<mode>/logs/。
34 lines
959 B
Bash
34 lines
959 B
Bash
#!/usr/bin/env bash
|
||
# 清理误迁到 ~/.agents/web 的运行态数据副本。
|
||
#
|
||
# 背景:首次迁移时脚本未加载 .env、误判为 web 模式,把数据复制到了
|
||
# ~/.agents/web/。源数据仍在源码树,web 只是程序读不到的错位副本。
|
||
# 本机终端有完整权限,可安全删除。
|
||
#
|
||
# 用法:bash scripts/cleanup_misplaced_web.sh
|
||
|
||
set -euo pipefail
|
||
|
||
WEB_DIR="${HOME}/.agents/web"
|
||
|
||
if [ ! -e "$WEB_DIR" ]; then
|
||
echo "目标不存在,无需清理:$WEB_DIR"
|
||
exit 0
|
||
fi
|
||
|
||
echo "将删除错位副本:$WEB_DIR"
|
||
du -sh "$WEB_DIR" 2>/dev/null || true
|
||
printf "确认删除?[y/N] "
|
||
read -r ans
|
||
case "$ans" in
|
||
y|Y|yes|YES)
|
||
# 先清掉可能存在的不可变标志(docx skill 等附带的 uchg/schg),再删除。
|
||
chflags -R nouchg,noschg "$WEB_DIR" 2>/dev/null || true
|
||
rm -rf "$WEB_DIR"
|
||
echo "已删除 $WEB_DIR"
|
||
;;
|
||
*)
|
||
echo "已取消,未删除任何文件。"
|
||
;;
|
||
esac
|