145 lines
6.6 KiB
Markdown
145 lines
6.6 KiB
Markdown
---
|
||
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`(凭证与记忆边界)以及相关全局指导文档生成。* |