merge: closeout-worktrees docs batch (6 tips + task doc)

Rebuild onto current local_dev after parallel agentctl-queue integrate. Non-.doc tree matches frozen D; CURRENT/MATRIX kept as local_dev.
This commit is contained in:
WeiCHEN
2026-09-23 13:52:52 +08:00
7 changed files with 253 additions and 4 deletions
@@ -64,7 +64,5 @@ prelim 常 `author_id=0`(unmanaged duties → 无认领/编辑)。冲突用
## CURRENT 同步说明
- `docs(@document)` 收记录在 closeout tip `e9a9ce97`(含 DOCREV PASS 焦点行)。
- 合入 local_dev 的 merge `437cee84` 以第二父带上该 tip,但 merge 树未带上 CURRENT 正文(曾误用 ours)。
- **cleanup_pending**:持 `docs:admin` 的执行者对 local_dev 基线再跑一次 `@document` apply 后 `--no-ff` 合入,或从 `e9a9ce97` 重放 CURRENT。
- audit/remediation/账本已在 local_dev `ddcb63cd`/`437cee84`。
- 曾误用 ours merge 丢掉 CURRENT 焦点;后由 closeout `docs:admin` 重放并合入 local_dev(`c24e1548` → MATRIX 收口 `8f0e31e5`)。
- audit/remediation/密封账本与 DOCREV PASS 焦点已在 local_dev;本 worktree 仅保留短文备忘。
@@ -0,0 +1,27 @@
---
title: "freeform project_id BIGINT 对齐 projects.id"
task_id: "freeform-project-id-bigint-2026-09-22"
status: done
created: 2026-09-22
owner: Cursor
task_type: implementation
branch: feature/freeform-project-id-bigint-2026-09-22
worktree: .worktrees/freeform-project-id-bigint-2026-09-22
write_scope: ["deploy/postgres/goose", "internal/freedoc", "internal/server", ".doc"]
allowed_environments: ["dev"]
mutex: "deploy/postgres/goose + freeform"
---
# freeform project_id BIGINT
## 问题
`POST /api/v1/freeform-documents` 在雪花 `project_id`(>int4 max)时 pgx 编码失败(OID 23),阻塞 UI-11 附件注册。
## 修复
- goose `00063`:`freeform_documents.project_id` → BIGINT
- Go `ProjectID`/`ListDocuments` → int64;list query 用 `ParseInt`
- 活库已手工 ALTER(schema 仍报 61);合入后 goose 幂等加固
## 验证
- `go test ./internal/freedoc/ -short` PASS(含 snowflake 回归)
- 活库 column = bigint
@@ -0,0 +1,82 @@
---
title: "Worktree 收口:docs 增量合入与清理"
task_id: "closeout-worktrees-2026-09-23"
status: in_progress
created: 2026-09-23
updated: 2026-09-23
owner: Cursor
task_type: ops
task_tier: medium
policy_revision: "agent-governance-2026-09-21-r1 @ cc91c217e7c0e4732de3923d0fa229fd4bd65798"
branch: feature/closeout-worktrees-2026-09-23
worktree: .worktrees/closeout-worktrees-2026-09-23
base_dev_sha: "cc91c217e7c0e4732de3923d0fa229fd4bd65798"
head_sha: ""
write_scope: [".doc"]
allowed_environments: []
mutex: "git:dev+worktree-cleanup"
review_state: pending
integration_state: pending
deployment: n/a
cleanup: pending
cleanup_owner: "本任务完成后独立维护者复查"
cleanup_trigger: "合入 local_dev 且批次 A–D remove 成功或 cleanup_pending 已登记"
remote_sync: not_requested
---
# Worktree 收口:docs 增量合入与清理
## 用户目标
检查所有 worktree 分支;推进并完成可合入的 docs 增量;验证通过后合入 `dev` 并清理 worktree。避开并行会话中的 `task-bubble-bind` 系列;不 push。
## 授权边界
- 允许:`.doc` 写入;`git:dev` 集成(候选 worktree);关闭已完成 agentctl 任务;脚本入口清理 worktree。
- 禁止:push;晋升 test/main;碰 task-bubble 系列;强制 `--force`/`-D`;修改非 `.doc` 业务代码(合入时冲突取 dev)。
## 待合入分支(docs 增量)
| tip | branch | 预期增量 | 代码风险 |
|---|---|---|---|
| 20290d03 | feature/2026-09-23-user-profile-display | CURRENT done 行 | 无 |
| 457bea85 | feature/docrev-ui-rerun-2026-09-22 | short-term 备忘 +5 行 | 无 |
| 10f9a8b9 | feature/integrate-modular-decouple-closeout-docs-2026-09-23 | W4 matrix / governance 校准(3ebabc19 已在 dev) | 无 |
| 5ab034eb | feature/integrate-modular-decouple-residual-2026-09-23 | cancelled 旧候选 docs | 无 |
| b6965eb0 | feature/freeform-project-id-bigint-2026-09-22 | 任务文档;代码等价物 3bdd53ae 已在 dev | **冲突取 dev** |
| ee66bd00 | feature/promote-fix-latest-upload-test-2026-09-23 | promote evidence docs | 无 |
## 明确跳过
- task-bubble-bind / integrate-task-bubble-bind / promote-task-bubble-bind(并行会话 active)
- push / origin 同步
## 特殊残留(预登记)
| 路径 | 处置 |
|---|---|
| docrev worktree 锁文件 `.exclusive-run.lockdir` / `.ui-run.lock` | 删除 |
| `canonical-ui00-13a-pass.json` sha256=`dd83d656…f287` | 测试报告未引用;登记后删除 |
| `sealed-ledger-main-20260922T195858Z.json` sha256=`31ed8a36…44be` | 正式密封账本 `sealed-ledger-ui00-16-post-20260923T0400Z` 已在 dev;登记后删除 |
| integrate-user-profile-display-current 脏 CURRENT.md | 与 20290d03 行等价 → checkout 丢弃 |
## 验证计划
纯文档档:diff 核对;`.doc` 链接存在性;CURRENT/MATRIX 抽查;合入后 `git diff <D> HEAD -- ':!.doc'` 必须为空;freeform 追加 `go vet`/`go test -short ./internal/freedoc/`。
## 步骤
1. [x] 创建 worktree + 登记任务
2. [ ] 写本任务文档并提交
3. [ ] integrate 候选:串行 merge 六分支(冲突取 dev)
4. [ ] validate + integrate 推进 local_dev
5. [ ] agentctl task close(跳过 task-bubble)
6. [ ] 分批清理 worktree A/B/C/D
7. [ ] 特殊残留处理 + 收口状态更新
## 结果(执行后填)
- `integration_state`:
- `dev_tip_after`:
- `cleanup_summary`:
- `cleanup_pending`:
@@ -0,0 +1,57 @@
---
title: "晋升 latest-upload summary + parse-wait 至 test"
task_id: promote-fix-latest-upload-test-2026-09-23
status: done
created: 2026-09-23
updated: 2026-09-23
owner: Cursor
task_type: ops
task_tier: multi_stage
policy_revision: "AGENTS+worktree-ops @ 30fa4e88"
branch: feature/promote-fix-latest-upload-test-2026-09-23
worktree: .worktrees/promote-fix-latest-upload-test-2026-09-23
base_dev_sha: "30fa4e88b21ddc918a4f408a13ef4d2c2d5acd6e"
head_sha: "54955c9d1a61f671556508ab7c89db088aaef7d7"
write_scope: [".", ".doc/"]
allowed_environments: ["test"]
mutex: git:test+env:test
review_state: not_required
integration_state: merged_local_test
deployment: test_ok
cleanup: pending
cleanup_owner: 独立维护者
cleanup_trigger: tip 为 local_dev/origin 祖先且无进程占用后 remove
remote_sync: not_requested
---
# 晋升 latest-upload summary + parse-wait 至 test
## 用户目标与授权
- 用户目标:合入 test,便于人工实测「总结刚刚上传的文档」与 MinerU 解析等待。
- 授权来源:用户明确「合入 test,我来进行实际测试」(dev→local test;未要求 push/main)。
- 交付终点:local `test` 含功能祖先、rc tag、pinned 镜像 recreate、`:8081` health。
- 禁止:不晋升 main;不 push;不删 Volumes。
## 结果
- local `test@54955c9d` + `rc-v1.1.0-beta.3`
- 含 `30fa4e88`(local_dev tip)与实现祖先 `f6e14f97`
- test `:8081` schema_version=65;ready ok;pinned app digest `ba834cb1…`
- 报告:[../../test-reports/2026-09-23-promote-fix-latest-upload-test-report.md](../../test-reports/2026-09-23-promote-fix-latest-upload-test-report.md)
## 步骤
1. [x] 登记 promote 任务 / worktree(基线 test@e217929c)
2. [x] candidate images + PASS receipt(`30fa4e88` suite=`scoped-latest-upload-summary`)
3. [x] merge local_dev → promote tip(CURRENT/FEATURE-MATRIX 保留 test 侧,走 docs apply 通道外)
4. [x] `agentctl validate` 聚焦 go test + arch-check
5. [x] 推进 local `test` + `rc-v1.1.0-beta.3`;apply pin;`env-service.sh test rebuild`
6. [x] health/ready 冒烟
## 验收标准
- [x] `test` 含 latest-upload summary / parse-wait 祖先
- [x] `:8081` `/health` `/ready` ok,schema_version≥64
- [x] 运行镜像 digest 与 receipt pin 一致
- [ ] 人工:上传 PDF →「总结我刚刚上传的文档」可见 `document_parsing` / 总结结果(用户实测)
@@ -0,0 +1,46 @@
---
title: "latest-upload summary → test 晋升报告"
date: 2026-09-23
task_id: promote-fix-latest-upload-test-2026-09-23
verdict: PASS
---
# latest-upload summary → test 晋升报告
## 结论
local `test@54955c9d` + tag `rc-v1.1.0-beta.3` 已含 latest-upload summary / parse-wait(祖先 `f6e14f97`,dev tip `30fa4e88`);test `:8081` schema_version=65;pinned 镜像 recreate 与 receipt digest 一致。人工聊天回归由用户执行。
## 版本矩阵
| 项 | 值 |
|---|---|
| local test | `54955c9d` |
| rc tag | `rc-v1.1.0-beta.3` → `54955c9d` |
| local_dev tip(merge 第二父) | `30fa4e88` |
| 功能祖先 | `f6e14f97` |
| pin commit | `30fa4e88` |
| app digest | `sha256:ba834cb1c08f44d615789940115fb7403efb476b7822b2aa3d5caeb85d35a579` |
| test health schema | 65 |
| ready | ok / kb_ready=true |
## 验证
| 项 | 命令/证据 | 结果 |
|---|---|---|
| candidate validate | `agentctl validate`:intent/coordinator/materialindex + server 聚焦用例 + arch-check | PASS (`7f456e51…`) |
| receipt gate | `promotion-receipt-check.sh --commit 30fa4e88 --require-digests` | PASS |
| images apply | `candidate-images-apply.sh test --commit 30fa4e88` | PASS |
| rebuild | `env-service.sh test rebuild`(pinned,未 docker build) | PASS |
| health | `GET :8081/health` schema_version=65 | PASS |
| ready | `GET :8081/ready` status=ok | PASS |
## 状态
| 字段 | 值 |
|---|---|
| review_state | not_required |
| integration_state | merged_local_test |
| deployment | test_ok |
| remote_sync | not_requested |
| cleanup | pending |
@@ -0,0 +1,21 @@
{
"commit": "30fa4e88b21ddc918a4f408a13ef4d2c2d5acd6e",
"source_tree": "f3558d25f4baa6e69d0cc50455663288069eb927",
"source_context": "git-archive",
"recorded_at": "2026-09-23T02:26:39Z",
"tags": {
"app": "shuimu-agent-app:candidate-30fa4e88b21d",
"events": "shuimu-agent-events:candidate-30fa4e88b21d",
"pi-agent": "shuimu-pi-agent:candidate-30fa4e88b21d"
},
"image_ids": {
"app": "sha256:ba834cb1c08f44d615789940115fb7403efb476b7822b2aa3d5caeb85d35a579",
"events": "sha256:ba834cb1c08f44d615789940115fb7403efb476b7822b2aa3d5caeb85d35a579",
"pi-agent": "sha256:4482f7e5bc7719fb3ca5d6f4dea45feb02b74336e43822deddebca95e10f7c9b"
},
"image_digests": {
"app": "shuimu-agent-app@sha256:ba834cb1c08f44d615789940115fb7403efb476b7822b2aa3d5caeb85d35a579",
"events": "shuimu-agent-app@sha256:ba834cb1c08f44d615789940115fb7403efb476b7822b2aa3d5caeb85d35a579",
"pi-agent": "shuimu-pi-agent@sha256:4482f7e5bc7719fb3ca5d6f4dea45feb02b74336e43822deddebca95e10f7c9b"
}
}
@@ -0,0 +1,18 @@
{
"verdict": "pass",
"commit": "30fa4e88b21ddc918a4f408a13ef4d2c2d5acd6e",
"recorded_at": "2026-09-23T02:26:53Z",
"runner_url": "http://127.0.0.1:18865",
"model_id": "MiniMax-M2.7-highspeed",
"protocol": "typed-result-v1",
"image_digests": {
"app": "shuimu-agent-app@sha256:ba834cb1c08f44d615789940115fb7403efb476b7822b2aa3d5caeb85d35a579",
"events": "shuimu-agent-app@sha256:ba834cb1c08f44d615789940115fb7403efb476b7822b2aa3d5caeb85d35a579",
"pi-agent": "shuimu-pi-agent@sha256:4482f7e5bc7719fb3ca5d6f4dea45feb02b74336e43822deddebca95e10f7c9b"
},
"suite": "scoped-latest-upload-summary",
"failure_class": "none",
"evidence_refs": [
".doc/test-reports/assets/promotion-receipts/30fa4e88b21ddc918a4f408a13ef4d2c2d5acd6e.images.json"
]
}