Commit graph

472 commits

Author SHA1 Message Date
9c69b9033c docs(18): document CR-03 duplicate-campaign gap found via live verification 2026-07-15 23:44:57 -04:00
a48c0583bd test(18): persist human verification items as UAT 2026-07-15 22:44:19 -04:00
cc2544c7ee docs(18): update code review report after gap-closure re-review 2026-07-15 22:36:03 -04:00
d3373ab708 docs(phase-18): update tracking after gap-closure wave 2026-07-15 22:28:22 -04:00
eb660354ef docs(18-04): record self-check results in plan summary 2026-07-15 22:26:37 -04:00
21fde9eb3d docs(18-04): complete gap-closure plan summary
- CAMP-02 report_count double-increment fix and WR-02 limit-clamp fix, with
  a passing regression test and clean type check
2026-07-15 22:26:21 -04:00
20f3e1bbb5 docs(18): create gap-closure plan 18-04 2026-07-15 22:22:17 -04:00
ea71579fb0 fix(phase-18): revert premature roadmap completion marker after gaps_found verification 2026-07-15 19:49:37 -04:00
7f51d49839 docs(phase-18): add verification report (gaps found) 2026-07-15 19:49:01 -04:00
bd90cdcb30 docs(18): add code review report 2026-07-15 19:43:12 -04:00
95859660d6 docs(phase-18): update tracking after wave 2 2026-07-15 19:34:50 -04:00
701fea04cc chore: merge executor worktree (worktree-agent-a985b30606e37e1d0) 2026-07-15 19:33:32 -04:00
a544024e75 docs(18-02): complete on-demand analyze route + automatic grouping wiring plan
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-15 19:33:00 -04:00
86f5166a86 docs(18-03): complete campaign read API plan
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-15 19:32:31 -04:00
c77b7edae7 docs(phase-18): update tracking after wave 1 2026-07-15 19:27:40 -04:00
e76ab1bf43 docs(18-01): complete campaign grouping core + phishing permission resource plan
Summary for Phase 18 Plan 01 — groupReportIntoCampaign tiered matching,
self-exclusion safeguard, and the phishing permission resource. Requirements
CAMP-01, CAMP-02, ACCESS-01 complete.
2026-07-15 19:25:18 -04:00
78c984dceb docs(state): record phase 18 planning session 2026-07-15 16:51:02 -04:00
a494cd0c0b docs(18): fix plan-checker warnings (tier self-exclusion + resolved open questions) 2026-07-15 16:50:46 -04:00
808604e861 docs(18): create phase plan (3 plans, 2 waves) 2026-07-15 16:45:29 -04:00
ffdd86a0ed docs(18): add pattern map 2026-07-15 16:37:37 -04:00
1c6d2fdde5 docs(phase-18): add validation strategy 2026-07-15 16:34:20 -04:00
e05d34640c docs(18): add research findings + EML-parsing scope decision 2026-07-15 16:33:49 -04:00
4ccd379dc3 docs(18): research phase domain 2026-07-15 16:22:25 -04:00
0ec690b261 docs(state): record phase 18 context session 2026-07-15 15:39:03 -04:00
a37dcebd2d docs(18): capture phase context 2026-07-15 15:39:03 -04:00
4decefb940 docs(requirements): mark EVID-02/03/04 complete (phase 16 gap) 2026-07-15 15:19:59 -04:00
3fe1c02570 docs(phase-17): mark phase complete 2026-07-15 14:34:03 -04:00
fc7e47532b docs(phase-17): update tracking after wave 1 2026-07-15 14:31:59 -04:00
eaee6292dc docs(17-01): record self-check result in SUMMARY.md
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-15 14:31:22 -04:00
2bb1817e8d docs(17-01): complete Mimecast blast-radius lookup plan
Mark BLAST-01/BLAST-02 complete in REQUIREMENTS.md and add the plan's
SUMMARY.md documenting getBlastRadius() delivery.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-15 14:31:10 -04:00
efbc437e2e feat(17-01): build mimecast-blast-radius.ts fan-out orchestration
- Add getBlastRadius(): never-throwing orchestration that fans out to
  searchDeliveredMessages + getHeldMessages + getThreatEvents (D-01,
  unconditional fan-out) and merges into normalized matched/delivered/
  held/rejected/clicked counts + perRecipient status array
- Config gate (BLAST-02): returns status:'unavailable' reason:'not_configured'
  synchronously when Mimecast is unconfigured, never constructs the client
- Redis-backed 5-min cache (D-04) via redis-client.ts, short-circuits before
  any MimecastClient call on hit
- clicked derived best-effort from getThreatEvents() analysis[] (D-02);
  documents the /api/ttp/url/get-logs limitation in code
- Documents D-05 known limitation: single global getMimecastClient() only,
  not per-company mimecast_tenants
- Unrecognized delivered-message status strings treated conservatively as
  non-rejected (A3 unconfirmed enum), raw values logged at debug level
- Add lib/services/mimecast-blast-radius.test.ts covering config gate,
  cache-hit short-circuit, fan-out merge, never-throw-on-error, and
  unknown-recipient classification
- Log pre-existing unrelated itglue-search.test.ts failures to
  deferred-items.md (out of scope for this plan)
2026-07-15 14:30:00 -04:00
683d90edd0 docs(state): record phase 17 planning session 2026-07-15 13:48:04 -04:00
3424812d60 docs(17): fix plan-checker warnings (merge formula clarity + resolved open questions) 2026-07-15 13:47:48 -04:00
7303b16cbb docs(17): create phase plan (1 plan, 1 wave) 2026-07-15 13:44:14 -04:00
78ff39fa48 docs(17): add pattern map 2026-07-15 13:39:21 -04:00
c702cb9b03 docs(phase-17): add validation strategy 2026-07-15 13:35:57 -04:00
9dbc1e7510 docs(17): add research findings + tenant-scope decision 2026-07-15 13:35:21 -04:00
cacf41a493 docs(17): research phase domain 2026-07-15 13:28:58 -04:00
e30d9af46d docs(state): record phase 17 context session 2026-07-15 13:13:37 -04:00
09ff5b9bb8 docs(17): capture phase context 2026-07-15 13:13:31 -04:00
50bb8e2ac9 docs(phase-16): mark phase complete 2026-07-15 10:45:47 -04:00
40268e709f docs(phase-16): update tracking after wave 2 2026-07-15 10:42:00 -04:00
135d448127 docs(16-03): complete EML/MIME evidence orchestration service plan
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-15 10:41:15 -04:00
36ef9e7ce3 docs(phase-16): update tracking after wave 1 2026-07-15 10:33:49 -04:00
f3ace33f86 chore: merge executor worktree (worktree-agent-a2b7d8cafac0f4270) 2026-07-15 10:32:42 -04:00
d7c868a2d7 docs(16-01): complete EML/MIME evidence parser core plan
Summary of Plan 16-01: mailparser + linkify-it dependency install,
selectOriginalMessage (EVID-02 three-tier selection), and parseEml +
parseAuthResults + extractUrls + buildBodyPreview (EVID-03/EVID-04),
with a DoS size guard ahead of simpleParser. 26/26 tests pass, tsc
clean. Logs 2 pre-existing unrelated itglue-search.test.ts failures to
deferred-items.md (out of scope, not fixed).
2026-07-15 10:31:45 -04:00
094d34c2c8 docs(16-02): append self-check result to summary 2026-07-15 10:25:00 -04:00
3f55e145e3 docs(16-02): complete Autotask attachment content / B2 EML regex / indicators metadata plan
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-15 10:24:47 -04:00
32fcf3b9f6 docs(16): create phase plan 2026-07-15 10:17:13 -04:00
d63b9adadf fix(16): revise plans based on checker feedback 2026-07-15 10:13:30 -04:00