From b305dd51080e14b029f88cc04ec52c8685d0159d Mon Sep 17 00:00:00 2001 From: lorentz Date: Thu, 16 Jul 2026 07:00:03 -0400 Subject: [PATCH] =?UTF-8?q?docs(18):=20close=20out=20HUMAN-UAT.md=20?= =?UTF-8?q?=E2=80=94=20all=20items=20resolved=20after=20gap=20closure?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../18-HUMAN-UAT.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.planning/phases/18-campaign-grouping-phishing-analysis-api/18-HUMAN-UAT.md b/.planning/phases/18-campaign-grouping-phishing-analysis-api/18-HUMAN-UAT.md index 38b4be6..58d6b4e 100644 --- a/.planning/phases/18-campaign-grouping-phishing-analysis-api/18-HUMAN-UAT.md +++ b/.planning/phases/18-campaign-grouping-phishing-analysis-api/18-HUMAN-UAT.md @@ -1,14 +1,14 @@ --- -status: diagnosed +status: resolved phase: 18-campaign-grouping-phishing-analysis-api source: [18-VERIFICATION.md] started: 2026-07-16T02:44:01Z -updated: 2026-07-16T03:45:00Z +updated: 2026-07-16T07:05:00Z --- ## Current Test -[gap closure required before further human testing — see Gaps] +[all items resolved — phase verification passed] ## Tests @@ -20,19 +20,19 @@ result: passed — ran live against https://pulse.wulfconsulting.cloud. (a) 200, expected: 200 camelCase list/detail incl. working `?status=` filter; 401/redirect no cookie; 400 malformed id; 404 absent id result: passed — ran live. All shapes/statuses correct, including the previously-500ing `?status=open` filter (commit 650f9b8 confirmed live). -### 3. CR-02 escalation — scoping decision (policy call, not a runtime test) -expected: A developer decision on record for the cross-campaign migration report_count staleness. -result: deferred — superseded by a more severe finding (CR-03) discovered during this same live test session. Recommend deciding CR-02 together with CR-03 once a fix plan exists. +### 3. CR-03/CR-02 gap closure — live re-verification +expected: after gap-closure plan 18-05, re-analyzing a single-report campaign must return the SAME campaignId with created:false (not a duplicate), and cross-campaign migrations must decrement the origin campaign's report_count. +result: passed — ran live against production. Ticket 627088 analyzed twice: first call created campaign `5121930f-...` (created:true), second identical call returned the SAME campaignId with created:false. Direct DB query confirmed exactly one campaigns row for that campaign_key, report_count unchanged at 1. Test data (report, messages, indicators, campaign) cleaned up afterward. CR-02 decrement confirmed via code review + mocked regression tests (Tests E-H); not separately live-exercised (would require staging two independently-formed campaigns), noted as an accepted basis for pass in 18-VERIFICATION.md. ## Summary total: 3 -passed: 2 -issues: 1 +passed: 3 +issues: 0 pending: 0 skipped: 0 blocked: 0 ## Gaps -- CR-03 (BLOCKING): re-analyzing a single-report campaign creates a duplicate campaign with the same campaign_key instead of reusing the existing one. Confirmed live against production (ticket 627088 — test data cleaned up after confirmation). Full root-cause analysis in 18-VERIFICATION.md. Routed to gap-closure planning. +None — all resolved. See 18-VERIFICATION.md (status: passed, 2026-07-16) for the full final verification report.