# ---- 依赖与构建产物 ---- # # 前端只在**构建期**用到 npm:`npm run build` 出的 dist/ 被 cp 进 # server/internal/static/static/ 再由 go:embed 编进二进制。 # 部署机上没有 node,产物就是「一个二进制 + 一个 .db 文件」。 # 因此这三样都不进版本库:装依赖与构建都能从 package-lock.json 复现。 client/electron/node_modules/ client/electron/dist/ plugins/*/node_modules/ # dsh-mail-bridge 是 TypeScript 写的,dist/ 是 tsc 的产物。 # 与 client/electron/dist 同一个理由:装依赖与构建都能从 package-lock.json 复现, # 产物不进版本库。注意它**必须在装插件前构建**(package.json 的 # main 指向 dist/index.js),deploy/install.sh 负责这一步。 plugins/*/dist/ # go:embed 的输入目录 = client/electron/dist 的副本,同属构建产物。 # # 但目录本身要留下:go:embed 要求它存在才能编译,否则新克隆连 # `go test ./...` 都跑不起来 —— 只改后端的人不该被迫先装 node。 # 因此忽略构建产物,只保留 placeholder.html(见该文件内注释: # 之所以不叫 index.html,是因为那正是 Vite 产物的名字,会被反复覆盖)。 server/internal/static/static/* !server/internal/static/static/placeholder.html # Go 构建产物 server/agentmail-gateway server/gw *.test # ---- 运行态数据 ---- # # SQLite 库与附件目录:生产在 /opt/agentmail/data, # 本地调试可能落在仓库里,绝不能提交(含真实邮件与凭证哈希)。 *.db *.db-shm *.db-wal data/ attachments/ # ---- 凭证 ---- # # 管理员密码、Agent 密钥、opencode server password 都在 env 文件里。 .env *.env # ---- Agent 工具的运行态目录 ---- # # 这些是 pi / omo 在仓库里落的会话与后台任务状态,属于本机运行痕迹, # 不是项目的一部分。 .pi/ .omo/ .pi-glla/ .codegraph # ---- Python 工具缓存 ---- # # client/electron/src/icons/generate.py 是图标生成脚本(cairosvg + Pillow)。 # 静态检查器跑 ruff 时会在同目录落 .ruff_cache/,不是项目内容。 .ruff_cache/ __pycache__/ *.pyc # ---- 编辑器与系统 ---- .DS_Store *.swp .idea/ .vscode/ plugins/homeagent-mail-bridge/build/ # 构建产物(曾误提交) server/server plugins/zcode-mail-bridge/test/manual/gate-e2e-evidence.json