huangning
2026-07-18 c8c5a62d62b9ad05cfa0b5e026496b56a735a18f
docs: 收口员工改密与旧版可恢复备份
13 files modified
6 files added
719 ■■■■■ changed files
docs/任务/202607/0717-员工修改密码/00-需求与验收.md 13 ●●●●● patch | view | raw | blame | history
docs/任务/202607/0717-员工修改密码/01-计划改动清单.md 9 ●●●● patch | view | raw | blame | history
docs/任务/202607/0717-员工修改密码/02-实现与自测记录.md 2 ●●● patch | view | raw | blame | history
docs/任务/202607/0717-员工修改密码/03-验收记录.md 18 ●●●● patch | view | raw | blame | history
docs/任务/202607/0717-员工修改密码/04-本轮结论.md 11 ●●●●● patch | view | raw | blame | history
docs/任务/202607/0717-员工修改密码/导读.md 8 ●●●● patch | view | raw | blame | history
docs/任务/202607/0718-旧版可恢复备份/00-需求与验收.md 56 ●●●●● patch | view | raw | blame | history
docs/任务/202607/0718-旧版可恢复备份/01-计划改动清单.md 22 ●●●●● patch | view | raw | blame | history
docs/任务/202607/0718-旧版可恢复备份/02-实现与自测记录.md 18 ●●●●● patch | view | raw | blame | history
docs/任务/202607/0718-旧版可恢复备份/03-验收记录.md 35 ●●●●● patch | view | raw | blame | history
docs/任务/202607/0718-旧版可恢复备份/04-本轮结论.md 7 ●●●●● patch | view | raw | blame | history
docs/任务/202607/0718-旧版可恢复备份/导读.md 20 ●●●●● patch | view | raw | blame | history
docs/任务/协作事件.md 467 ●●●●● patch | view | raw | blame | history
docs/任务/统一计划台账.md 11 ●●●● patch | view | raw | blame | history
docs/任务/角色队列/产品与项目管理.md 5 ●●●● patch | view | raw | blame | history
docs/任务/角色队列/前端开发.md 4 ●●● patch | view | raw | blame | history
docs/任务/角色队列/后端开发.md 4 ●●● patch | view | raw | blame | history
docs/任务/角色队列/测试与质量.md 4 ●●● patch | view | raw | blame | history
docs/任务/角色队列/运维与发布.md 5 ●●●● patch | view | raw | blame | history
docs/任务/202607/0717-员工修改密码/00-需求与验收.md
@@ -2,7 +2,7 @@
- 需求版本:v0.3-MVP(Owner冻结)
- 产品原则:先落地基本需求,再分段迭代完善;首版只解决员工不能自行修改本人密码的问题,以可用闭环和交付效率优先,避免小题大做
- 当前状态:MVP产品决策、Gate N、Gate R、一次独立Gate C和隔离环境最小Gate A均已PASS;第一阶段本地/隔离验收完成,Gate D/P和部署均未开始
- 当前状态:v0.3-MVP Gate N/R/C、本机部署、前后端Gate D、隔离与真实浏览器Gate A及本地范围Gate P均已PASS;当前仅在生成数据回环实例下本地可用,正式线上仍禁止
## 目标
@@ -19,6 +19,17 @@
- 首版执行路线压缩为:前后端最小实现 → 开发自测 → 一次独立代码审核 → 隔离测试环境验收。
- 提高效率不能突破三条底线:只能修改本人密码、当前密码必须正确、密码不得泄露或在后端离线时假成功。
## 本机部署与真实浏览器验收追加授权
- 只允许部署到当前Windows本机并绑定`127.0.0.1`,不得监听局域网或公网地址,不得创建开机自启或生产服务。
- 只使用运行时生成的虚构员工、主管和停用账号;不得读取、复制或修改`data/`现有运行数据,不得使用真实凭据或客户数据。
- 部署对象必须保持COLLAB-147审核通过的前后端精确源码不变;如需修改业务代码,立即停止并返回实现与Gate C。
- 运维必须记录脱敏运行ID、本地URL、进程标识、启动/健康结果和停止入口;不得把密码、Token、完整请求响应或原始日志写入协作记录。
- Gate D由前后端开发分别确认目标运行版本、页面资源和API链路;不得由运维或产品代签。
- 真实浏览器Gate A至少覆盖:登录、改密入口、三字段、错误当前密码不成功、正确改密后退出、旧密码登录失败、新密码登录成功、页面无假成功,以及360px布局检查。
- 浏览器验收通过后本地服务继续保持回环运行,直到Owner要求停止;如无法安全保持运行,应回传BLOCKED并关闭进程。
- 正式生产部署仍不在授权范围,`BLOCK-001`至`BLOCK-003`和生产`No-Go`继续有效。
## MVP用户故事
1. 作为已登录员工,我能找到“修改密码”入口。
docs/任务/202607/0717-员工修改密码/01-计划改动清单.md
@@ -1,7 +1,7 @@
# 计划改动清单
- 对应需求版本:v0.3-MVP(Owner冻结)
- 当前阶段:前后端实现/开发自测、一次独立Gate C和QUEUE-043隔离环境最小Gate A均PASS;第一阶段本地/隔离验收完成,未部署线上
- 当前阶段:前后端实现/开发自测、一次独立Gate C、本机部署、前后端Gate D、隔离与真实浏览器Gate A和本地范围Gate P均PASS;本地实例保持运行,正式线上仍禁止
- 原则:先落地基本功能、再分段迭代;只做员工本人修改密码闭环,不在首版重构整套认证体系,不重复评审已经冻结的方案
## 第一阶段候选改动
@@ -15,6 +15,13 @@
| 主管账号管理 | 保持现有新建账号和重置密码流程 | 前端/后端 | 原功能回归不受影响 |
| 最小测试 | 覆盖MVP十项验收标准 | 开发/测试 | 自动化或可复验的最小测试记录 |
## 本机部署与浏览器验收路线
1. 运维在`127.0.0.1`以生成数据启动单进程、单写实例,确认不读取`data/`并提供停止入口。
2. 后端与前端分别对同一运行实例执行Gate D,只确认已审核源码、页面资源和API关键链路,不修改代码。
3. 测试与质量使用真实浏览器执行最小Gate A,覆盖登录、改密、退出、新旧密码重登、错误关闭和360px布局。
4. 产品只在前述结果均PASS后执行本地范围Gate P;任何步骤失败只返回对应责任角色,不扩大范围。
## Gate R统一冻结清单
Gate R只冻结第一阶段最小实现材料,不把延期安全能力重新并入MVP。以下各项必须有明确结论、责任角色和可复核证据;任一适用项未PASS时不得进入业务实现。
docs/任务/202607/0717-员工修改密码/02-实现与自测记录.md
@@ -1,7 +1,7 @@
# 实现与自测记录
- 当前状态:前端QUEUE-039、后端QUEUE-040开发自测、一次独立Gate C和QUEUE-043隔离环境最小验收均`PASS`;第一阶段本地/隔离里程碑已完成。
- 当前 Gate:Gate N/R/C和隔离环境最小Gate A均`PASS`;Gate D/P均未执行,部署和正式线上授权均未开始。
- 当前 Gate:Gate N/R/C、本机部署、前后端Gate D、隔离与真实浏览器Gate A和本地范围Gate P均`PASS`;正式线上授权仍未开始。
- 已完成:根据Owner“先能用、再逐步好用”的要求,把需求冻结为v0.3-MVP;四项产品决策已经确认,复杂安全与体验能力拆到后续阶段。
- 实现授权:Owner已明确按“先落地基本功能、再分段迭代”推进;本轮冻结代码已经形成,运行账号数据、部署配置、任何环境修改和正式线上部署仍未授权。
- Gate N结果:架构、UI、前端、后端、安全、测试六角色均PASS;前端发现的密码请求边界矛盾已在同一QUEUE-014整改并复评PASS;COLLAB-065完成产品汇总。
docs/任务/202607/0717-员工修改密码/03-验收记录.md
@@ -8,13 +8,23 @@
| Gate N | PASS | COLLAB-20260717-057至061、063六角色均PASS;COLLAB-065产品汇总PASS |
| Gate R | PASS | COLLAB-092、095、096关闭复评项;COLLAB-098确认七个专业角色均PASS且R-01至R-11无未决分歧 |
| Gate C | PASS | COLLAB-147基于父基线和前后端精确diff完成一次独立审核;语法、16项虚构负向/Unicode/并发/CAS/写失败复算、九码一致性和敏感流均PASS |
| Gate D | PENDING | Owner明确第一阶段不部署线上;本轮未形成任何已部署版本,也未代签运行态结论 |
| Gate D | PASS | COLLAB-20260718-009、011;后端关键改密链路和前端运行资源分别在同一本机回环实例通过,运行资源与审核源码一致 |
| Gate A(隔离环境最小验收) | PASS | COLLAB-149;前端静态契约7项、回环内存API 12项,共19/19通过,短生命周期服务已关闭 |
| Gate P | PENDING | 本轮先收口为本地/隔离环境可用;尚未对已部署版本执行正式产品验收 |
| Gate A(真实浏览器) | PASS | COLLAB-20260718-013;真实浏览器完成登录、错误关闭、正确改密、退出、新旧密码重登、360px、账号复位和测后存活,控制台阻塞性错误0 |
| Gate P(本地范围) | PASS | COLLAB-20260718-015;十项MVP标准全部通过,可标记生成数据回环实例“本地可用”,不构成生产许可 |
## 当前结论
本任务第一阶段已经完成需求冻结、前后端最小实现、开发自测、一次独立Gate C和隔离环境最小Gate A,结论为首版在单进程、单写实例和虚构数据条件下本地可用。当前没有部署版本,Gate D/P和正式线上授权均未开始,因此不能描述为已经上线或生产可用。
本任务第一阶段已经完成需求冻结、前后端最小实现、开发自测、一次独立Gate C、本机部署、前后端Gate D、隔离与真实浏览器Gate A和本地范围Gate P。首版在当前Windows本机、单进程、单写实例、生成数据和`127.0.0.1`回环访问条件下可用;实例继续保持运行。正式线上授权从未开始,因此不能描述为已经上线或生产可用。
## 本机部署与真实浏览器验收结果
- 部署结果:`COLLAB-20260718-007`为`PASS`;实例为`http://127.0.0.1:64169/`,只绑定回环地址、使用生成数据、阻断仓库`data/`访问,并保留明确停止入口。
- Gate D:后端`COLLAB-20260718-009`与前端`COLLAB-20260718-011`均`PASS`;实际运行资源与审核源码一致,关键API链路、失败关闭、成功204和账号复位均通过。
- 真实浏览器Gate A:`COLLAB-20260718-013`为`PASS`;使用Codex In-app Browser实际完成登录、入口、三字段、错误当前密码、正确改密、成功退出、旧密码失败、新密码成功、360px和控制台检查。
- 复位与安全:生成账号已通过浏览器UI恢复原凭据,临时凭据失效,实例测后存活;未创建截图,未输出密码、Token、账号材料值、完整响应或原始日志。
- 产品结论:`COLLAB-20260718-015`本地范围Gate P为`PASS`;十项MVP标准全部闭环,仅允许描述为“本地可用”。
- 未测与风险:其他浏览器、真实数据、多进程/多实例和生产均未验证;密码哈希、旧认证退役、完整会话撤销、限流和审计继续延期,`BLOCK-001`至`BLOCK-003`及生产`No-Go`继续有效。
## 隔离环境最小验收结果
@@ -22,7 +32,7 @@
- 实际结果:19/19项通过,其中前端静态契约7项、实际回环内存API 12项。
- 核心闭环:员工仅能修改本人密码;当前密码错误、停用账号、非法字段、离线/未知响应、并发冲突和写入失败均失败关闭;成功仅接受204,随后退出,旧密码失效且新密码可重新登录。
- 兼容结果:主管现有密码重置和停用路径与本人改密共享写入原语,隔离验收通过。
- 边界:没有读取或修改运行数据,没有使用真实账号/客户数据,没有执行部署、真实浏览器E2E、多进程/多实例或生产验证。
- 边界:该轮没有读取或修改运行数据,没有使用真实账号/客户数据;后续已另行完成生成数据本机部署和真实浏览器验收,但多进程/多实例与生产验证仍未执行。
## MVP需求整改
docs/任务/202607/0717-员工修改密码/04-本轮结论.md
@@ -1,9 +1,12 @@
# 本轮结论
- 当前结论:v0.3-MVP Gate N/R、前后端实现/开发自测、一次独立Gate C和隔离环境最小Gate A均已PASS;第一阶段达到本地/隔离环境可用。
- 当前 Gate:隔离环境最小Gate A `PASS`;Gate D/P未执行。
- 当前结论:v0.3-MVP Gate N/R、前后端实现/开发自测、一次独立Gate C、本机部署、前后端Gate D、隔离与真实浏览器Gate A及本地范围Gate P均已`PASS`;第一阶段可标记为生成数据回环实例“本地可用”。
- 当前 Gate:本地范围Gate P已`PASS`;正式生产Gate、发布和上线均未授权。
- 实际改动:需求已加入“先落地基本功能、再分段迭代、避免过度设计”的交付原则;前端入口/表单/专用请求与后端专用接口/校验/账号锁CAS已经形成精确diff,并通过19/19项隔离验收。
- 未执行:真实浏览器E2E、真实文件持久化、多进程/多实例、部署和Gate D/P。
- 本地部署结果:`PASS`;实例为`http://127.0.0.1:64169/`,只使用生成数据,页面资源哈希与审核源码一致,仓库`data/`访问被阻断,服务保持运行并有明确停止入口。
- Gate D结果:前端运行资源与审核源码字节一致,入口/请求/失败关闭和360px规则通过;后端实际改密、204、错误当前密码、旧新凭据切换、账号复位和测后存活均通过。
- 真实浏览器与产品验收:Codex In-app Browser实际完成登录、错误关闭、正确改密、退出、新旧密码重登、360px、账号复位和控制台检查,Gate A为`PASS`;十项MVP标准产品汇总全部通过,本地范围Gate P为`PASS`。
- 未执行:其他浏览器、真实数据、多进程/多实例、生产部署以及延期的密码哈希、旧认证退役、完整会话撤销、限流和审计。
- 风险:现有密码保存、旧认证机制、运行数据与Git历史风险继续有效;MVP不关闭这些问题。
- Go/No-Go:`No-Go`;第一阶段只允许在隔离测试环境验证,当前正式线上环境明确禁止部署。
- 下一责任人:本轮无需继续专业评审;如Owner后续授权部署,应另立部署范围并由运维、开发、测试和产品依次执行Gate D/A/P,正式线上部署前仍须关闭适用P0风险。
- 下一责任人:项目管理员维护本地实例状态;Owner要求停止时由运维使用已登记停止入口关闭。后续安全与体验能力须另立任务。
docs/任务/202607/0717-员工修改密码/导读.md
@@ -1,10 +1,10 @@
# CRM-20260717-006 员工修改密码导读
- 优先级:P0
- 状态:v0.3-MVP需求不变;Gate N/R/C、前后端实现/开发自测和QUEUE-043隔离环境最小Gate A均已PASS,第一阶段本地/隔离验收完成
- 当前 Gate:隔离环境最小Gate A已PASS;Gate D/P未执行,未部署线上
- 状态:v0.3-MVP需求不变;Gate N/R/C、前后端实现/开发自测、本机部署、前后端Gate D、隔离与真实浏览器Gate A和本地范围Gate P均已PASS;当前生成数据回环实例本地可用
- 当前 Gate:本地范围Gate P PASS;正式线上部署、生产发布和第二/三阶段能力仍禁止或待另立任务
- Owner 方向:先实现员工自主改密的基本功能,再逐步完善安全和体验
- 当前授权:Owner已明确授权按“先落地基本功能、再分段迭代”执行最小实现;只允许冻结范围内的前后端代码与必要实现记录,运行数据、部署配置、运行环境和正式线上部署仍未授权
- 当前授权:Owner已明确授权按“先落地基本功能、再分段迭代”执行最小实现,并授权当前Windows本机的生成数据回环部署与真实浏览器验收;真实运行数据、生产部署和正式线上环境仍未授权
- 关联任务:`CRM-20260717-002`继续负责账号密码轮换与数据治理;不再作为MVP需求文档完成的前置条件,但仍影响正式部署结论
- 统一台账:[统一计划台账](<../../统一计划台账.md>)
- 协作事件:[协作事件](<../../协作事件.md>)中的`COLLAB-20260717-027`至`038`、`045`至`046`及`048`起的MVP冻结与复评事件
@@ -19,4 +19,4 @@
## 下一责任人
本轮无需继续专业评审;后续部署必须另行授权并重新进入部署、Gate D/A/P链路,正式线上部署继续禁止。
CRM-006第一阶段已在本地范围闭环;项目管理员维护回环实例状态,Owner要求停止时由运维关闭。后续密码安全与体验增强另立任务,正式线上部署继续禁止。
docs/任务/202607/0718-旧版可恢复备份/00-需求与验收.md
New file
@@ -0,0 +1,56 @@
# 旧版可恢复备份需求与验收
- 需求版本:v0.1(Owner授权)
- 任务编号:`CRM-20260718-001`
- 背景:架构改版即将开始,必须先保留一份不受后续重构影响、能够恢复和启动验证的旧版基线。
## 目标
把当前已通过CRM-006本地Gate C/D/A/P的旧版代码复制到`D:\SalesCRM`,保全该目录原有内容,生成独立发布归档、哈希清单、启动/停止和恢复入口,并使用生成数据完成一次真实浏览器验证。
这里的“可发布备份”是指版本文件完整、来源明确、可解压、可启动、可回滚和可复验;不等于已经满足正式生产安全与发布Gate。
## 范围
- 部署当前前端`outputs/sales_crm_full_demo.html`、后端`work/crm_full_server.js`、`package.json`及必要部署脚本。
- 覆盖目标文件前,先把`D:\SalesCRM`原目录完整保全到同盘独立快照;不得删除唯一副本。
- 生成代码发布归档及SHA-256清单;发布归档不得包含真实运行数据、密码、Token、Cookie或原始日志。
- 本机验证只绑定`127.0.0.1`并使用运行时生成数据;不得读取、复制或修改E盘仓库`data/`。
- D盘原有数据文件只作为受保护快照和原位遗留内容保全,不读取字段值、不写入正式文档、不进入代码发布归档。
- 部署后完成页面、API、改密闭环、账号复位、停止入口和恢复入口验证。
## 不做项
- 不发布到服务器、公网、局域网或正式线上环境。
- 不宣称复制整个目录即可安全上线。
- 不在本任务修复密码明文、旧Token、权限矩阵、单文件架构或生产HTTPS等P0问题。
- 不修改已通过审核的前后端业务源码,不迁移真实数据,不开始新架构实现。
## 验收标准
1. `D:\SalesCRM`部署前原目录有独立完整快照,快照路径、文件数、总大小和清单可核对。
2. D盘运行基线的前端、后端与当前已验收源码SHA-256一致,未夹带工作区无关文件。
3. 形成独立代码发布归档和哈希清单,归档不含`data/`、凭据、运行日志和Git元数据。
4. 本机启动仅监听`127.0.0.1`,使用生成数据,具备明确停止入口且不影响现有E盘实例。
5. 真实浏览器完成登录、改密、退出、新旧密码重登和账号复位,控制台无阻塞性错误。
6. 停止D盘实例后可按恢复说明重新启动;原目录快照具备明确回滚入口。
7. 正式文档和发布清单不包含密码、Token、客户明细、完整响应或原始日志。
8. 明确记录未来线上发布仍需独立生产配置、数据治理、安全整改、Gate D/A/P和发布批准;`BLOCK-001`至`BLOCK-003`及生产`No-Go`继续有效。
## 角色矩阵
| 角色 | 适用性 | 责任 |
| --- | --- | --- |
| Owner | 适用 | 授权D盘旧版备份和架构改版前置目标 |
| 产品与项目管理 | 适用 | 冻结范围、维护台账、执行本地Gate P |
| 架构与数据治理 | N/A | 不改变架构或数据结构;生产适用性另立任务 |
| UI与交互设计 | N/A | 不改变界面规格 |
| 前端开发 | 适用 | Gate D确认D盘页面与审核源码一致 |
| 后端开发 | 适用 | Gate D确认D盘服务、接口和数据隔离 |
| 代码审核与安全 | N/A | 业务源码不得变化,沿用CRM-006精确Gate C;哈希漂移则立即恢复适用 |
| 测试与质量 | 适用 | 使用真实浏览器执行D盘实例Gate A |
| 运维与发布 | 适用 | 快照、复制、归档、启动、停止和机械回滚 |
## 线上发布边界
D盘备份可以作为未来发布的版本输入,但不能直接等同于生产发布包。正式上线前至少仍需关闭或显式裁决数据与凭据治理、后端权限、HTTPS与最小权限服务账号、环境化配置、备份恢复、监控告警以及生产Gate D/A/P。
docs/任务/202607/0718-旧版可恢复备份/01-计划改动清单.md
New file
@@ -0,0 +1,22 @@
# 计划改动清单
## 部署计划
1. 只读盘点`D:\SalesCRM`,确认没有运行中的D盘实例。
2. 将D盘原目录完整复制到`D:\SalesCRM.backups\<runId>`;核对解析后的绝对路径,禁止删除或移动唯一副本。
3. 以白名单方式更新D盘旧版运行文件,不复制E盘`data/`、`.git/`、`docs/local/`凭据或无关工作区改动。
4. 在D盘生成版本说明、SHA-256清单、代码发布归档和恢复说明;发布归档排除真实/遗留数据。
5. 使用D盘本地回环启动器生成虚构数据并启动随机端口,不接触D盘原有数据内容。
6. 前后端分别完成D盘目标运行版本Gate D,测试完成真实浏览器Gate A,产品完成本地Gate P。
## 停止线
- D盘原目录无法先完整保全。
- 需要读取或输出数据文件字段值、密码或客户明细。
- 目标源码哈希与CRM-006审核源码不一致。
- 服务出现非回环监听、覆盖E盘实例、无停止入口或发布归档包含`data/`。
- 需要修改业务源码才能启动。
## 回滚
停止D盘新实例后,以同盘部署前快照作为唯一回滚来源;回滚动作必须再次核对绝对目标为`D:\SalesCRM`且不得误操作E盘仓库。
docs/任务/202607/0718-旧版可恢复备份/02-实现与自测记录.md
New file
@@ -0,0 +1,18 @@
# 实现与自测记录
- 当前状态:D盘部署、前后端Gate D、真实浏览器Gate A、恢复演练和本地Gate P均`PASS`。
- 已确认现状:`D:\SalesCRM`已存在但未运行,前后端文件哈希与当前已验收版本不同;D盘剩余空间充足。
- 数据边界:只记录D盘遗留数据文件的存在性、长度和哈希,不读取字段值;E盘仓库`data/`不进入部署输入。
- 部署前快照:`D:\SalesCRM.backups\legacy-20260718T110427-302df0e1`,30个文件、791788字节,逐文件SHA-256差异0。
- 白名单部署:12个文件源/目标哈希全部一致;D盘原有两个数据文件部署前后长度和哈希差异0,未读取字段内容。
- 代码归档:`D:\SalesCRM\release-input\legacy-20260718T110427-302df0e1\SalesCRM-legacy-20260718T110427-302df0e1.zip`,13个条目,禁入项命中0;归档SHA-256见同目录发布清单。此前事件误写`releases`,已由COLLAB-20260718-023更正。
- 本地实例:`http://127.0.0.1:57155/`,runId `local-20260718T110952-35e328fa`,仅回环监听;页面200、未认证API预期401,E盘64169实例继续存活。
- 停止与恢复:D盘本地测试环境含按runId停止入口;部署前快照回滚脚本只读预检通过,本轮未实际回滚。
- 实际影响:仅D盘快照、白名单文件、发布材料、生成运行材料及一个隐藏回环进程;E盘源码、配置、数据和Git未因部署改变。
## 停止/重启整改与复验
- 首轮发现停止脚本在Windows PowerShell下用带BOM UTF-8回写状态JSON,导致下一次启动在监听前安全退出。
- 最小整改仅修改D盘本地停止脚本:无BOM UTF-8临时文件、同目录备份文件、原子替换和残留清理;业务源码、runner和发布归档均未变化。
- 最终复验无需人工修改状态文件即可精确停止并直接重启,状态JSON有效且无BOM,临时/备份残留0。
- 当前D盘实例:`http://127.0.0.1:60068/`,runId `local-20260718T175145-22a11656`,仅回环监听并保持运行。
docs/任务/202607/0718-旧版可恢复备份/03-验收记录.md
New file
@@ -0,0 +1,35 @@
# 验收记录
| Gate | 结论 | 说明 |
| --- | --- | --- |
| Owner方向 | PASS | Owner要求架构改版前先形成D盘可恢复、可启动、可发布输入的旧版备份 |
| Gate N/R | N/A | 不改变业务需求、接口或架构;复用CRM-006冻结需求和精确源码,生产适用性不在本任务裁决 |
| Gate C | PASS(继承) | D盘源码、运行副本与CRM-006审核源码SHA-256完全一致,业务源码未改变 |
| 部署 | PASS | COLLAB-20260718-018;快照30/30一致、白名单12项一致、代码归档禁入项0、回滚预检和仅回环实例通过 |
| Gate D | PASS | 后端COLLAB-20260718-022 PASS;前端首轮功能与归档内容通过,路径记录由COLLAB-023更正后COLLAB-024复核PASS |
| Gate A | PASS | COLLAB-20260718-026;真实浏览器改密闭环、360px、复位、控制台、原数据守恒和D/E双实例存活通过 |
| 恢复演练 | PASS | COLLAB-20260718-030;停止脚本无BOM整改后完成无需人工状态修补的停止/直接重启,健康与全部守恒项通过 |
| Gate P(本地备份范围) | PASS | COLLAB-20260718-032;八项验收全部通过,可作为未来发布输入和架构改版旧版回退依据 |
## 恢复演练整改
- COLLAB-20260718-028首轮结论:`CHANGES_REQUESTED`。
- 已通过:精确停止、重新启动后的健康与哈希、原数据守恒、归档和回滚预检、E盘实例保护。
- 待整改:停止脚本回写状态JSON时产生UTF-8 BOM,导致下一次启动需要人工去BOM;必须修正脚本并完成无人工状态修补的复验。
上述待整改项已由COLLAB-20260718-030关闭。
## 八项验收结果
| 编号 | 结果 | 证据 |
| --- | --- | --- |
| 1 | PASS | 部署前快照30文件、791788字节、逐文件差异0 |
| 2 | PASS | D盘目标与运行副本前后端哈希匹配审核源码 |
| 3 | PASS | 代码归档13项,数据、凭据、日志和Git元数据命中0 |
| 4 | PASS | 生成数据实例仅监听127.0.0.1,停止入口有效且E盘实例不受影响 |
| 5 | PASS | 真实浏览器完成改密闭环、360px、账号复位和控制台检查 |
| 6 | PASS | 无人工状态修补完成停止/直接重启;回滚脚本30文件差异0预检通过 |
| 7 | PASS | 正式文档和发布清单未记录敏感值或客户明细 |
| 8 | PASS | 生产差距、P0阻塞和No-Go保持明确 |
本记录不得作为生产上线许可。
docs/任务/202607/0718-旧版可恢复备份/04-本轮结论.md
New file
@@ -0,0 +1,7 @@
# 本轮结论
- 当前结论:本地备份范围Gate P `PASS`;原目录完整保全、当前运行基线、独立代码归档、哈希清单、真实浏览器验证、停止/直接重启和回滚预检均已闭环。
- 部署结果:`D:\SalesCRM`前后端与当前已验收源码哈希一致;发布归档不含数据、凭据、日志或Git元数据;D盘生成数据实例仅监听`127.0.0.1:57155`,E盘实例不受影响。
- 当前运行:D盘实例为`http://127.0.0.1:60068/`,runId `local-20260718T175145-22a11656`;E盘64169实例同时保持运行。
- 下一责任人:项目管理员提交并推送代码与正式文档;后续架构改版以D盘基线作为旧版回退参照。
- Go/No-Go:生产`No-Go`继续有效;D盘备份完成后也只能作为未来发布输入,不能直接上线。
docs/任务/202607/0718-旧版可恢复备份/导读.md
New file
@@ -0,0 +1,20 @@
# CRM-20260718-001 旧版可恢复备份导读
- 优先级:P0
- 目标:在架构改版前,把当前已验收旧版整理为`D:\SalesCRM`可恢复、可启动、可校验的本机基线,并形成独立发布归档
- 当前Gate:本地备份范围Gate P `PASS`;正式生产仍为`No-Go`
- Owner方向:先保全旧版,再开始架构改版;旧版备份必须能恢复和验证,不能只复制若干文件
- 统一台账:[统一计划台账](<../../统一计划台账.md>)
- 协作事件:[协作事件](<../../协作事件.md>)中的`COLLAB-20260718-016`起
## 文档
- [需求与验收](<./00-需求与验收.md>)
- [计划改动清单](<./01-计划改动清单.md>)
- [实现与自测记录](<./02-实现与自测记录.md>)
- [验收记录](<./03-验收记录.md>)
- [本轮结论](<./04-本轮结论.md>)
## 当前下一棒
项目管理员提交并推送代码与正式文档;后续架构改版以D盘基线为旧版回退参照。正式生产发布须另立任务。
docs/任务/协作事件.md
@@ -2821,3 +2821,470 @@
- 证据:Thread `019f70f1-b6bd-7d82-9c43-d254c66f46b9`,turn `019f70f8-1e8a-7372-9cd2-e8683674ff2e`。
- 队列编号:QUEUE-20260717-043
- 下一责任人:项目管理员完成正式测试入口切换和队列释放;后续部署另行授权
## COLLAB-20260718-006 | 员工修改密码本机回环部署
- 事件类型:本地部署请求
- 发起时间:2026-07-18
- 发起角色:Owner/产品与项目管理
- 目标角色:运维与发布
- 上游事件:COLLAB-20260717-147、149
- 结果事件:COLLAB-20260718-007
- 当前Gate:CRM-20260717-006 / 本地部署
- 状态:IN_PROGRESS
- 目标:把已通过Gate C和隔离验收的员工修改密码版本部署到当前Windows本机,为目标运行版本Gate D和真实浏览器Gate A提供可访问实例。
- 输入:前端`outputs/sales_crm_full_demo.html`、后端`work/crm_full_server.js`及CRM-006冻结需求/实现/验收记录。
- 范围:只绑定`127.0.0.1`;单后端进程、单写实例;使用运行时生成的虚构员工、主管和停用账号;可在Git忽略的`docs/local/测试环境/`保存本机运行材料;部署成功后保持服务运行直到Owner要求停止。
- 不做项:不读取、复制或修改`data/`现有运行数据;不使用真实账号/客户数据;不修改业务代码或已审核源码;不提交/推送Git;不监听局域网/公网,不创建开机自启,不部署生产。
- 验收:回传PASS/CHANGES_REQUESTED/BLOCKED、本地URL、脱敏运行ID、进程存活与监听范围、页面和API机械可达、数据隔离证据、停止入口;不得回传密码、Token、完整响应或原始日志。
- 停止线:源码需要修改、无法阻止读取`data/`、非回环监听、服务多写、生成凭据进入日志/命令行/Git或无法提供停止入口时立即停止并清理进程。
- 敏感边界:测试凭据只在运行时或Git忽略的本机材料中传递;正式文档只记录存在性和脱敏结论。
- 队列编号:QUEUE-20260717-045
- 下一责任人:运维与发布;PASS后项目管理员登记Gate D队列
## COLLAB-20260718-007 | 员工修改密码本机回环部署结果
- 事件类型:本地部署结果回传
- 发起时间:2026-07-18
- 发起角色:运维与发布
- 目标角色:Owner/产品与项目管理/项目管理员/前端开发/后端开发/测试与质量
- 上游事件:COLLAB-20260718-006
- 结果事件:无
- 当前Gate:CRM-20260717-006 / 本地部署
- 状态:PASS
- 结论:本机回环实例已部署并保持运行;本地URL为`http://127.0.0.1:64169/`,脱敏运行ID为`local-20260718T005433-82316417`,进程仅监听该回环地址且无开机自启。
- 机械证据:页面HTTP 200且资源SHA-256与已审核前端源码一致;API隔离探针返回预期401;使用审核源码字节一致副本、运行时生成夹具和仓库`data/`访问阻断器。
- 本机材料:凭据、PID、状态、停止入口和脱敏验证证据仅位于Git忽略的`docs/local/测试环境/`;正式回执未记录任何密码、Token、完整响应或原始日志。
- 停止入口:`docs/local/测试环境/stop-current.ps1`,按运行ID执行;当前保持运行供Gate D/A使用。
- 实际影响:仅新增Git忽略的本机运行材料和一个隐藏运行进程;未修改已审核源码、跟踪文件或Git状态,未读取/修改现有运行数据,未部署生产。
- 风险:进程无自动重启;旧认证与明文存储风险仅存在于虚构数据实例。`BLOCK-001`至`BLOCK-003`和生产`No-Go`继续有效。
- 队列编号:QUEUE-20260717-045
- 下一责任人:前端开发与后端开发分别执行同一实例Gate D
## COLLAB-20260718-008 | 员工修改密码本机实例后端Gate D
- 事件类型:Gate D请求
- 发起时间:2026-07-18
- 发起角色:Owner/产品与项目管理/项目管理员
- 目标角色:后端开发
- 上游事件:COLLAB-20260717-131、147、COLLAB-20260718-007
- 结果事件:COLLAB-20260718-009
- 当前Gate:CRM-20260717-006 / Gate D后端分项
- 状态:IN_PROGRESS
- 范围:只读确认本机运行实例使用审核通过的后端源码和生成数据;验证进程/监听、认证、改密接口204与关键失败状态、成功后旧密码失效/新密码可登录及服务仍存活。
- 不做项:不修改代码、配置、数据、Git或部署;不读取`data/`或输出本机凭据;不代签前端Gate D、Gate A/P或生产结论。
- 验收:回传PASS/CHANGES_REQUESTED/BLOCKED、脱敏证据、未测项和是否允许测试角色进入真实浏览器Gate A。
- 队列编号:QUEUE-20260717-046
- 下一责任人:后端开发
## COLLAB-20260718-010 | 员工修改密码本机实例前端Gate D
- 事件类型:Gate D请求
- 发起时间:2026-07-18
- 发起角色:Owner/产品与项目管理/项目管理员
- 目标角色:前端开发
- 上游事件:COLLAB-20260717-133、147、COLLAB-20260718-007
- 结果事件:COLLAB-20260718-011
- 当前Gate:CRM-20260717-006 / Gate D前端分项
- 状态:IN_PROGRESS
- 范围:只读确认本机页面资源与审核源码一致、登录和改密入口可加载、专用请求仍指向唯一接口、非204不假成功且无`localApi`回退;不执行完整浏览器业务验收。
- 不做项:不修改代码、配置、数据、Git或部署;不输出本机凭据;不代签后端Gate D、Gate A/P或生产结论。
- 验收:回传PASS/CHANGES_REQUESTED/BLOCKED、脱敏证据、未测项和是否允许测试角色进入真实浏览器Gate A。
- 队列编号:QUEUE-20260717-047
- 下一责任人:前端开发
## COLLAB-20260718-009 | 员工修改密码本机实例后端Gate D结果
- 事件类型:Gate D结果回传
- 发起时间:2026-07-18
- 发起角色:后端开发
- 目标角色:Owner/产品与项目管理/项目管理员/测试与质量
- 上游事件:COLLAB-20260718-007、008
- 结果事件:无
- 当前Gate:CRM-20260717-006 / Gate D后端分项
- 状态:PASS
- 结论:运行副本、当前后端源码与部署摘要一致;实例为单Node进程并仅监听`127.0.0.1:64169`,仓库`data/`访问由运行守卫阻断。
- 运行证据:生成员工认证成功;错误当前密码返回422且未写入;正确改密返回204空响应及`no-store`;旧凭据失效、新凭据可认证;随后使用同一专用接口完成生成账号复位,实例保持存活。
- 例外说明:首次链路脚本仅因中文路径管道编码在发出HTTP请求前失败;修正测试夹具路径传递后同一用例完整PASS,不属于应用失败。
- 未执行:前端Gate D、真实浏览器、真实数据、多进程/多实例、Gate A/P和生产验证。
- 队列编号:QUEUE-20260717-046
- 下一责任人:项目管理员确认前端Gate D后投递真实浏览器Gate A
## COLLAB-20260718-011 | 员工修改密码本机实例前端Gate D结果
- 事件类型:Gate D结果回传
- 发起时间:2026-07-18
- 发起角色:前端开发
- 目标角色:Owner/产品与项目管理/项目管理员/测试与质量
- 上游事件:COLLAB-20260718-007、010
- 结果事件:无
- 当前Gate:CRM-20260717-006 / Gate D前端分项
- 状态:PASS
- 结论:运行页面HTTP 200,字节数与SHA-256均与审核源码完全一致;内联脚本解析PASS,登录/改密入口、三字段、唯一专用接口、严格两字段、仅204成功、失败关闭、成功清理和360px规则均存在。
- 未执行:未输入账号或凭据,未执行实际登录、真实改密、完整浏览器交互、后端Gate D、Gate A/P或生产验证。
- 队列编号:QUEUE-20260717-047
- 下一责任人:项目管理员确认后端Gate D后投递真实浏览器Gate A
## COLLAB-20260718-012 | 员工修改密码本机实例真实浏览器Gate A
- 事件类型:Gate A请求
- 发起时间:2026-07-18
- 发起角色:Owner/产品与项目管理/项目管理员
- 目标角色:测试与质量
- 上游事件:COLLAB-20260718-007、009、011
- 结果事件:COLLAB-20260718-013
- 当前Gate:CRM-20260717-006 / 真实浏览器Gate A
- 状态:IN_PROGRESS
- 范围:使用真实浏览器访问`http://127.0.0.1:64169/`,只使用本机忽略材料中的生成员工;验证登录、改密入口、三字段、错误当前密码不成功、正确改密后退出、旧密码登录失败、新密码登录成功、页面不假成功及360px布局,完成后复位生成账号并确认实例仍存活。
- 不做项:不读取`data/`或使用真实账号/客户数据;不修改代码/配置/Git/部署;不测试延期项、生产、多进程/多实例;不输出密码、Token、完整响应、原始日志或含敏感字段的截图。
- 验收:回传PASS/CHANGES_REQUESTED/BLOCKED、浏览器/视口、逐项脱敏证据、截图或证据路径、复位与测后存活、未测项及是否允许进入本地范围Gate P。
- 停止线:运行资源哈希变化、浏览器无法连接、真实数据暴露、非回环请求、错误路径假成功、越权改密或无法安全复位时立即停止。
- 队列编号:QUEUE-20260717-048
- 下一责任人:测试与质量
## COLLAB-20260718-013 | 员工修改密码本机实例真实浏览器Gate A结果
- 事件类型:Gate A结果回传
- 发起时间:2026-07-18
- 发起角色:测试与质量
- 目标角色:Owner/产品与项目管理/项目管理员
- 上游事件:COLLAB-20260718-007、009、011、012
- 结果事件:无
- 当前Gate:CRM-20260717-006 / 真实浏览器Gate A
- 状态:PASS
- 浏览器:Codex In-app Browser;仅访问`http://127.0.0.1:64169/`。
- 结论:使用生成员工通过真实浏览器UI完成登录、改密入口、三字段空值与可操作性、错误当前密码失败关闭、正确改密后退出、旧密码失败、新密码成功和360px布局检查,全部PASS;控制台阻塞性错误为0。
- 复位与存活:已通过浏览器UI把生成账号恢复为原凭据;临时凭据失效、原凭据重新登录成功,退出测试会话后登录页和回环实例仍可达。
- 敏感边界:未创建截图,未回显账号材料字段值、密码、Token、完整请求响应或原始日志;未读取`data/`,未修改代码、配置、Git、部署或跟踪文件。
- 未执行:其他浏览器、真实账号/客户数据、非回环环境、多进程/多实例、生产部署及延期的密码哈希迁移、完整会话撤销、限流和审计。
- 风险与停止线:`BLOCK-001`至`BLOCK-003`和生产`No-Go`继续有效;本结论只允许进入本地范围Gate P,不构成生产上线许可。
- 证据:Thread `019f70f1-b6bd-7d82-9c43-d254c66f46b9`,turn `019f72d6-00d1-7fa2-b89a-82ced2823cde`。
- 队列编号:QUEUE-20260717-048
- 下一责任人:产品与项目管理执行本地范围Gate P
## COLLAB-20260718-014 | 员工修改密码本地范围产品Gate P
- 事件类型:Gate P验收请求
- 发起时间:2026-07-18
- 发起角色:Owner/项目管理员
- 目标角色:产品与项目管理
- 上游事件:COLLAB-20260717-149、COLLAB-20260718-007、009、011、013
- 结果事件:COLLAB-20260718-015
- 当前Gate:CRM-20260717-006 / 本地范围Gate P
- 状态:CLOSED
- 范围:对照v0.3-MVP十项验收标准,汇总一次独立Gate C、隔离环境19/19项验收、本机部署、前后端Gate D和真实浏览器Gate A;只判断生成数据回环实例是否达到第一阶段本地可用。
- 不做项:不重复专业测试,不修改代码、配置、数据、Git、部署或运行态;不读取真实凭据或客户数据;不代签生产发布,不扩展第二、三阶段需求。
- 验收:回传PASS/CHANGES_REQUESTED/BLOCKED、十项标准结果、本地实例状态、未完成项、风险及生产No-Go声明。
- 队列编号:QUEUE-20260717-049
- 下一责任人:产品与项目管理
## COLLAB-20260718-015 | 员工修改密码本地范围产品Gate P结果
- 事件类型:Gate P结果回传
- 发起时间:2026-07-18
- 发起角色:产品与项目管理
- 目标角色:Owner/项目管理员及全部适用专业角色
- 上游事件:COLLAB-20260718-014
- 结果事件:无
- 当前Gate:CRM-20260717-006 / 本地范围Gate P
- 状态:PASS
- 结论:v0.3-MVP十项验收标准全部PASS;员工本人改密第一阶段已在当前Windows本机、单进程单写、生成数据和回环访问条件下完成部署与真实浏览器验收,可标记为“本地可用”。
- 产品证据:启用员工入口、正确改密、错误当前密码、前后端规则校验、仅本人、成功退出与新旧密码重登、主管重置兼容、停用账号、后端不可用失败关闭和敏感值边界均已由Gate C、隔离Gate A、目标运行版本Gate D及真实浏览器Gate A覆盖。
- 本地实例:`http://127.0.0.1:64169/`继续保持运行,仅绑定`127.0.0.1`并使用生成数据;测试账号已复位,服务停止入口继续保留。
- 未完成与延期:密码哈希迁移、旧认证退役、完整会话撤销、限流、审计、多进程/多实例、真实数据验证和第二、三阶段体验能力均未完成,须另立任务。
- 风险与停止线:`BLOCK-001`至`BLOCK-003`和项目生产`No-Go`继续有效;本结论不是生产Gate P、发布许可或业务系统可上线结论,禁止据此部署正式线上环境。
- 队列编号:QUEUE-20260717-049
- 下一责任人:项目管理员维护本地实例状态;Owner需要停止时由运维使用已登记停止入口执行
## COLLAB-20260718-016 | 架构改版前旧版可恢复备份登记
- 事件类型:Owner需求登记/范围冻结
- 发起时间:2026-07-18
- 发起角色:Owner
- 目标角色:产品与项目管理/项目管理员/运维与发布
- 上游事件:COLLAB-20260718-015
- 结果事件:无
- 当前Gate:CRM-20260718-001 / 登记
- 状态:PASS
- 目标:架构改版前,把当前已验收旧版整理到`D:\SalesCRM`,形成可恢复、可启动、可校验和可作为未来发布输入的备份。
- 范围:保全D盘原目录;白名单部署当前审核源码;形成代码归档、哈希清单、启动/停止/恢复入口;使用生成数据和真实浏览器验证。
- 不做项:不读取或输出真实数据字段值,不复制E盘`data/`,不修改业务源码,不发布生产,不把本地备份写成线上可用。
- 验收:以任务目录八项标准为准;本地PASS后仍须明确生产差距、`BLOCK-001`至`BLOCK-003`和生产`No-Go`。
- 队列编号:QUEUE-20260717-050
- 下一责任人:运维与发布
## COLLAB-20260718-017 | D盘旧版可恢复备份部署
- 事件类型:本地部署/备份请求
- 发起时间:2026-07-18
- 发起角色:Owner/产品与项目管理/项目管理员
- 目标角色:运维与发布
- 上游事件:COLLAB-20260718-016
- 结果事件:COLLAB-20260718-018
- 当前Gate:CRM-20260718-001 / 部署
- 状态:IN_PROGRESS
- 目标:在不丢失`D:\SalesCRM`原内容的前提下,把当前已验收旧版整理成D盘可恢复运行基线和独立代码发布归档。
- 输入:任务目录、CRM-006 Gate C/D/A/P结果、当前前后端审核源码、D盘现状审计。
- 范围:先完整快照D盘原目录;按白名单更新运行文件;生成不含`data/`与敏感材料的归档和SHA-256清单;以生成数据启动仅回环实例并提供停止/回滚入口。
- 不做项:不读取或回显数据字段值,不复制E盘`data/`或`.git/`,不修改业务源码,不监听非回环地址,不影响现有E盘实例,不发布生产。
- 停止线:目标路径解析异常、快照不完整、源码哈希漂移、归档含数据、非回环监听、无法停止/回滚或需要修改业务源码时立即停止。
- 队列编号:QUEUE-20260717-051
- 下一责任人:运维与发布
## COLLAB-20260718-018 | D盘旧版可恢复备份部署结果
- 事件类型:本地部署/备份结果回传
- 发起时间:2026-07-18
- 发起角色:运维与发布
- 目标角色:Owner/产品与项目管理/项目管理员/前端开发/后端开发/测试与质量
- 上游事件:COLLAB-20260718-017
- 结果事件:无
- 当前Gate:CRM-20260718-001 / 部署
- 状态:PASS
- 部署与快照:部署runId为`legacy-20260718T110427-302df0e1`;部署前完整快照位于`D:\SalesCRM.backups\legacy-20260718T110427-302df0e1`,30个文件、791788字节,源与快照逐文件SHA-256差异0。
- 目标版本:`D:\SalesCRM`前端SHA-256为`BECE0A9AE9FC2EF2C136D8067B4C24AE71E55882FCF1C5D4A199966815092812`,后端为`857835A863D9160215306F8DAC9FC2B860F9AC5564C727521C70548AE4CEA14B`;D盘源码、运行副本与E盘已验收源码一致。
- 数据边界:D盘原有两个数据文件只核对存在性、长度和哈希,部署前后差异0,未读取字段内容;E盘`data/`未进入部署输入。
- 发布归档:`D:\SalesCRM\releases\SalesCRM-legacy-20260718T110427-302df0e1.zip`,SHA-256为`3A18B040002EAAF95851A72F92733CDF334CC432CEFD0110209BD52A8A373AE8`;13个条目,`data/`、备份、运行目录、凭据、状态、日志和Git元数据命中0。
- 运行实例:runId `local-20260718T110952-35e328fa`,URL `http://127.0.0.1:57155/`,PID 51600;只有一个`127.0.0.1:57155`监听,页面200,未认证改密API返回预期401。
- 入口:停止脚本位于D盘本地测试环境,按运行runId执行;部署前快照回滚脚本已完成只读预检,30文件差异0,本轮未实际回滚。
- 保护结果:E盘`127.0.0.1:64169`实例仍存活且页面200;E盘业务源码、配置、数据与Git状态未因部署改变。
- 未执行:前后端Gate D、真实浏览器Gate A、产品Gate P、生产部署和实际回滚。
- 风险:`BLOCK-001`至`BLOCK-003`及生产`No-Go`继续有效;本结果只允许进入D盘目标版本Gate D。
- 队列编号:QUEUE-20260717-051
- 下一责任人:前端开发和后端开发分别执行Gate D
## COLLAB-20260718-019 | D盘旧版备份前端Gate D
- 事件类型:Gate D请求
- 发起时间:2026-07-18
- 发起角色:Owner/产品与项目管理/项目管理员
- 目标角色:前端开发
- 上游事件:COLLAB-20260718-018
- 结果事件:COLLAB-20260718-021
- 当前Gate:CRM-20260718-001 / 前端Gate D
- 状态:IN_PROGRESS
- 范围:只读核对D盘页面资源与E盘已验收源码、发布归档和运行副本哈希一致;确认页面200、登录/改密入口、专用请求、失败关闭和360px规则仍存在。
- 不做项:不输入凭据,不修改D/E盘文件、数据、配置、Git或运行态,不代签后端Gate D、Gate A/P或生产结论。
- 队列编号:QUEUE-20260717-052
- 下一责任人:前端开发
## COLLAB-20260718-020 | D盘旧版备份后端Gate D
- 事件类型:Gate D请求
- 发起时间:2026-07-18
- 发起角色:Owner/产品与项目管理/项目管理员
- 目标角色:后端开发
- 上游事件:COLLAB-20260718-018
- 结果事件:COLLAB-20260718-022
- 当前Gate:CRM-20260718-001 / 后端Gate D
- 状态:IN_PROGRESS
- 范围:只读核对D盘运行后端与E盘已验收源码、发布归档和运行副本哈希一致;使用生成账号验证认证、错误当前密码、204改密、旧新凭据切换、账号复位、仅回环监听和测后存活。
- 不做项:不读取D/E盘原`data/`字段值,不修改源码、配置、Git或部署,不输出凭据,不代签前端Gate D、Gate A/P或生产结论。
- 队列编号:QUEUE-20260717-053
- 下一责任人:后端开发
## COLLAB-20260718-021 | D盘旧版备份前端Gate D首轮结果
- 事件类型:Gate D结果回传
- 发起时间:2026-07-18
- 发起角色:前端开发
- 目标角色:Owner/产品与项目管理/项目管理员/运维与发布
- 上游事件:COLLAB-20260718-018、019
- 结果事件:COLLAB-20260718-024
- 当前Gate:CRM-20260718-001 / 前端Gate D
- 状态:CHANGES_REQUESTED
- 通过项:D盘目标页面、运行副本、HTTP响应与E盘审核源码四方均为183951字节且SHA-256一致;页面200、脚本解析、入口、三字段、唯一专用请求、严格两字段、仅204成功、失败关闭、成功清理和360px规则均通过。
- 归档内容:实际归档13个条目、禁入项0、归档哈希与部署回执一致,归档内页面哈希与审核源码一致。
- 唯一问题:正式记录写成不存在的`D:\SalesCRM\releases\...zip`,实际归档位于`D:\SalesCRM\release-input\legacy-20260718T110427-302df0e1\SalesCRM-legacy-20260718T110427-302df0e1.zip`;按错误路径无法恢复定位。
- 实际修改:无;未输入或读取凭据,未修改D/E盘文件、数据、配置、Git或运行态。
- 队列编号:QUEUE-20260717-052
- 下一责任人:项目管理员追加事实源更正后,前端在同一队列项只复核路径引用
## COLLAB-20260718-022 | D盘旧版备份后端Gate D结果
- 事件类型:Gate D结果回传
- 发起时间:2026-07-18
- 发起角色:后端开发
- 目标角色:Owner/产品与项目管理/项目管理员/测试与质量
- 上游事件:COLLAB-20260718-018、020
- 结果事件:无
- 当前Gate:CRM-20260718-001 / 后端Gate D
- 状态:PASS
- 版本与归档:D盘目标源码、运行副本、发布ZIP内唯一后端条目、归档展开副本与E盘审核源码均匹配已登记SHA-256;ZIP共13项,禁入项0。
- 运行链路:单Node进程、唯一`127.0.0.1:57155`监听;生成员工认证、错误当前密码422且无写入、正确改密204空响应/no-store、旧新凭据切换及使用同一接口复位全部PASS。
- 数据保护:D盘两个原数据文件测试前后均为108336字节且SHA-256完全不变;未读取D/E盘原数据字段内容。
- 测后状态:临时凭据失效、原凭据恢复可用,页面200、未认证探针401、原PID存活且仅回环监听。
- 未执行:前端Gate D、真实浏览器、停止重启、实际回滚、多进程/多实例、真实数据和生产环境。
- 队列编号:QUEUE-20260717-053
- 下一责任人:项目管理员等待前端同项复核PASS后投递测试Gate A
## COLLAB-20260718-023 | D盘旧版归档路径事实源更正
- 事件类型:事实源更正/前端Gate D同项复核输入
- 发起时间:2026-07-18
- 发起角色:产品与项目管理/项目管理员
- 目标角色:Owner/前端开发/后端开发/运维与发布/测试与质量
- 上游事件:COLLAB-20260718-018、021、022
- 结果事件:COLLAB-20260718-024
- 当前Gate:CRM-20260718-001 / 前端Gate D复核
- 状态:CLOSED
- 更正事实:COLLAB-20260718-018中记录的`D:\SalesCRM\releases\SalesCRM-legacy-20260718T110427-302df0e1.zip`路径无效;实际且唯一有效归档路径为`D:\SalesCRM\release-input\legacy-20260718T110427-302df0e1\SalesCRM-legacy-20260718T110427-302df0e1.zip`。
- 内容结论不变:归档SHA-256仍为`3A18B040002EAAF95851A72F92733CDF334CC432CEFD0110209BD52A8A373AE8`,13个条目、禁入项0,前后端条目与审核源码一致;本次只更正引用路径,不移动或重建归档。
- 更正规则:后续任务记录、恢复说明和Gate证据只引用`release-input`实际路径;旧错误路径保留为历史,不再使用。
- 队列编号:QUEUE-20260717-052
- 下一责任人:前端开发在同一QUEUE-052只读复核路径更正并回传COLLAB-20260718-024
## COLLAB-20260718-024 | D盘旧版备份前端Gate D复核结果
- 事件类型:Gate D同项复核结果
- 发起时间:2026-07-18
- 发起角色:前端开发
- 目标角色:Owner/产品与项目管理/项目管理员/测试与质量
- 上游事件:COLLAB-20260718-021、023
- 结果事件:无
- 当前Gate:CRM-20260718-001 / 前端Gate D复核
- 状态:PASS
- 结论:COLLAB-023已废止旧`releases`路径并冻结唯一实际归档路径;任务记录已引用实际路径,归档存在且为D盘唯一同名文件。
- 复核证据:归档57527字节,SHA-256为`3A18B040002EAAF95851A72F92733CDF334CC432CEFD0110209BD52A8A373AE8`;因哈希未变化,首轮通过的13个条目、禁入项0及页面条目哈希结论继续有效。
- 实际修改:无;未重复功能测试,未修改文件、数据、Git或运行态。
- 队列编号:QUEUE-20260717-052
- 下一责任人:项目管理员结合后端COLLAB-022投递真实浏览器Gate A
## COLLAB-20260718-025 | D盘旧版备份真实浏览器Gate A
- 事件类型:Gate A请求
- 发起时间:2026-07-18
- 发起角色:Owner/产品与项目管理/项目管理员
- 目标角色:测试与质量
- 上游事件:COLLAB-20260718-018、022、024
- 结果事件:COLLAB-20260718-026
- 当前Gate:CRM-20260718-001 / 真实浏览器Gate A
- 状态:IN_PROGRESS
- 范围:使用真实浏览器访问`http://127.0.0.1:57155/`,只使用D盘忽略材料中的生成员工;验证登录、改密入口、三字段、错误当前密码失败关闭、正确改密后退出、旧密码失败、新密码成功、360px、控制台和账号复位。
- 额外核对:页面可见版本必须来自D盘实例;测试后D盘原数据哈希不变、D盘实例与E盘64169实例均存活。
- 不做项:不读取原数据字段,不使用真实账号/客户数据,不修改代码/配置/Git/部署,不输出凭据、完整响应、原始日志或含敏感值截图,不代签Gate P或生产发布。
- 队列编号:QUEUE-20260717-054
- 下一责任人:测试与质量
## COLLAB-20260718-026 | D盘旧版备份真实浏览器Gate A结果
- 事件类型:Gate A结果回传
- 发起时间:2026-07-18
- 发起角色:测试与质量
- 目标角色:Owner/产品与项目管理/项目管理员/运维与发布
- 上游事件:COLLAB-20260718-018、022、024、025
- 结果事件:无
- 当前Gate:CRM-20260718-001 / 真实浏览器Gate A
- 状态:PASS
- 浏览器:Codex In-app Browser;仅访问D盘57155和E盘64169两个回环地址。
- 业务闭环:生成员工真实登录、改密入口、三字段空值与可操作性、错误当前密码失败关闭、正确改密后退出、原凭据失效、临时新凭据成功、360px单列无溢出均PASS。
- 复位与清理:已通过浏览器UI恢复原凭据,临时凭据失效、原凭据重新登录成功;测试会话和标签已清理,控制台阻塞性错误0。
- 数据与实例:D盘两份受保护文件测试前后长度和SHA-256逐一相同,未解析字段内容;D盘57155与E盘64169登录页同时可达。
- 证据安全:未创建截图,未回显凭据、Token、账号标识、完整响应或原始日志;未修改代码、配置、Git、部署或受保护原数据。
- 未执行:停止/重启和实际回滚、非回环、多进程/多实例、真实数据和生产环境。
- 风险:允许进入停止/重启演练;`BLOCK-001`至`BLOCK-003`及生产`No-Go`继续有效。
- 队列编号:QUEUE-20260717-054
- 下一责任人:运维与发布执行D盘实例停止/重启演练
## COLLAB-20260718-027 | D盘旧版备份停止重启演练
- 事件类型:部署恢复演练请求
- 发起时间:2026-07-18
- 发起角色:Owner/产品与项目管理/项目管理员
- 目标角色:运维与发布
- 上游事件:COLLAB-20260718-018、026
- 结果事件:COLLAB-20260718-028
- 当前Gate:CRM-20260718-001 / 恢复演练
- 状态:IN_PROGRESS
- 范围:使用已登记D盘停止入口停止runId `local-20260718T110952-35e328fa`,确认监听和进程消失;再从D盘当前基线使用生成数据启动新的仅回环实例,核对源码哈希、页面200、未认证API 401、停止入口、原数据哈希守恒和E盘64169存活。
- 回滚入口:再次只读预检部署前快照回滚脚本,不实际覆盖当前已验收D盘基线。
- 不做项:不读取数据字段,不修改源码/配置/Git,不执行生产发布,不影响E盘实例,不输出凭据或原始日志。
- 队列编号:QUEUE-20260717-055
- 下一责任人:运维与发布
## COLLAB-20260718-028 | D盘旧版备份停止重启演练首轮结果
- 事件类型:部署恢复演练结果
- 发起时间:2026-07-18
- 发起角色:运维与发布
- 目标角色:Owner/产品与项目管理/项目管理员
- 上游事件:COLLAB-20260718-027
- 结果事件:COLLAB-20260718-030
- 当前Gate:CRM-20260718-001 / 恢复演练
- 状态:CHANGES_REQUESTED
- 通过项:旧实例PID/runId/runner/监听身份核对后被精确停止,57155和PID消失且未误停其他进程;D盘源码、运行副本、原数据哈希、实际归档、回滚预检和E盘实例均保持正确。
- 新实例:去除忽略态状态文件BOM后,runId `local-20260718T174342-2a4ccd9d`在`http://127.0.0.1:59458/`成功启动,PID 38084,仅回环监听;页面200、未认证API 401,当前保持运行。
- 唯一问题:既有停止脚本用Windows PowerShell `Set-Content -Encoding utf8`回写`current-run.json`时写入BOM,导致第一次重启在监听前安全退出;人工去除BOM后才能启动,恢复流程不可重复。
- 未修改项:未修改业务源码、配置或Git;首次失败未留下监听,E盘实例未受影响。
- 结论:当前不允许进入本地Gate P;须在同一QUEUE-055修正D盘本地停止脚本为无BOM UTF-8写入,并完成一次无需人工改状态文件的停止/重启复验。
- 队列编号:QUEUE-20260717-055
- 下一责任人:运维与发布在原队列项完成最小整改和复验
## COLLAB-20260718-029 | D盘停止脚本无BOM整改
- 事件类型:部署恢复整改授权
- 发起时间:2026-07-18
- 发起角色:Owner/产品与项目管理/项目管理员
- 目标角色:运维与发布
- 上游事件:COLLAB-20260718-028
- 结果事件:COLLAB-20260718-030
- 当前Gate:CRM-20260718-001 / 恢复演练整改
- 状态:IN_PROGRESS
- 范围:只修改D盘Git忽略的本地`stop-current.ps1`状态文件写入方式,使用无BOM UTF-8原子/安全写入;不得修改runner、业务源码、发布归档、D/E盘原数据或Git。
- 复验:使用修正脚本停止当前D盘runId `local-20260718T174342-2a4ccd9d`,确认状态JSON无BOM且语义正确,再直接启动新D盘实例;全程不得人工二次修正状态文件。
- 验收:新实例仅回环、页面200、未认证API 401、源/运行哈希一致、原数据守恒、归档/回滚预检和E盘实例存活;新实例保持运行并提供停止入口。
- 队列编号:QUEUE-20260717-055
- 下一责任人:运维与发布
## COLLAB-20260718-030 | D盘停止脚本整改与恢复复验结果
- 事件类型:部署恢复整改结果
- 发起时间:2026-07-18
- 发起角色:运维与发布
- 目标角色:Owner/产品与项目管理/项目管理员
- 上游事件:COLLAB-20260718-028、029
- 结果事件:无
- 当前Gate:CRM-20260718-001 / 恢复演练整改
- 状态:PASS
- 脚本整改:仅修改D盘本地`stop-current.ps1`;保留PID、runId、Node进程和runner路径身份校验,改为同目录临时文件、`.NET UTF8Encoding(false)`无BOM写入、`File.Replace`加随机同目录备份文件原子替换,并在`finally`清理临时/备份文件。PowerShell解析错误0。
- 无人工复验:最终脚本精确停止过渡实例后,PID和监听消失;状态JSON有效且无BOM,临时/备份残留0;停止与直接重启之间未人工修改`current-run.json`。
- 最终实例:runId `local-20260718T175145-22a11656`,URL `http://127.0.0.1:60068/`,PID 52556;唯一`127.0.0.1:60068`监听,页面200、未认证改密API 401,无开机自启,保持运行。
- 守恒:D盘源码与最终运行副本前后端哈希匹配已验收值;两个受保护原数据文件均为108336字节且SHA-256与部署前快照一致;代码归档哈希不变;回滚只读预检30文件差异0;E盘64169实例仍存活且页面200。
- 实际影响:仅D盘本地忽略脚本、生成运行材料、状态记录和回环进程;未修改业务源码、runner、发布归档、D/E盘原数据或Git。
- 未执行:实际回滚、生产发布和真实数据验证。
- 风险:允许进入本地范围Gate P;`BLOCK-001`至`BLOCK-003`和生产`No-Go`继续有效。
- 队列编号:QUEUE-20260717-055
- 下一责任人:产品与项目管理执行本地备份范围Gate P
## COLLAB-20260718-031 | D盘旧版可恢复备份产品Gate P
- 事件类型:Gate P验收请求
- 发起时间:2026-07-18
- 发起角色:Owner/项目管理员
- 目标角色:产品与项目管理
- 上游事件:COLLAB-20260718-018、022、024、026、030
- 结果事件:COLLAB-20260718-032
- 当前Gate:CRM-20260718-001 / 本地备份范围Gate P
- 状态:CLOSED
- 范围:对照任务八项验收,汇总部署前完整快照、白名单源码、代码归档、前后端Gate D、真实浏览器Gate A和无人工停止/重启复验。
- 不做项:不代签生产发布,不读取真实数据,不解除P0阻塞,不把D盘代码归档描述为可直接复制上线。
- 队列编号:QUEUE-20260717-056
- 下一责任人:产品与项目管理
## COLLAB-20260718-032 | D盘旧版可恢复备份产品Gate P结果
- 事件类型:Gate P结果回传
- 发起时间:2026-07-18
- 发起角色:产品与项目管理
- 目标角色:Owner/项目管理员及全部适用专业角色
- 上游事件:COLLAB-20260718-031
- 结果事件:无
- 当前Gate:CRM-20260718-001 / 本地备份范围Gate P
- 状态:PASS
- 结论:八项验收全部PASS;`D:\SalesCRM`已形成架构改版前的可恢复、可启动、可校验旧版本机基线,可作为未来发布版本输入和改版回退依据。
- 证据摘要:部署前快照30文件差异0;D盘前后端与审核源码一致;代码归档13项且禁入项0;仅回环生成数据实例通过前后端Gate D与真实浏览器Gate A;停止脚本整改后完成一次无需人工状态修补的停止/直接重启;原数据、归档、E盘实例和回滚预检均守恒。
- 当前运行:D盘实例`http://127.0.0.1:60068/`保持运行;精确停止时必须使用runId `local-20260718T175145-22a11656`。E盘64169实例同时保持运行。
- 发布边界:D盘代码归档具备版本、哈希和恢复输入,但不等于生产发布包;正式上线仍须单独完成数据与凭据治理、后端权限、HTTPS、最小权限服务账号、环境配置、备份恢复、监控以及生产Gate D/A/P和发布批准。
- 风险:`BLOCK-001`至`BLOCK-003`和生产`No-Go`继续有效;不得直接把本地目录或归档复制到线上并宣称可用。
- 队列编号:QUEUE-20260717-056
- 下一责任人:项目管理员提交并推送代码与正式文档;后续架构改版以本基线为旧版回退参照
docs/任务/统一计划台账.md
@@ -8,9 +8,9 @@
- 产品目标:把 SalesCRM 从单文件演示原型改造成安全、可维护、可测试、可部署的正式内部系统。
- 当前里程碑:研发治理基线封版、角色会话串行调度整改与P0安全整改准备。
- 当前 Gate:CRM-20260717-006隔离环境最小Gate A已PASS,第一阶段本地/隔离验收完成;CRM-003整体Gate R和产品Gate P均已PASS,方案阶段闭环。
- 当前 Gate:CRM-20260718-001 D盘旧版可恢复备份本地Gate P PASS;代码与正式文档待提交推送。
- Go/No-Go:`No-Go`,P0账号/数据/Git历史风险未关闭前不得正式生产上线。
- 当前唯一下一棒:产品与项目管理按既有队列处理CRM-003 Gate P;CRM-006本轮不再增加评审,后续部署须另行授权,当前仍无正式线上授权。
- 当前唯一下一棒:项目管理员提交并推送当前代码与正式文档;后续架构改版以D盘基线为旧版回退参照。无生产授权。
## 活跃任务
@@ -20,7 +20,8 @@
| P0 | CRM-20260717-007 | 防止协作消息打断角色任务,建立WIP=1持久队列和执行锁 | 已提交并推送 | Gate P-PASS | 产品/项目管理员持续执行 | [任务目录](<./202607/0717-会话串行调度/导读.md>) |
| P0 | CRM-20260717-001 | 本地化研发体系并初始化角色会话 | 已提交并推送 | Gate P-PASS | Owner/项目管理员维护Git基线 | [任务目录](<./202607/0717-研发体系本地化/导读.md>) |
| P0 | CRM-20260717-002 | 隔离Git中的运行数据和账号密码,完成轮换与历史治理 | 待Owner裁决 | Gate N | 产品/架构/安全 | [系统现状](<../架构/系统现状与改造路线.md>) |
| P0 | CRM-20260717-006 | 员工登录后自主修改本人密码,安全与体验能力分期完善 | 第一阶段前后端实现、自测、Gate C及隔离环境最小验收均PASS;本地/隔离可用,未部署 | Gate A-PASS(隔离) | Owner/项目管理员;部署另行授权 | [任务目录](<./202607/0717-员工修改密码/导读.md>) |
| P0 | CRM-20260717-006 | 员工登录后自主修改本人密码,安全与体验能力分期完善 | 本机部署、前后端Gate D、真实浏览器Gate A及本地范围Gate P均PASS;生成数据回环实例本地可用 | Gate P-PASS(本地) | 项目管理员维护本地实例 | [任务目录](<./202607/0717-员工修改密码/导读.md>) |
| P0 | CRM-20260718-001 | 架构改版前形成D盘旧版可恢复、可启动、可校验的发布输入备份 | 八项验收、部署、Gate D/A、停止重启和本地Gate P均PASS;待提交推送 | Gate P-PASS(本地备份) | 项目管理员 | [任务目录](<./202607/0718-旧版可恢复备份/导读.md>) |
| P1 | CRM-20260717-003 | 冻结面向Web与移动端的模块化单体、MySQL、本地环境和渐进迁移方案 | 整体Gate R和产品Gate P均PASS,方案阶段闭环;第一实施任务待独立登记 | Gate P-PASS | 项目管理员 | [任务目录](<./202607/0717-模块化单体架构方案/导读.md>) |
| P1 | CRM-20260717-004 | 建立自动化测试、质量门禁和最小CI | 待架构方案 | Gate N | 测试/架构 | [系统现状](<../架构/系统现状与改造路线.md>) |
| P1 | CRM-20260717-005 | 加固部署、HTTPS、最小权限、备份和恢复 | 待安全整改 | Gate N | 运维/架构 | [系统现状](<../架构/系统现状与改造路线.md>) |
@@ -44,6 +45,7 @@
| 2026-07-17 | 每个角色会话WIP=1,新协作消息必须先入持久队列,active/有锁时禁止投递 | Owner发现协作消息抢占导致原任务丢失 | Owner/项目管理员 | 全部角色会话和跨角色协作 | 首轮真实多任务串行完成后 |
| 2026-07-17 | CRM-003采用MySQL、模块化单体、渐进迁移和本地优先;API面向Web与后续移动端 | Owner在正式架构会话确认方向并补充移动端范围 | Owner | 目标架构与后续工程改造 | Gate N/R方案完成后复核 |
| 2026-07-17 | CRM-006先落地基本改密闭环,再分段迭代完善;避免重复评审和过度设计,以交付效率优先 | Owner在Gate R通过后明确要求“小需求不要小题大做” | Owner | CRM-20260717-006实现与后续迭代 | 范围或安全底线发生实质变化时 |
| 2026-07-18 | 架构改版前先把当前已验收旧版整理到`D:\SalesCRM`,形成可恢复、可启动、可校验的发布输入备份 | Owner明确要求保留可用旧版本作为改版回退基线 | Owner | CRM-20260718-001及后续架构改版 | 旧版备份本地Gate P通过后 |
## 进展日志
@@ -73,5 +75,8 @@
- 会话交接:后端和前端故障会话均按完整历史回读、同队列恢复、验收PASS、正式ID切换、旧会话归档的顺序完成;无任务丢失。
- Gate R闭环:后端COLLAB-092、前端COLLAB-095、测试COLLAB-096均PASS;产品COLLAB-098确认七个专业角色最终均PASS、v0.4契约唯一、R-01至R-11无未决分歧。该时间点CRM-006实现仍为0%,未测试、未部署、不可上线。
- CRM-006第一阶段闭环:前端QUEUE-039、后端QUEUE-040开发自测和一次独立Gate C均PASS;测试QUEUE-043使用虚构内存与回环短生命周期服务完成19/19项隔离验收,结论为首版本地/隔离可用。未部署、Gate D/P未执行,生产No-Go继续有效。
- CRM-006本机部署闭环:COLLAB-20260718-007回环部署PASS,前后端COLLAB-009/011 Gate D均PASS;测试COLLAB-013使用真实浏览器完成登录、错误关闭、正确改密、退出、新旧密码重登、360px、账号复位和测后存活,阻塞性控制台错误0;产品COLLAB-015本地范围Gate P PASS。实例继续运行且只使用生成数据,不代表生产可用。
- CRM-003 Gate R闭环:架构COLLAB-113、前端COLLAB-104、后端COLLAB-20260718-002、安全COLLAB-143、测试COLLAB-144、运维COLLAB-145均PASS;COLLAB-20260718-003为更正后的唯一整体Gate R PASS。前端依据COLLAB-104及COLLAB-113“不回退PASS项”作项目级无回归裁决,不重复创建同义评审。
- CRM-003 Gate P闭环:COLLAB-20260718-005 PASS;第一实施任务冻结为“本地工程骨架 + Windows MySQL薄型样例”,只用生成数据,并须另立任务。BLOCK-001至003和生产No-Go继续有效。
- CRM-20260718-001登记:Owner要求架构改版前先形成D盘旧版可恢复备份;当前D盘旧副本未运行但前后端哈希落后,必须先完整保全再做白名单部署和真实浏览器验证。
- CRM-20260718-001本地闭环:部署前快照30文件差异0,D盘白名单源码与审核基线一致,代码归档禁入项0,前后端Gate D和真实浏览器Gate A均PASS;停止脚本BOM缺陷在同一恢复演练内整改并完成无人工状态修补的停止/直接重启,COLLAB-032本地Gate P PASS。生产No-Go继续有效。
docs/任务/角色队列/产品与项目管理.md
@@ -4,7 +4,7 @@
- WIP上限:`1`
- 执行锁:`IDLE`
- 当前队列项:无
- 最后检查点:2026-07-18,COLLAB-20260718-005产品Gate P PASS,第一实施任务已冻结,QUEUE-044已释放
- 最后检查点:2026-07-18,COLLAB-20260718-032本地备份范围Gate P PASS;八项验收全部闭环,QUEUE-056已释放
| 顺序 | 队列编号 | 任务/事件 | 优先级 | 状态 | 入队时间 | 验收 |
| --- | --- | --- | --- | --- | --- | --- |
@@ -17,3 +17,6 @@
| 7 | `QUEUE-20260717-031` | `CRM-20260717-006 / COLLAB-20260717-088` | P0 | COMPLETED | 2026-07-17 | PASS;v0.4唯一契约、废止项和后端确认输入已同步 |
| 8 | `QUEUE-20260717-033` | `CRM-20260717-006 / COLLAB-20260717-097` | P0 | COMPLETED | 2026-07-17 | PASS;七角色最终均PASS,v0.4唯一契约和R-01至R-11整体冻结 |
| 9 | `QUEUE-20260717-044` | `CRM-20260717-003 / COLLAB-20260718-004、005` | P1 | COMPLETED | 2026-07-18 | PASS;第一实施任务冻结为本地工程骨架 + Windows MySQL薄型样例;不做全量迁移或生产部署 |
| 10 | `QUEUE-20260717-049` | `CRM-20260717-006 / COLLAB-20260718-014、015` | P0 | COMPLETED | 2026-07-18 | PASS;十项MVP标准、本机部署、前后端Gate D和真实浏览器Gate A全部闭环,仅代表生成数据回环实例本地可用 |
| 11 | `QUEUE-20260717-050` | `CRM-20260718-001 / COLLAB-20260718-016` | P0 | COMPLETED | 2026-07-18 | PASS;D盘旧版可恢复备份范围、八项验收、数据边界、回滚和生产No-Go已冻结 |
| 12 | `QUEUE-20260717-056` | `CRM-20260718-001 / COLLAB-20260718-031、032` | P0 | COMPLETED | 2026-07-18 | PASS;快照、部署、归档、Gate D/A和无人工停止重启满足八项验收,仅代表本地可恢复发布输入 |
docs/任务/角色队列/前端开发.md
@@ -4,7 +4,7 @@
- WIP上限:`1`
- 执行锁:`IDLE`
- 当前队列项:无
- 最后检查点:2026-07-17,新正式会话完成接管,QUEUE-039前端最小实现与自测PASS并回传COLLAB-133
- 最后检查点:2026-07-18,COLLAB-20260718-024前端Gate D复核PASS;归档路径更正关闭,QUEUE-052已释放
| 顺序 | 队列编号 | 任务/事件 | 优先级 | 状态 | 入队时间 | 验收 |
| --- | --- | --- | --- | --- | --- | --- |
@@ -13,3 +13,5 @@
| 3 | `QUEUE-20260717-024` | `CRM-20260717-006 / COLLAB-20260717-071、093、094` | P0 | COMPLETED | 2026-07-17 | PASS;完整交接旧历史,v0.4接口、字符、响应、错误码、交互和自测输入全部关闭 |
| 4 | `QUEUE-20260717-034` | `CRM-20260717-003 / COLLAB-20260717-099` | P1 | COMPLETED | 2026-07-17 | PASS;技术栈、目录、渐进迁移、多客户端契约和第一链路可实施 |
| 5 | `QUEUE-20260717-039` | `CRM-20260717-006 / COLLAB-20260717-109、132、133` | P0 | COMPLETED | 2026-07-17 | PASS;完成账号入口、改密表单、专用请求、错误映射、退出和最小自测 |
| 6 | `QUEUE-20260717-047` | `CRM-20260717-006 / COLLAB-20260718-010、011` | P0 | COMPLETED | 2026-07-18 | PASS;运行页面与审核源码一致,入口/三字段、专用两字段请求、失败关闭和360px规则通过 |
| 7 | `QUEUE-20260717-052` | `CRM-20260718-001 / COLLAB-20260718-019、021、023、024` | P0 | COMPLETED | 2026-07-18 | PASS;功能和归档内容通过,路径事实源更正后同项复核PASS |
docs/任务/角色队列/后端开发.md
@@ -4,7 +4,7 @@
- WIP上限:`1`
- 执行锁:`IDLE`
- 当前队列项:无
- 最后检查点:2026-07-18,COLLAB-151复评PASS,QUEUE-035已释放;未执行工程实现
- 最后检查点:2026-07-18,COLLAB-20260718-022后端Gate D PASS;版本、归档、改密、复位、数据守恒和测后存活通过,QUEUE-053已释放
| 顺序 | 队列编号 | 任务/事件 | 优先级 | 状态 | 入队时间 | 验收 |
| --- | --- | --- | --- | --- | --- | --- |
@@ -14,3 +14,5 @@
| 4 | `QUEUE-20260717-032` | `CRM-20260717-006 / COLLAB-20260717-090、091` | P0 | COMPLETED | 2026-07-17 | PASS;完整交接旧历史,v0.4唯一契约和当前单写实例可实施性确认完成 |
| 5 | `QUEUE-20260717-035` | `CRM-20260717-003 / COLLAB-20260717-100、COLLAB-20260718-001、002` | P1 | COMPLETED | 2026-07-17 | PASS;20260718-001/002更正旧日期并发编号冲突,首链Schema/API、迁移栈、HTTPS会话/CSRF、单写切流和可重复命令缺口已在方案级关闭 |
| 6 | `QUEUE-20260717-040` | `CRM-20260717-006 / COLLAB-20260717-110、130、131` | P0 | COMPLETED | 2026-07-17 | PASS;完成v0.4专用接口、校验、原子/CAS、错误码、主管兼容和虚构自测 |
| 7 | `QUEUE-20260717-046` | `CRM-20260717-006 / COLLAB-20260718-008、009` | P0 | COMPLETED | 2026-07-18 | PASS;审核源码一致、仅回环、错误当前密码拒绝、204成功、新旧凭据切换与复位通过 |
| 8 | `QUEUE-20260717-053` | `CRM-20260718-001 / COLLAB-20260718-020、022` | P0 | COMPLETED | 2026-07-18 | PASS;目标/运行/归档/审核源码一致,改密与复位通过,原数据哈希守恒,实例测后存活 |
docs/任务/角色队列/测试与质量.md
@@ -4,7 +4,7 @@
- WIP上限:`1`
- 执行锁:`IDLE`
- 当前队列项:无
- 最后检查点:2026-07-18,QUEUE-043隔离环境最小Gate A共19/19项PASS并回传COLLAB-149;短生命周期回环服务已关闭,未触碰运行数据或仓库状态
- 最后检查点:2026-07-18,COLLAB-20260718-026真实浏览器Gate A PASS;账号复位、原数据守恒和双实例存活通过,QUEUE-054已释放
| 顺序 | 队列编号 | 任务/事件 | 优先级 | 状态 | 入队时间 | 验收 |
| --- | --- | --- | --- | --- | --- | --- |
@@ -13,3 +13,5 @@
| 3 | `QUEUE-20260717-027` | `CRM-20260717-006 / COLLAB-20260717-074` | P0 | COMPLETED | 2026-07-17 | PASS;v0.4契约、十项矩阵、隔离环境、复位和计划自动化入口均可执行 |
| 4 | `QUEUE-20260717-037` | `CRM-20260717-003 / COLLAB-20260717-102、141、144` | P1 | COMPLETED | 2026-07-17 | PASS;方案级测试入口、夹具、对账、恢复和保护规则全部关闭 |
| 5 | `QUEUE-20260717-043` | `CRM-20260717-006 / COLLAB-20260717-148、149、151` | P0 | COMPLETED | 2026-07-18 | PASS;前端静态契约7项、回环内存API 12项,共19/19通过,首版隔离环境可用 |
| 6 | `QUEUE-20260717-048` | `CRM-20260717-006 / COLLAB-20260718-012、013` | P0 | COMPLETED | 2026-07-18 | PASS;真实浏览器完成登录、错误关闭、正确改密、退出、新旧密码重登、360px、复位和测后存活,阻塞性控制台错误0 |
| 7 | `QUEUE-20260717-054` | `CRM-20260718-001 / COLLAB-20260718-025、026` | P0 | COMPLETED | 2026-07-18 | PASS;真实浏览器改密闭环、360px、复位、控制台、双实例存活和原数据哈希守恒通过 |
docs/任务/角色队列/运维与发布.md
@@ -4,10 +4,13 @@
- WIP上限:`1`
- 执行锁:`IDLE`
- 当前队列项:无
- 最后检查点:2026-07-18,COLLAB-145复评PASS,QUEUE-038已释放;未执行Gate D或环境变更
- 最后检查点:2026-07-18,COLLAB-20260718-030恢复整改复验PASS;无人工状态修补的停止/直接重启完成,QUEUE-055已释放
| 顺序 | 队列编号 | 任务/事件 | 优先级 | 状态 | 入队时间 | 验收 |
| --- | --- | --- | --- | --- | --- | --- |
| 1 | `QUEUE-20260717-008` | `CRM-20260717-007 / COLLAB-20260717-041` | P0 | COMPLETED | 2026-07-17 | PASS;确认部署步骤不中断且恢复原项 |
| 2 | `QUEUE-20260717-028` | `CRM-20260717-006 / COLLAB-20260717-075` | P0 | COMPLETED | 2026-07-17 | PASS;隔离测试环境、备份、复位、回滚和HTTPS停止线已冻结 |
| 3 | `QUEUE-20260717-038` | `CRM-20260717-003 / COLLAB-20260717-103、142、145` | P1 | COMPLETED | 2026-07-17 | PASS;机械MySQL基线、健康、恢复Runbook和单写切流证据已在方案级关闭 |
| 4 | `QUEUE-20260717-045` | `CRM-20260717-006 / COLLAB-20260718-006、007` | P0 | COMPLETED | 2026-07-18 | PASS;回环实例存活、页面哈希一致、API机械可达、`data/`访问被阻断且停止入口有效 |
| 5 | `QUEUE-20260717-051` | `CRM-20260718-001 / COLLAB-20260718-017、018` | P0 | COMPLETED | 2026-07-18 | PASS;30文件快照差异0,12个白名单文件一致,代码归档禁入项0,D盘实例仅监听127.0.0.1且E盘实例不受影响 |
| 6 | `QUEUE-20260717-055` | `CRM-20260718-001 / COLLAB-20260718-027、028、029、030` | P0 | COMPLETED | 2026-07-18 | PASS;停止脚本无BOM原子写入整改完成,无人工修补的停止/直接重启、健康和全部守恒项通过 |