MemRelay-Operation: checkpoint-save:nixmsg-t03-checkpoint-20260930-l MemRelay-Resource: ef3be336-00c6-40d7-ae47-77e7994e5e93
2.2 KiB
2.2 KiB
title, type, permalink, stable_id, scope, memory_type, project_id, usage_profile_id, status, revision, request_id, created_at, updated_at, tags
| title | type | permalink | stable_id | scope | memory_type | project_id | usage_profile_id | status | revision | request_id | created_at | updated_at | tags | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Checkpoint 2026-09-29 22:00:06 UTC [0a3e2dc9c1] | checkpoint | main/projects/25464650-ed5d-440e-b362-190f2852d451/checkpoint-2026-09-29-22-00-06-utc-0a3e2dc9c1 | ef3be336-00c6-40d7-ae47-77e7994e5e93 | project | checkpoint | 25464650-ed5d-440e-b362-190f2852d451 | 0c9feb46-d06e-43cd-9ef0-c5813c84a998 | active | 1 | nixmsg-t03-checkpoint-20260930-l | 2026-09-29T22:00:06.111132+00:00 | 2026-09-29T22:00:06.111132+00:00 |
|
T0.3 完成(线 L)
- 任务:T0.3 internal/store(迁移、建表、写入队列接口)
- 分支:feat/t03-store
- 工作树:E:/code/NixMsg-wt/t03(toplevel 确认不是主工作区)
- 基于:origin/main @ 86dc10a
- 提交:33db3e7 feat: 实现 SQLite 迁移备份、完整表结构与简单写入队列
- 已推送:origin/feat/t03-store(普通推送,未推 main、未强推)
关键实现
- 保留 0001=SELECT 1;新增 0002_schema.sql(DEVELOPMENT 7.7 全部业务表/索引,含 api_tokens、settings、session_*)
- Migrate:有 pending 且打开前已有 nixmsg.db 时 VACUUM INTO data_dir/backup/pre-migrate-.db;失败返回错误
- Open:写连接 DSN+_txlock=immediate MaxOpenConns(1);读池去掉 _txlock;Queue 简单互斥一操作一事务
- serve 改为 store.Open,保留 /healthz 与 listen.addr
验证
- task check 通过(web build、embeddist build、golangci-lint 0 issues、go test 全绿)
- 单测:空目录建表、重复启动不重迁、旧库遇新版本有备份、Queue 写入可读
偏差(docs/DEVIATIONS.md 总控 L / T0.3)
- 表在 0002 不改 0001
- Queue 互斥一事务,合并留给 P2
- 空库不备份;失败不自动还原
未做
- 写入合并(P2)
- 7.8 启动恢复逻辑(属后续消息/平台任务,本任务未做)
- 未改 go.mod(无新依赖)
给下个会话
- 复用工作树 E:/code/NixMsg-wt/t03 与分支 feat/t03-store
- 总控审核后 ff-merge;勿在 e:/code/NixMsg 主工作区改
- schema_migrations 由执行器维护,不在 0002 内