Files
MemRelay/projects/ebb54e31-5afe-4f9b-a291-4e3b03ca3b21/curated/development/MemRelay Ongoing Maintenance & Performance Highlights.md
T

145 lines
6.6 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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.
---
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`(凭证与记忆边界)以及相关全局指导文档生成。*