From 80964c5035a331ba9c3e763a0ab2f435e522c635 Mon Sep 17 00:00:00 2001 From: MemRelay Date: Wed, 30 Sep 2026 15:07:21 +0800 Subject: [PATCH] create: Checkpoint 2026-09-30 07:06:56 UTC [77467fe469] MemRelay-Operation: checkpoint-save:nixmsg-u01-u04-u05-checkpoint-20260930-1504 MemRelay-Resource: 11e3f78a-b6bf-40b2-bbe4-6090f651bc2a --- ...nt 2026-09-30 07-06-56 UTC [77467fe469].md | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-30 07-06-56 UTC [77467fe469].md diff --git a/projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-30 07-06-56 UTC [77467fe469].md b/projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-30 07-06-56 UTC [77467fe469].md new file mode 100644 index 0000000..5a02e1a --- /dev/null +++ b/projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-30 07-06-56 UTC [77467fe469].md @@ -0,0 +1,54 @@ +--- +title: Checkpoint 2026-09-30 07:06:56 UTC [77467fe469] +type: checkpoint +permalink: main/projects/25464650-ed5d-440e-b362-190f2852d451/checkpoint-2026-09-30-07-06-56-utc-77467fe469 +stable_id: 11e3f78a-b6bf-40b2-bbe4-6090f651bc2a +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-u01-u04-u05-checkpoint-20260930-1504 +created_at: '2026-09-30T07:06:56.604611+00:00' +updated_at: '2026-09-30T07:06:56.604611+00:00' +tags: +- ready-to-merge +- identity +- U-01 +- U-04 +- U-05 +--- + +# 检查点:身份线 U-01/U-04/U-05 完成(ready-to-merge) + +## 线 / 任务 +- 线:身份 / 群 / 在线 +- 任务:U-01 (#39)、U-04 (#42)、U-05 (#43) +- 未做:U-02 (#40)、U-03 (#41) +- 分支:`feat/fix-identity-u01-u05`(已推远端,未合并 main) +- 工作树:`E:\code\NixMsg-wt\r2-u` +- 基线:`origin/main` = `4059a15` + +## 提交 +- `4852be9` fix: 开启自助注册须先有 8-64 字符安全码 +- `5dac4d8` fix: 锁定计数表过期清理并限制总量 +- `fa62c4c` fix: 目录搜索转义 LIKE 通配符并拒绝编号 inline +- HEAD / origin/feat/fix-identity-u01-u05 = `fa62c4c97c015d5f69c62b7f40fd005be24056c7` + +## 完成内容 +- U-01:register() 存储码非 8–64 字符时 403 registration_closed(锁定前、不计锁定);PUT registration 同一写操作末尾校验,开启且无合法码则 400 回滚;允许一次提交 enabled+code/generate;前端无已存码禁用开关;e2e 先设码再开启。 +- U-04:locks.go Fail/Check 顺手清过期条目;每 1024 次或每分钟全表扫;上限 65536,优先淘汰最旧非锁定条目。未改 memlock.go,未改对话密码锁键。 +- U-05:directory LIKE 转义 \ % _ 并 ESCAPE;注册拒绝 inline。后台开通/导入未改(禁止 endpoints.go / protocol)。 + +## 验证 +- `go test ./internal/app/identity/ ./internal/admin/ ./internal/auth/ ./internal/app/presence/ -count=1` 通过 +- web:vitest 5 files / 7 tests 通过;eslint 0 +- golangci-lint 改动包 0 issues +- 未跑 Playwright e2e(无工作树独立 pnpm 10 安装;已改 e2e 注册流程顺序) + +## 未做 / 给下个会话 +- 不要修 U-02(依赖 C-04,改 group)、U-03(对话密码锁键,与 admin/message/group 共享) +- 不要合并 main;不要删 fix3 +- U-05 后台开通/导入 inline 留给后续(endpoints.go) +- 工作树 web/node_modules 可能仍是指向主仓库的 junction,不入仓