Files
MemRelay/docs/chat-handoff.md

41 lines
3.8 KiB
Markdown
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.
# MemRelay 对话交接入口
> 定位:跨聊天窗口、跨 AI 客户端的**稳定入口文档**,只记录很少变化的事实、路径与硬约束。
>
> 维护规则:仅当部署拓扑、安全边界或上下文获取路径变化时更新本文。功能迭代、模型选型、任务状态、近期讨论等易变信息一律不写在这里——它们的正确归宿见"上下文获取路径"。
## 项目定位
MemRelay 是自托管的 AI 记忆、开发历史、密码库接入和文件仓储服务:让 Codex、Cursor、Claude Code 等客户端跨设备、跨项目、跨窗口恢复上下文,持续沉淀规则、偏好、事实、决定、经验、凭证与秒级检查点。AI 整理与记忆 Git 为可选增强、默认关闭;零配置基础模式是正式支持的完整运行方式。
## 部署拓扑(稳定事实)
- 正式实例:`https://mr.asio.asia`;ARM 板 `192.168.32.100`(Armbian,SSH root),Compose 位于 `/opt/1panel/docker/compose/memrelay`,数据 `/data/memrelay-stack`,宿主端口 `3003`。
- Sub2API 模型网关:同一块板,宿主端口 `3004`(板内/内网直连 `http://192.168.32.100:3004/v1`),公网 `https://sub2.asio.asia`。同板服务间调用走内网地址,不绕公网。
- 本机 Windows 不再部署 Docker 实例;开发目录 `E:\NIXProject\MemRelay`。
- 技术栈:后端 Python 3.12 + FastAPI + FastMCP + SQLAlchemy/SQLite + uv;前端 Vue 3 + Vite + Element Plus + pnpm;记忆引擎 Basic Memory v0.22.1(`third_party/` 子模块,独立容器经 MCP HTTP 调用)。
- OpenResty 只缓存带哈希的 `/assets/`;API、MCP、认证、签名地址不进代理缓存。
## 上下文获取路径(新窗口按序执行)
1. 读本文。
2. 读 `aidocs/project_context.md`——本机项目记忆时间线,最新条目在最上,是最完整的演进记录(gitignore,本机专属)。
3. 读 `docs/implementation-plan.md` 顶部数节——最近迭代的契约、诊断与验收结果。
4. 需要正式记忆、检查点、密码库或文件时,走 MemRelay 本体:Web `https://mr.asio.asia` 或 Streamable HTTP MCP(Token 在 Web「MCP Token」页创建,用完可撤销)。模型选型、生产经验等长期结论保存在 MemRelay 全局记忆中,以那里为准。
5. 不假设本地 git 与生产一致:核对 `git log` 与生产容器状态后再动手。
## 安全与工程边界(硬约束)
- 秘密值不进仓库、记忆正文、日志或交接文档;聊天中出现过的测试密钥用后立即撤销轮换。
- 发布纪律:完整门禁(后端 Ruff + pytest、前端 Vitest/ESLint/Prettier/构建)→ 停机备份(`MEMRELAY_DATA_PATH=/data/memrelay-stack sh scripts/backup.sh`)→ 只重建 `memrelay` 服务 → 保留回滚镜像标签 → 验证内外网 readiness。
- 含中文的文件禁止用 PowerShell `Get-Content`/`Set-Content` 修改——ANSI 误读会把 UTF-8 写成"合法编码的乱码",常规校验发现不了;只用编辑工具或显式 UTF-8 编解码的 Python 脚本,改完做关键中文串的内容断言。
- 长 SSH 组合命令拆分执行;生产只读诊断用脚本管道 `docker exec -i memrelay-memrelay-1 python -`(脚本含中文时先 scp 再远端重定向,避免 PowerShell 管道污染)。
- Web、REST、MCP 共用服务层,改一处三端生效;提交信息格式 `<type>: <中文描述>`。
- 模型只通过"提案 + 服务端校验"影响记忆,永远不给模型直接增删改查记忆文件的能力。
## 常用验证(稳定)
- 就绪:`curl http://192.168.32.100:3003/api/v1/health/ready`、`curl https://mr.asio.asia/api/v1/health/ready`
- 容器:`docker ps --format '{{.Names}} {{.Status}}' | grep mem`(应两个 healthy)
- 数据库:容器内 `PRAGMA quick_check` 应为 ok;迁移版本查 `alembic_version` 表