Files
MemRelay/projects/25464650-ed5d-440e-b362-190f2852d451/Checkpoint 2026-09-29 22-47-58 UTC [99329660b1].md
T
memrelay bbfc987165 create: Checkpoint 2026-09-29 22:47:58 UTC [99329660b1]
MemRelay-Operation: checkpoint-save:i1-register-ready-20260930-064800
MemRelay-Resource: ff8132b0-d7c6-429a-998e-dc3ebc8645ab
2026-09-30 06:48:19 +08:00

1.9 KiB
Raw Blame History

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:47:58 UTC [99329660b1] checkpoint main/projects/25464650-ed5d-440e-b362-190f2852d451/checkpoint-2026-09-29-22-47-58-utc-99329660b1 ff8132b0-d7c6-429a-998e-dc3ebc8645ab project checkpoint 25464650-ed5d-440e-b362-190f2852d451 0c9feb46-d06e-43cd-9ef0-c5813c84a998 active 1 i1-register-ready-20260930-064800 2026-09-29T22:47:58.818501+00:00 2026-09-29T22:47:58.818501+00:00
ready-to-merge
i1
line-I
feat/i1-register

检查点:I1 注册接口 ready-to-merge

完成内容

  • 实现 POST /api/client/register 为可挂载 http.Handler(identity.NewRegisterHandler / NewServer().Handler())。
  • 覆盖 DEVELOPMENT 6.9:开关、安全码常量时间比较、IP 锁定、CORS/OPTIONS、4KiB 体、字段规则、source=self、日志不含安全码/密码。
  • httptest + 临时 SQLite 覆盖 F23 验收;task check 通过。
  • 写 docs/DEVIATIONS.md「身份 I」五条。未改 PRD、cmd、listener。

分支 / 路径 / 提交

  • 分支:feat/i1-register(已推送 origin,未推 main)
  • 工作树:E:/code/NixMsg-wt/i(基于 origin/main 22c56d1)
  • 提交:3f6f942 feat: 实现端自助注册 HTTP 接口与 F23 验收测试

挂载方式

mux.Handle("/api/client/register", identity.NewRegisterHandler(identity.RegisterConfig{
  DB: db, Hash: hashPool, Locks: loginLocks, // P3 实现
}))

验证

  • task check:web build、embeddist、golangci-lint 0、go test ./... 含 identity F23

没做完

  • 未接线到 cmd/listener(等 N/总控)
  • 依赖 P3 真实 HashPool/LoginLocks;测试用 StubHashPool + 测试用 register IP 锁定器
  • I2–I5 未做;trusted_proxies IP 由接线注入 ClientIP

给下个会话

  • 可 rebase origin/main 后由总控 ff-merge;勿强推 main;勿改主工作区 e:/code/NixMsg