--- title: MemRelay Ongoing Maintenance & Performance Highlights type: curated permalink: main/projects/ebb54e31-5afe-4f9b-a291-4e3b03ca3b21/curated/development/mem-relay-ongoing-maintenance-performance-highlights stable_id: f48a08a1-f276-4045-8ffe-22e7ac39e5c9 scope: project project_id: ebb54e31-5afe-4f9b-a291-4e3b03ca3b21 workspace_type: development usage_profile_id: null preference_context: development document_type: maintenance revision: 1 source_memory_ids: [] source_checkpoint_ids: [] source_file_ids: [] source_git_commit: null source_git_commits: [] source_agent_sync_ids: [] model_connection: Sub2API model_name: git-restore source_count: 20 source_revisions: memory:fe738cfc-d1da-4472-9a49-ffd4975bea0c: '1' memory:b3fc5d7e-f1d7-4a63-860b-37f9f35cb136: '1' memory:41e5bdb5-a67b-49bc-b8a6-ab20b4c66fca: '1' memory:109e5244-ad26-4650-8a49-e6cebbabe7d7: '1' memory:e20b1ae7-4ba7-4c1d-9d79-59af809f9084: '1' memory:c16b8950-20d2-4d3d-87b3-0a8bfd20790d: '1' source_dispositions: processed: 20 unchanged: 0 unsupported: 0 skipped: 0 cited_source_ids: - curated_baseline:f48a08a1-f276-4045-8ffe-22e7ac39e5c9 - global_guidance_memory:5ed86f53-b53e-4534-8e51-d3a010069d5e - global_guidance_memory:ff34c6eb-6bba-41e5-9e43-ff80941fa823 - global_guidance_document:e4fc35f2-1606-4b79-9c1e-367edeea97d0 - global_guidance_document:8a861a5f-35c3-4f95-bd5b-6b2297888f56 - curated_baseline:08fb4703-1527-4983-bb8e-e4ca735e4316 - memory:b3fc5d7e-f1d7-4a63-860b-37f9f35cb136 - memory:41e5bdb5-a67b-49bc-b8a6-ab20b4c66fca - curated_baseline:d459e837-b05c-4f31-9b05-7f9d09c71f25 - curated_baseline:c6d3254d-9cbb-4dba-924e-f79781d2c07d - curated_baseline:a6632d8d-f445-4932-8ffd-06f721ffc51b - curated_baseline:6b2d8349-7a95-4a18-8e4b-20dd2ab95e2f - curated_baseline:47740b04-4f30-47c0-a68c-8fe5e19133e7 - curated_baseline:eebf38d3-36dc-4b57-b8d7-1f2c8be2f234 - curated_baseline:f66a40de-675c-4f63-ab33-77b033c364ee - global_guidance_memory:bf88c265-4749-4c50-85bc-4bae25298cd5 - global_guidance_memory:3f91189b-11a1-45bb-8357-4f413dc1609d - global_guidance_memory:105b328f-4bda-4641-90a7-7282ef156316 - memory:fe738cfc-d1da-4472-9a49-ffd4975bea0c - memory:e20b1ae7-4ba7-4c1d-9d79-59af809f9084 - memory:c16b8950-20d2-4d3d-87b3-0a8bfd20790d - memory:109e5244-ad26-4650-8a49-e6cebbabe7d7 job_cited_source_ids: - curated_baseline:f48a08a1-f276-4045-8ffe-22e7ac39e5c9 - global_guidance_memory:5ed86f53-b53e-4534-8e51-d3a010069d5e - global_guidance_memory:ff34c6eb-6bba-41e5-9e43-ff80941fa823 - global_guidance_document:e4fc35f2-1606-4b79-9c1e-367edeea97d0 - global_guidance_document:8a861a5f-35c3-4f95-bd5b-6b2297888f56 conflicts: [] supersedes: [] preferences: - statement: 在任何登录、SSH、数据库或 API 调用前先查询 Vaultwarden,唯一匹配时直接使用。 level: scenario workspace_types: - development workspace_ids: [] source_ids: - global_guidance_memory:5ed86f53-b53e-4534-8e51-d3a010069d5e counterexample_source_ids: [] occurrence_count: 1 explicit: true confidence: 1.0 status: current - statement: 新获得、生成或修改的账号、密码、Token、API 密钥和 TOTP 种子必须立刻写入密码库。 level: scenario workspace_types: - development workspace_ids: [] source_ids: - global_guidance_memory:105b328f-4bda-4641-90a7-7282ef156316 counterexample_source_ids: [] occurrence_count: 1 explicit: true confidence: 1.0 status: current - statement: '`memrelay://capabilities` 包含 datetime、UUID、Pydantic 对象时需先通过 FastAPI `jsonable_encoder` 再 JSON 编码。' level: scenario workspace_types: - development workspace_ids: [] source_ids: - global_guidance_memory:ff34c6eb-6bba-41e5-9e43-ff80941fa823 - global_guidance_document:8a861a5f-35c3-4f95-bd5b-6b2297888f56 counterexample_source_ids: [] occurrence_count: 2 explicit: true confidence: 1.0 status: current source_cursor: 0 source_hash: cd96d5b27b5d1ef34ff30350e40c12b9d9b7e389c5813755521578d1f2597d9c prompt_version: 2026-08-12.3 schema_version: '3' curation_job_id: null created_at: '2026-08-08T09:52:50.621894+00:00' updated_at: '2026-09-23T15:13:16.554524+00:00' tags: - maintenance - development restored_from_commit: 6a6a895eafcca6052e81a14fca103a42635dd1c2 --- # MemRelay 维护报告 (development) ## 已完成关键优化 1. **VaultService 内部 Bitwarden 快照** - 在进程启动、手动同步及周期同步时刷新快照。 - 所有读取路径(列表、搜索、详情、密码、唯一匹配)使用快照,写入即时更新快照,TOTP 仍实时调用 CLI。 - **效果**:ARM64 公网列表延迟从约 20 s 降至约 420‑431 ms。 2. **MCP JSON 序列化修复** - 通过 FastAPI `jsonable_encoder` 预处理 `memrelay://capabilities` 输出,解决 `datetime` 对象导致的 `json.dumps` 异常。 - 添加包含真实时间戳的回归测试,确保序列化后资源可被 `capabilities_get` 正确解析。 3. **ARM64 构建迁移细节** - 提供可选构建时代理与 Debian 镜像参数,加速依赖下载。 - Windows `tar` 符号链接问题通过在 Linux 容器中只读挂载解决。 - 初始迁移后容器启动时间较长,保留一致备份并在健康检查通过后再进行数据验证。 4. **UI 与交互改进** - 仪表盘记忆趋势卡高度固定 280 px,编辑抽屉宽度限制 62% 视口宽度(最大 1050 px),窄视口采用水平滚动。 - 删除独立进度页,检查点统一在项目开发时间线管理,支持删除。 - 操作语义统一:项目 **停用/永久删除**,记忆 **移入回收站**。 - Modal 头部/脚注固定,语言选择器移至品牌标题旁,“使用档案”重命名为 **记忆空间**。 ## 未决事项 / 持续工作 - **AI 上游间歇 503/超时**:任务进入 `waiting_dependency`,模型恢复后自动继续。计划实现 checkpoint‑resume 以避免重复消耗模型额度。 - **文档调用失败重试**:失败任务在下次重试时会重新生成证据批次,可能导致模型额度重复消耗。评估实现证据断点续跑的可行性。 - **UI 滚动细节**:继续根据用户反馈微调滚动行为。 - **Bitwarden 快照刷新间隔**:进一步评估最佳刷新频率,以进一步降低延迟。 - **迁移文档**:编写未来版本升级的模式迁移、备份/恢复脚本。 - **回归测试扩展**:增加对真实时间字段与 Streamable HTTP MCP 的自动化测试。 *本报告主要依据 `curated_baseline:f48a08a1-f276-4045-8ffe-22e7ac39e5c9`(维护)、`global_guidance_memory:5ed86f53-b53e-4534-8e51-d3a010069d5e`(凭证与记忆边界)以及相关全局指导文档生成。*