diff --git a/memrelay-manifest.json b/memrelay-manifest.json index cd7fc84..e0400da 100644 --- a/memrelay-manifest.json +++ b/memrelay-manifest.json @@ -91,6 +91,18 @@ { "kind": "directory", "value": "e:/code/nixmsg-wt/t01" + }, + { + "kind": "directory", + "value": "e:/code/nixmsg-wt/t02" + }, + { + "kind": "directory", + "value": "e:/code/nixmsg-wt/t03" + }, + { + "kind": "directory", + "value": "e:/code/nixmsg-wt/t05" } ], "created_at": "2026-09-29T15:42:27.642284+00:00", diff --git a/projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-29 22-00-06 UTC [0a3e2dc9c1].md b/projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-29 22-00-06 UTC [0a3e2dc9c1].md new file mode 100644 index 0000000..3438e6b --- /dev/null +++ b/projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-29 22-00-06 UTC [0a3e2dc9c1].md @@ -0,0 +1,54 @@ +--- +title: Checkpoint 2026-09-29 22:00:06 UTC [0a3e2dc9c1] +type: checkpoint +permalink: main/projects/25464650-ed5d-440e-b362-190f2852d451/checkpoint-2026-09-29-22-00-06-utc-0a3e2dc9c1 +stable_id: ef3be336-00c6-40d7-ae47-77e7994e5e93 +scope: project +memory_type: checkpoint +project_id: 25464650-ed5d-440e-b362-190f2852d451 +usage_profile_id: 0c9feb46-d06e-43cd-9ef0-c5813c84a998 +status: active +revision: 1 +request_id: nixmsg-t03-checkpoint-20260930-l +created_at: '2026-09-29T22:00:06.111132+00:00' +updated_at: '2026-09-29T22:00:06.111132+00:00' +tags: +- t03 +- ready-to-merge +- line-L +- feat/t03-store +--- + +## 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) +1. 表在 0002 不改 0001 +2. Queue 互斥一事务,合并留给 P2 +3. 空库不备份;失败不自动还原 + +### 未做 +- 写入合并(P2) +- 7.8 启动恢复逻辑(属后续消息/平台任务,本任务未做) +- 未改 go.mod(无新依赖) + +### 给下个会话 +- 复用工作树 E:/code/NixMsg-wt/t03 与分支 feat/t03-store +- 总控审核后 ff-merge;勿在 e:/code/NixMsg 主工作区改 +- schema_migrations 由执行器维护,不在 0002 内 \ No newline at end of file