docs(task): mark auth register fix resolved after test goose 77

This commit is contained in:
weichen
2026-09-28 01:16:22 +00:00
parent e1d6a2c192
commit dbe1401455
4 changed files with 17 additions and 10 deletions
+2 -2
View File
@@ -2,11 +2,11 @@
维护规则:[问题记录与开发经验闭环](../ops/2026-09-23-issue-learning-workflow.md)。每个问题一个稳定 ID;主记录是事实与状态来源,本表为可检索投影。新发现及时登记,修复后保留记录;发布 blocker 仍见 [gap-matrix](../remediation/gap-matrix.md)。
更新:2026-09-28。test 注册 INTERNAL:标准角色 role-guest 缺失导致 FK 23503,重复用户名被误判 500(fixing,见 auth-register-internal)。管理台重置密码入口被 F4-A 误删(端点仍在),已恢复 UI(resolved)。2026-09-27。上传链路:登记并修复上传文档跨端不可访问(占位模板退化 + 元数据/正文不落服务端,fixing 待 dev 集成)。2026-09-26。docgov 批准链:登记并修复 review_snapshot_id 装载缺失与 uow 行锁自死锁(resolved);memDocs 持久化失败缓存投毒(investigating)。历史 resolved 不表示本日产品回归通过。系统 code review P0/P1 批次修复落账(5 resolved + 1 deferred + 1 open,主记录见 [整改文档](2026-09-26-system-code-review-fixes.md),来源 [审计](2026-09-26-system-code-review.md))。
更新:2026-09-28。test 注册 INTERNAL:标准角色 role-guest 缺失导致 FK 23503,已补种并重启 test(goose 77,resolved)。重复用户名 400 在新代码单测通过;当前 rc 二进制仍返回 INTERNAL,随下次含本提交的 test 制品生效。管理台重置密码入口被 F4-A 误删(端点仍在),已恢复 UI(resolved)。2026-09-27。上传链路:登记并修复上传文档跨端不可访问(占位模板退化 + 元数据/正文不落服务端,fixing 待 dev 集成)。2026-09-26。docgov 批准链:登记并修复 review_snapshot_id 装载缺失与 uow 行锁自死锁(resolved);memDocs 持久化失败缓存投毒(investigating)。历史 resolved 不表示本日产品回归通过。系统 code review P0/P1 批次修复落账(5 resolved + 1 deferred + 1 open,主记录见 [整改文档](2026-09-26-system-code-review-fixes.md),来源 [审计](2026-09-26-system-code-review.md))。
| issue_id | 模块 / 检索词 | 问题 | 严重度 | issue_state | owner | 证据日期 / 范围 | 唯一主记录 | 经验 |
|---|---|---|---|---|---|---|---|---|
| ISSUE-20260928-register-internal | auth / register / role-guest / system_roles / 23503 / 23505 / INTERNAL | test 缺 role-guest 时注册 FK 失败被脱敏为 INTERNAL;重复用户名唯一冲突同样 500 | high | fixing | Cursor | 2026-09-28;dev:8080 新用户成功、重复用户名 INTERNAL;test:8081 任意新用户 INTERNAL(req_diag_repro_002) | [主记录](../ops/short-term/2026-09-28-auth-register-internal.md#issue-20260928-register-internal) | [LESSON-20260928-standard-role-reseed](../ops/lessons/2026-09-28-standard-role-reseed.md) |
| ISSUE-20260928-register-internal | auth / register / role-guest / system_roles / 23503 / 23505 / INTERNAL | test 缺 role-guest 时注册 FK 失败被脱敏为 INTERNAL;重复用户名唯一冲突同样 500 | high | resolved | Cursor | 2026-09-28;test:8081 补种并重启后注册 200(goose 77,req_regfix_after_restart);重复用户名 400 由单测覆盖,rc 二进制仍为 INTERNAL | [主记录](../ops/short-term/2026-09-28-auth-register-internal.md#issue-20260928-register-internal) | [LESSON-20260928-standard-role-reseed](../ops/lessons/2026-09-28-standard-role-reseed.md) |
| ISSUE-20260928-admin-reset-ui-removed | web / UsersSection / 重置密码 / F4-A / adminResetPassword | F4-A 在 F4-B 端点已合入的基线上删除管理台重置密码按钮,管理员无法重置口令 | high | resolved | Cursor | 2026-09-28;dev API :8080 + worktree Vite :3110 真实 UI 探针 PASS(临时口令长度 16、强制改密仅一次、旧口令 401) | [主记录](../ops/short-term/2026-09-28-restore-admin-password-reset.md#issue-20260928-admin-reset-ui-removed) | [LESSON-20260928-ui-dead-control](../ops/lessons/2026-09-28-ui-dead-control.md) |
| ISSUE-20260927-upload-doc-cross-device | freedoc / upload / freeform / fileMeta / 占位模板 / 跨端 | 上传文档源文件元数据与正文不落服务端:换浏览器/清存储/共享他人查看时退化为注册占位模板,文本类连二进制都未存(伴生 <512B 显示 "0 KB") | high | resolved | pi | 2026-09-27;dev `86efba2c` 合入并在 dev 环境验证:FS-UPLOAD-01/02 真实浏览器 PASS(跨上下文可见真实正文),DB 核验元数据+asset 落库;存量无元数据旧文档不可恢复(重新上传即可) | [主记录](../ops/short-term/2026-09-27-upload-doc-access.md) | [LESSON-20260927-server-facts-and-iso-db-recipe](../ops/lessons/2026-09-27-server-facts-and-iso-db-recipe.md) |
| ISSUE-20260923-nullable-duty | docgov / nullable / 23503 / reviewer_id | 可选职责空值写 0 导致 FK 失败 | high | resolved | Codex(历史补录) | 2026-09-17;历史 PG / API 冒烟;当前未复测 | [主记录](2026-09-23-historical-issue-records.md#nullable-duty) | [LESSON-20260923-nullable-duty](../ops/lessons/2026-09-23-nullable-duty.md) |
+1 -1
View File
@@ -18,7 +18,7 @@
| owner | task | branch | worktree | mutex | status |
|---|---|---|---|---|---|
| Cursor | auth-register-internal-2026-09-28 | fix/auth-register-internal-2026-09-28 | .worktrees/auth-register-internal-2026-09-28 | auth-register | in_progress |
| Cursor | auth-register-internal-2026-09-28 | fix/auth-register-internal-2026-09-28 | .worktrees/auth-register-internal-2026-09-28 | auth-register | done |
| Cursor | restore-admin-password-reset-2026-09-28 | feature/restore-admin-password-reset-2026-09-28 | .worktrees/restore-admin-password-reset-2026-09-28 | auth | done |
| pi | test-single-binary-2026-09-27 | feature/test-single-binary-2026-09-27 | .worktrees/test-single-binary-2026-09-27 | env:dev+env:test+git:dev+git:test | done |
| pi | upload-doc-access-2026-09-27 | fix/upload-doc-access-2026-09-27 | .worktrees/upload-doc-access-2026-09-27 | freedoc+web-upload | done |
@@ -1,7 +1,7 @@
---
title: "修复 test 环境注册 INTERNAL"
task_id: auth-register-internal-2026-09-28
status: in_progress
status: done
created: 2026-09-28
updated: 2026-09-28
owner: Cursor
@@ -15,9 +15,9 @@ write_scope:
- internal
- .doc
mutex: auth-register
review_state: pending
integration_state: pending
deployment: pending
review_state: accepted
integration_state: merged_local_dev
deployment: test_restarted
cleanup: pending
remote_sync: not_requested
---
@@ -56,7 +56,7 @@ remote_sync: not_requested
- 实际:test `POST /api/v1/auth/register` 必现 INTERNAL(复现 `req_diag_repro_002`);dev 新用户名成功,重复用户名也是 INTERNAL(`req_f0a8c723ed8e6c4a`)。
- 已证实根因:test 库 `system_roles` 缺 `role-guest`,`user_role_bindings.role_id` 外键 23503。00015 只保护 `role-admin`,其余标准角色可删且启动引导不补种。重复用户名 23505 被 `insert user:` 判成基础设施 500。
- 修复:00077 + `ErrUsernameExists` + 500 日志。
- 状态:fixing,待 test 库迁移与合入后标 resolved。
- 状态:resolved。合入 `9141741b`;test 重启后 goose 记 version 77,注册 HTTP 200(`req_regfix_after_restart`,user_id 45,已删除)。
## 禁止
@@ -15,7 +15,7 @@ test 环境(`:8081`)注册新用户返回 `INTERNAL` / 「请求无法完成
- OS: Linux;worktree `fix/auth-register-internal-2026-09-28`,基线 `4ba60c2c9d7eaf3e3e824475c0f3a44e10641190`
- 单测:`go test` 内存库与冲突分类(不连 5433/5434)
- 实库:test localpg `:5434` / `agent_system_test`;当时 goose `version_id=76`。Up SQL 手工执行(幂等),goose 版本仍为 76,待迁移文件合入 dev 后由 test 进程重启记 77
- 实库:test localpg `:5434` / `agent_system_test`。合入前手工执行 00077 Up(当时 goose 仍为 76);合入 `9141741b` 后 `./scripts/launch-single.sh test`(未 `--build`)重启,日志 `goose: successfully migrated database to version: 77`
- 运行中的 `:8081` 仍是 rc 单二进制,不含本次 Go 改动
- **NOT REQUIRED**:产品 PI 全链路。依据:IAM 注册与迁移,不改工作流模板或提示词
@@ -72,6 +72,13 @@ ok chat-agent-system/internal/server 0.349s
`TestPgStore_CreateUserDuplicateUsername` 在未设置 `TEST_DATABASE_URL` 时 Skip,不连共享库。
### 5. 合入后重启 test
- **输入**:`./scripts/launch-single.sh test`(不 `--build`,沿用 rc 二进制);再 `POST :8081/api/v1/auth/register` 用户名 `regfix_0928b`,`X-Request-ID: req_regfix_after_restart`
- **实际输出**:`.tmp/launch/server-test.log` 含 `OK 00077_2026-09-28-reseed-standard-roles.sql` 与 `goose: successfully migrated database to version: 77`。`goose_db_version` 最新为 77。HTTP 200 `{"status":"active","message":"注册成功,已激活,请返回登录","user_id":45}`。该用户已删除
- **评价**:PASS
- **耗时**:重启至健康检查约 12s
## 七、 测试结论与后续优化建议 (Conclusion & Next Steps)
授权范围内的 test 注册失败已由补种解除。代码侧 400 与日志在本 worktree 单测通过。合入 local dev 后重启 test(`launch-single.sh test`,不要 `--build`),让 goose 把 00077 记为 version 77。不要为这个 400 行为替换当前 rc 二进制。
test 注册失败已解除:标准角色已补种,goose 77,重启后的 `:8081` 注册返回 200。重复用户名的 400 在本提交单测通过;正在运行的 rc 二进制仍会把重复用户名报成 INTERNAL,随下次包含本提交的 test 制品生效。不要为这条 400 替换当前 rc 二进制。