From 274ecac47404adb2db20ff7793aa8deba40ce569 Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Sat, 3 Oct 2026 12:15:12 +0800 Subject: [PATCH] fix(scripts): validate current vehicle task registry --- scripts/agents-index-contract.ps1 | 28 ++++++++----------- .../agents-index-registry-contract.test.mjs | 10 +++---- 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/scripts/agents-index-contract.ps1 b/scripts/agents-index-contract.ps1 index 64d1dbb6d..81a8449e2 100644 --- a/scripts/agents-index-contract.ps1 +++ b/scripts/agents-index-contract.ps1 @@ -201,24 +201,20 @@ Assert-Contains $docsIndex '[测试环境独立任务协作登记](独立任务 Assert-Contains $docsIndex '[开发环境独立任务协作登记](开发环境独立任务协作登记.md)' '文档开发登记入口' # BEGIN CURRENT TEST REGISTRY CONTRACT function Assert-TestTaskRegistry([string]$registry) { - Assert-Contains $registry '用户 2026-09-30 的明确请求重新创建' '测试任务明确创建依据' - Assert-Contains $registry '按4个创建,你直接负责汇总' '测试任务精确数量授权' - Assert-Contains $registry '不根据旧台账恢复或派工' '测试任务禁止历史复用' - Assert-Contains $registry 'task_id=01a0d0da-130f-7d43-97b5-9c76abc1b5f1' '测试所属总控' - Assert-Contains $registry 'projectId=c64729ff-6710-43c6-8ef2-d84e9666cc1e' '测试保存项目' - Assert-Contains $registry '`C:/Users/BY-OY/Desktop/code/chongchong-global`' '测试工作目录' - Assert-Contains $registry '不操作开发或生产环境' '测试授权环境边界' - $expectedIds = @( - '01a0f14c-9262-7b43-990a-0e3beddcdd8a', - '01a0f14c-962f-73c3-b1aa-9df555b91586', - '01a0f14c-9a66-7f61-bc2b-6ad17a6c940a', - '01a0f14c-9e33-7a01-903d-a5febd50774b' - ) - $actualIds = @([regex]::Matches($registry, '(?m)^\|\s*`([0-9a-f-]{36})`\s*\|') | ForEach-Object { $_.Groups[1].Value }) + $current = ($registry -split '(?m)^## 2026-10-03 归档与重新规划')[0] + Assert-Contains $current '## 2026-10-03 车辆管理四任务协作(当前)' '当前车辆协作入口' + Assert-Contains $current '确认创建三个任务,我们当前目标调整一下,加上自己,一共4个任务' '测试任务精确数量授权' + Assert-Contains $current '车辆总控:当前对话 `01a0f19d-3f0b-7ae0-a860-c0d1d2e84475`' '测试所属总控' + Assert-Contains $current '`c64729ff-6710-43c6-8ef2-d84e9666cc1e`' '测试保存项目' + Assert-Contains $current '`C:/Users/BY-OY/Desktop/code/chongchong-global`' '测试工作目录' + Assert-Contains $current '不混入开发环境' '测试授权环境边界' + Assert-Contains $current '其他旧任务仍保持归档,不自动恢复' '测试任务禁止历史恢复' + $expectedIds = @('01a0ffcf-7150-7db3-9d8c-108e568c12b1','01a0ffcf-eea3-7111-b30b-4be63547ac33','01a0ffd0-2a4d-7210-bad8-a790cd965e8a') + $actualIds = @([regex]::Matches($current, '(?m)^\|\s*`([0-9a-f-]{36})`\s*\|') | ForEach-Object { $_.Groups[1].Value }) $script:checked++ - if ($actualIds.Count -ne 4 -or @($actualIds | Select-Object -Unique).Count -ne 4 -or + if ($actualIds.Count -ne 3 -or @($actualIds | Select-Object -Unique).Count -ne 3 -or @($expectedIds | Where-Object { $actualIds -notcontains $_ }).Count -gt 0) { - Add-Failure '测试登记必须恰为本轮明确创建的四个唯一任务' + Add-Failure '测试当前登记必须恰为三个独立任务,加车辆总控共四个任务' } Assert-NotContains $registry '当前无登记任务' '测试登记不得混入过期清空状态' Assert-NotContains $registry '01a0194a-259c-7171-8967-074731a27618' '测试登记历史总控' diff --git a/scripts/agents-index-registry-contract.test.mjs b/scripts/agents-index-registry-contract.test.mjs index 67b75e092..7ac952cca 100644 --- a/scripts/agents-index-registry-contract.test.mjs +++ b/scripts/agents-index-registry-contract.test.mjs @@ -23,12 +23,12 @@ test('actual explicitly authorized TEST registry passes the production validator assert.deepEqual(failures(registry), []) }) for (const [name, mutate] of [ - ['missing creation authorization', s => s.replace('按4个创建,你直接负责汇总', '安排任务')], - ['wrong controller', s => s.replace('task_id=01a0d0da-130f-7d43-97b5-9c76abc1b5f1', 'task_id=unknown')], - ['wrong project', s => s.replace('projectId=c64729ff-6710-43c6-8ef2-d84e9666cc1e', 'projectId=wrong')], + ['missing creation authorization', s => s.replace('确认创建三个任务,我们当前目标调整一下,加上自己,一共4个任务', '安排任务')], + ['wrong controller', s => s.replace('车辆总控:当前对话 `01a0f19d-3f0b-7ae0-a860-c0d1d2e84475`', 'task_id=unknown')], + ['wrong project', s => s.replace('`c64729ff-6710-43c6-8ef2-d84e9666cc1e`', 'projectId=wrong')], ['wrong workspace', s => s.replace('`C:/Users/BY-OY/Desktop/code/chongchong-global`', '`C:/Users/BY-OY/Desktop/code/chongchong-global-dev`')], - ['duplicate task', s => s.replace('01a0f14c-962f-73c3-b1aa-9df555b91586', '01a0f14c-9262-7b43-990a-0e3beddcdd8a')], - ['unregistered replacement', s => s.replace('01a0f14c-962f-73c3-b1aa-9df555b91586', '00000000-0000-0000-0000-000000000000')], + ['duplicate task', s => s.replace('01a0ffcf-eea3-7111-b30b-4be63547ac33', '01a0ffcf-7150-7db3-9d8c-108e568c12b1')], + ['unregistered replacement', s => s.replace('01a0ffcf-eea3-7111-b30b-4be63547ac33', '00000000-0000-0000-0000-000000000000')], ['obsolete empty status', s => s + '\n当前无登记任务'], ['foreign project identity', s => s + '\n6f874ec3-d3b2-49bd-8625-327f4d685f98'], ['retired controller', s => s + '\n01a0194a-259c-7171-8967-074731a27618'],