From 46ee9fe647fd91b3a543b4791094d6cd46fc0904 Mon Sep 17 00:00:00 2001 From: weichen Date: Wed, 16 Sep 2026 00:50:26 +0000 Subject: [PATCH] chore(ops): occupy the U4 integration slot Remove accidental promote-dev and pycache files from the U4 docs commit and hold the merge slot. Co-authored-by: Cursor --- .doc/ops/CURRENT.md | 4 +- .../2026-09-15-promote-dev-to-test.md | 46 ------------------ .doc/system-design/README.md | 1 + .../__pycache__/dual-tab-live.cpython-314.pyc | Bin 27082 -> 0 bytes 4 files changed, 3 insertions(+), 48 deletions(-) delete mode 100644 .doc/ops/short-term/2026-09-15-promote-dev-to-test.md delete mode 100644 .doc/test-reports/assets/2026-09-15-conversation-intent-dual-tab/__pycache__/dual-tab-live.cpython-314.pyc diff --git a/.doc/ops/CURRENT.md b/.doc/ops/CURRENT.md index aea394bf..f5b478d7 100644 --- a/.doc/ops/CURRENT.md +++ b/.doc/ops/CURRENT.md @@ -1,6 +1,6 @@ # 当前焦点 -**更新**: 2026-09-15 +**更新**: 2026-09-16 **production_ready**: no(CI 真实 PI 三工作流 E2E / 前端人工抽检仍开放。`CHAT-INTENT-STATE` 双标签 busy **PASS**。文档账本运行时 UI Round20 **PASS**,不把 fallback change report 写成完整 PI,也不把本轮写成全仓可发布) ## 焦点 @@ -88,7 +88,7 @@ | holder | phase | since | scope | queue | |--------|-------|-------|-------|-------| -| - | idle | - | - | - | +| Cursor | merging | 2026-09-16 | U4 outbox/projection merge | - | **phase**: `idle` | `merging` | `smoke` | `e2e` diff --git a/.doc/ops/short-term/2026-09-15-promote-dev-to-test.md b/.doc/ops/short-term/2026-09-15-promote-dev-to-test.md deleted file mode 100644 index 91ecf3eb..00000000 --- a/.doc/ops/short-term/2026-09-15-promote-dev-to-test.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: "晋升 dev → test 并部署测试环境" -status: done -created: 2026-09-15 -updated: 2026-09-15 -owner: Cursor -branch: feature/promote-dev-to-test-2026-09-15 -worktree: "-" -mutex: infra ---- - -# 晋升 dev → test 并部署测试环境 - -## 目标 - -把已完成的 Phase 2 代码从本地 `dev` 合入 `test`,重建并冒烟测试环境,供人工实测。不实施多意图 HITL。 - -## 范围 - -- `test` 分支 `--no-ff` 合入当前 `dev` -- `./scripts/env-service.sh test rebuild` -- test 库 notify/workflow_advance/projection 切 live(L4 去 hook 后 off 会停写);FAV 保持 off - -## 非目标 - -- 不实施多意图 HITL U1+ -- 不合入 `main`、不启用 FAV -- 不写项目 143 - -## 步骤 - -1. [x] 确认 Phase 2 已在本地 `dev` -2. [x] occupy 集成槽并合入 `test` -3. [x] rebuild 测试服务 -4. [x] health/ready + schema 冒烟 - -## 验收标准 - -- [x] `:8081` health/ready PASS -- [x] events `:8089` health PASS -- [x] FAV 仍 off - -## 相关链接 - -- Tag: `rc-v1.0.0-beta.1` -- Merge: `test@2e826e7` diff --git a/.doc/system-design/README.md b/.doc/system-design/README.md index 9aac2836..29369446 100644 --- a/.doc/system-design/README.md +++ b/.doc/system-design/README.md @@ -128,6 +128,7 @@ | 任务总览 | [../ops/short-term/2026-09-15-multi-intent-hitl.md](../ops/short-term/2026-09-15-multi-intent-hitl.md) | | U1 契约 | [../ops/short-term/2026-09-15-multi-intent-u1-contracts.md](../ops/short-term/2026-09-15-multi-intent-u1-contracts.md) | | U2 分段 | [../ops/short-term/2026-09-15-multi-intent-u2-segmenter.md](../ops/short-term/2026-09-15-multi-intent-u2-segmenter.md);[报告](../test-reports/2026-09-15-multi-intent-u2-segmenter-test-report.md) | +| U3 PG | [../ops/short-term/2026-09-15-multi-intent-u3-intentflow-pg.md](../ops/short-term/2026-09-15-multi-intent-u3-intentflow-pg.md);[报告](../test-reports/2026-09-15-multi-intent-u3-intentflow-pg-test-report.md) | | U4 投影 | [../ops/short-term/2026-09-16-multi-intent-u4-outbox-projection.md](../ops/short-term/2026-09-16-multi-intent-u4-outbox-projection.md);[报告](../test-reports/2026-09-16-multi-intent-u4-outbox-projection-test-report.md) | | 一句话总结 | intent 保持纯规则,intentflow 持久化计划并统一确认、授权、幂等、恢复和逐动作执行 | diff --git a/.doc/test-reports/assets/2026-09-15-conversation-intent-dual-tab/__pycache__/dual-tab-live.cpython-314.pyc b/.doc/test-reports/assets/2026-09-15-conversation-intent-dual-tab/__pycache__/dual-tab-live.cpython-314.pyc deleted file mode 100644 index 7310a84cc4ec6aa3c60f2387b286e0a0af9d7bf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27082 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�^pFRf!gEf59>^hV=vAfSTeQ#%(ryP#`K>HpQ4w}Uj*ailBiXDAI>d` z+Qjg7K-?+*U+Aq<3`V3C9@v68BJKsN{d z+Vnss3N~M_3RDIAL&bM9P4^NMV8>_@kRnb1J0_0+1u8>&lcd0*!t|bEN&!bB;hfP$ zX(r}1k$?M&2Ckn9Yx01CwFSZAu(lLzHeF$`Hmut`+4l3?!m#1w)uRDX(00>t!x3tI zZFJVRSkmxv!MyEV#}6F~9pP4rIo`L}+IOYEUvTy42pRkhS6VK&1j^n^DZb@cOs-w*ITqe|9Kr?LoZ$zl zZ>P>(d~a6=ye~p(@^KIfain1sg!%0!-&HRiwlj`1%ZJb2IeZpIdk&C{(G8f+yVV*t zlDAre=VonhIlkqXYyI}72ckTZPPkw0nAGf_$>&K@uU;zv%TlmZUkqPD;5_e!2Wg)#a*SZaB#_ z*%{Gi1d175{$$%P6-kqqR&2?E1@HU)~)|zMEVelHN_K2Qzl};BH1)$b2__TR6FTO8HBD zb|gE0>fjpv2zS|~-%E_wkH8Ry>wULJz*OL5Z7}0*dKtzca2J|mOhmL>XE&pug5x+u zHuqE-#BmystyzyEdDazzwM)`=kVLOPFdYB}0%pd?x0pqY7NP1D40;_SwY@WkddT}DaHFRiGlk|QeSopR#oBMoC>)2B)c}8 zUKek}#>D5Qpa%)g)QA$8_g=DEC!cJ6kcOnE+uyn*&0dkJUM!v|f4V9`;=kectswE0~AfZ`86q-fuec)nwzcizvVW0F@(q#O|k)y{4@~nnNsq}*qc&Owb z$uk-nbr~NO${cgq6K9utF~GP zz4&S;D=mg^oPQNNbe}=5g%H4&0DS#>75Kr&X*v%j>7q%|3*oUln=V66HsrMi?-V$9 zoi4fn)scgeb5W3of_xMpZ!rzKjbS;|*6+sGxEUYg3Tx}qF^T~ zg*@VGJz@ssb`)7k453Gu%doh(Xgm! zm@f(|S|_D27nnIdeH>k%&g4{t&W01}C)H~bhvBMoNK8yZH#=R?UDh%A)w7-9#Ql>A zYZ4EH6Zb))N;8u+oi&p;ofnZBB5-?8+cRy?9e(DpzY$#rdgbut!@>4&N@ZADbzde? ziznsazkq(8dFIS>W6zBFj|Y=(rr$`vnR6p2G&p-UT+kSnH%&?+N;SI52i-I3rviOp zW%;Bml9J94h6nOAQIqJ?YME%)r-?F={?o)nk>S%46$BX?QPQV5$)fF_R!Bu@pX&N$ eqS|{0G=x+;g3QY*~VrCIn=ss9Hl31nOV