workbuddy.xpcool.com/.workbuddy/memory/MEMORY.md

53 lines
4.3 KiB
Markdown
Raw 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.

# xpcool.com 工作空间 · 统一规则与项目索引
> 本文件随会话自动加载。保持精简:只放规则与索引,详细历史在各项目 CHANGELOG。
## 三条铁律(全项目通用)
1. 中文注释:写/改代码时,在应有处(函数、复杂逻辑、配置项、非显然分支)加中文注释。
2. 做记录:每次请求/变更/修复/文档动作,都在对应项目 CHANGELOG.md 顶部追加一条。
3. 中文优先:与用户的思考、输出、交流,能中文尽量中文。
## 工作空间说明git 管理 · 跨设备同步)
- 本工作空间仓库:`workbuddy.xpcool.com`含本规则、每日日志、README远程`https://git.xpcool.com/xpcool/workbuddy.xpcool.com.git`
- **布局约定(跨设备必须一致)**:所有项目与工作空间仓库位于同一父目录下:
```
<父目录>/
├── workbuddy.xpcool.com/ ← 本工作空间(规则+索引+日志)
├── admin.xpcool.com/
├── service.xpcool.com/
└── tool.xpcool.com/
```
换设备时按此布局 clone索引即全部生效无需改任何路径。
## 项目索引(变更记录在各项目 .workbuddy/memory/CHANGELOG.md
| 项目 | 类型 | 相对路径(相对本工作空间) | 远程仓库 |
|------|------|--------------------------|---------|
| admin.xpcool.com | Vue 管理后台前端 | ../admin.xpcool.com/.workbuddy/memory/CHANGELOG.md | https://git.xpcool.com/xpcool/admin.xpcool.com.git |
| service.xpcool.com | Go 后端服务 | ../service.xpcool.com/.workbuddy/memory/CHANGELOG.md | https://git.xpcool.com/xpcool/service.xpcool.com.git |
| tool.xpcool.com | 前端工具站 | ../tool.xpcool.com/.workbuddy/memory/CHANGELOG.md | https://git.xpcool.com/xpcool/tool.xpcool.com.git |
(新增项目:在此加一行 + 在其 .workbuddy/memory/ 建 CHANGELOG.md + git.xpcool.com 建仓库)
## 记录格式(省 token · 快速命中)
- 倒序:最新在上,一行一条
- 模板:`YYYY-MM-DD | 类型 | 一句话摘要`
- 类型REQ 请求 / CHG 变更 / FIX 修复 / DOC 文档 / CFG 配置 / DEP 依赖
- 示例:`2026-08-26 | CHG | 新增用户列表分页接口并补中文注释`
## 命中流程
1. 判断是否涉及某项目(看项目名/路径)。
2. 读该项目 CHANGELOG.md 头部(最新 1015 条)了解近况。
3. 处理后于 CHANGELOG 顶部追加本次记录。
4. 新增项目时同步更新上方索引表。
## 生产部署(腾讯云 193.112.118.168SSH 22025/xxcoolDocker+宿主机 Nginx
- 站点落点:前端静态 → `/data/www/<域名>/`nginx 配置 → `/data/nginx/conf.d/<域名>.conf`80→301→443 + 反代/静态);证书 → `/data/nginx/ssl/<域名>/<域名>_bundle.crt|.key`(本地源:`E:\xxcool\ssl\<域名>_nginx/`)。
- service 后端容器:`service.xpcool.com:new``127.0.0.1:10100:10100`,网络 `xpcool-net`env`GF_GCFG_ENV=prod` + `DB_DSN=mysql:service:xxx@tcp(xpcool-mysql:3306)/service?...`**必须带 mysql: 类型前缀**+ `JWT_SECRET`;容器内必须有 `manifest/config/config.yaml`(基础配置),否则 GF 启动报「找不到 config」构建目录 `/data/deploy/projects/service.xpcool.com/`main + manifest/config + resourceDockerfile 用 COPY manifest/config 整体拷贝)。
- DB`xpcool-mysql` 容器root 密码见该容器 env库名 `service`,种子执行顺序 003→004→004b→007服务器表结构旧必须先 003 加列;导入用 `sudo sh -c 'docker exec -i xpcool-mysql mysql ... < file'` 宿主机重定向)。
- 权限映射admin_menu type=2 行的 path 必须匹配实际路由(现为 `POST /api/service/admin/...`,见 manifest/sql/007_menu_permissions_v3.sql
- SSH 凭据/密码不入库,需要时询问用户或查对话记忆;远程批量命令用 paramiko 脚本(`%TEMP%\wb_deploy\ssh_exec.py`,支持第 2 参数超时秒数docker build 用服务器端 nohup+日志轮询防超时。
- 本地 pnpm 修复corepack shim 损坏,用 `node <~/.workbuddy/binaries/node/workspace/node_modules/pnpm/bin/pnpm.cjs>` 调用(需 NODE_OPTIONS=--experimental-sqlite
## 日常同步习惯(建议)
- 每次工作结束:在各改动项目 `git add + commit + push`,本工作空间同样提交(规则/日志变化时)。
- 换设备开工前:先 `git pull` 各仓库,保证规则与记录最新。