Commit graph

333 commits

Author SHA1 Message Date
3465192ab5 docs(24): mark code review findings fixed (commit e057255)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-05 23:17:43 -04:00
52afdca8a1 docs(24-07): resolve live end-to-end checkpoint — all 9 steps passed
Ran the phase-closing 9-step live verification against the real
wulfconsulting.com hosted zone. All steps confirmed passing:
sync, create/update/delete round-trip, audit completeness, NS-write
rejection + genuine AWS failure logging, admin/user auth gating,
drift detection, and D-12/D-10 health-check behavior.

One real bug found and fixed along the way (commit 4da5664): TXT
record values weren't RFC-1035-quoted, so AWS rejected every TXT
create/update with InvalidCharacterString. Fixed in
route53-change-submit.ts, 4 regression tests added, retried
successfully.

Logged one pre-existing, unrelated finding: /admin/integrations page
load is slow overall, confirmed not specific to Route 53's own health
check (which is bounded to a few seconds) — likely another
integration's untimeouts liveCheck() probe. Deferred, not fixed.

24-VALIDATION.md's three Manual-Only Verifications rows updated with
observed outcomes; status marked complete.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-05 22:55:27 -04:00
31eb5e0321 docs(24-07): partial plan summary — Tasks 1-2 complete, Task 3 checkpoint pending
- Task 1 (page shell) and Task 2 (record editor dialog) committed and
  verified (tsc + build + acceptance-criteria greps all green)
- Task 3 is a blocking checkpoint:human-verify requiring a live 9-step
  round-trip against a real AWS account — not run, not fabricated
- Marked 24-07-T1/24-07-T2 rows green in 24-VALIDATION.md; 24-07-T3 and
  the three Manual-Only Verifications rows it covers remain pending
  human execution
2026-08-05 20:54:14 -04:00
c47de2a91c chore: merge executor worktree (worktree-agent-a8fd5f9961335cf8d) — plan 24-05 2026-08-05 20:38:35 -04:00
5e1b8aae75 docs(24-05): add plan summary
Route 53 API surface — read routes, sync trigger, CRUD write routes with
pending/committed/failed audit lifecycle.
2026-08-05 20:37:55 -04:00
a7d6a04110 feat(24-05): CRUD write routes with pending/committed/failed audit lifecycle
- app/api/route53/zones/[zoneId]/records/route.ts: add POST (create)
- app/api/route53/zones/[zoneId]/records/[recordId]/route.ts: PATCH (update), DELETE
- All three write handlers: requireAdmin() first (D-04), validateRecordWrite() before
  any AWS command (D-01), createPendingAuditLog() before submitRecordChange() (D-07/SC-3)
- Committed path: markAuditCommitted -> insertPulseCrudHistory (pulse_crud, SC-4) ->
  mirror refresh; failed path: sanitizeAwsError -> markAuditFailed -> 502, no history row
- DELETE submits the exact mirror-read recordset (name/type/ttl/resourceRecords), never
  client-supplied values, per Route 53's exact-match delete requirement
- recordId zone-prefix mismatch guard (T-24-17): 400 before any audit row or AWS call
- No staged-approval mechanism anywhere (D-03) — mutation executes on first request
- tsc clean; npm test 554/556 passing (2 pre-existing itglue-search failures, unrelated,
  logged in deferred-items.md, already documented by plans 24-01/24-03)
2026-08-05 20:36:54 -04:00
82408733a4 docs(24-06): append self-check results to plan summary 2026-08-05 20:33:26 -04:00
8fcf587a30 docs(24-06): create plan summary 2026-08-05 20:33:08 -04:00
d00c47ecb1 chore: merge executor worktree (worktree-agent-a30d26dba3410e0da) — plan 24-04 2026-08-05 20:26:13 -04:00
2dbb1e13e2 chore: merge executor worktree (worktree-agent-ab77d007f6dbb3578) — plan 24-03 2026-08-05 20:26:13 -04:00
416abe98a0 docs(24-04): create plan summary
- Route 53 registered in integration health with D-12 live NS-delegation check
- Records EGRESS-OK path taken (Node dns module, no DoH fallback needed)
- Documents local sanitizeAwsError duplication vs plan 24-03 (parallel worktree gap)
2026-08-05 20:25:33 -04:00
6df084cb98 docs(24-02): create plan summary
Route 53 sync + drift detection plan complete: 3 tasks, 4 files, all
verification passing (22 new tests, tsc clean, full suite green aside from
pre-existing unrelated itglue-search failures).
2026-08-05 20:24:18 -04:00
3d2680c47f docs(24-03): add plan summary
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-05 20:23:24 -04:00
8b5e926bb1 feat(24-03): add Route 53 audit lifecycle and pulse_crud history persistence
- createPendingAuditLog/markAuditCommitted/markAuditFailed implement the pending -> committed/failed lifecycle (D-07, SC-3); markAuditFailed always sanitizes via sanitizeAwsError
- insertPulseCrudHistory writes 'pulse_crud' history rows, documented as callable only after a committed write
- upsertMirrorRecord/softDeleteMirrorRecord/loadMirrorRecord manage the route53_records mirror; mirror writes are best-effort and soft-delete only (D-08), audit/history writes are not best-effort
- log same pre-existing itglue-search.test.ts failures (unrelated, out of scope) in deferred-items.md
2026-08-05 20:22:24 -04:00
b81ad3ecc2 docs(24-01): resolve checkpoint — BWS key rename confirmed, DNS egress OK
Checkpoint task 3 resolved: BWS secret keys renamed in Bitwarden
(AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY confirmed present), DNS egress
to public resolvers confirmed OK, credentials confirmed reaching the
Node process. IAM scope left as an open operational item for the
developer to confirm via AWS console.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-05 20:16:45 -04:00
97ec5722b1 docs(24-01): create partial SUMMARY, checkpoint pending
Tasks 1-2 complete (AWS SDK + schema migration, types + credential factory).
Task 3 is a blocking human-verify checkpoint requiring BWS/AWS credential
confirmation and live docker/DNS-egress verification — not fabricated, not
run unilaterally. Execution stops here pending developer response.
2026-08-05 19:26:46 -04:00
fadae68fe4 docs(24-01): log pre-existing itglue-search test failures as out-of-scope
Unrelated to Route 53 factory/schema work; not fixed per scope boundary rule.
2026-08-05 19:25:39 -04:00
0eab4996e9 docs(24): add pattern map 2026-08-05 19:18:00 -04:00
998c4b1a36 docs(24): research phase domain for AWS Route 53 DNS sync 2026-08-05 19:17:59 -04:00
52affe348c docs(24): cite D-02/D-05/D-08/D-09 in plan must_haves 2026-08-05 19:17:35 -04:00
15e52280b5 docs(24): create phase plan — 7 plans in 4 waves for AWS Route 53 DNS sync 2026-08-05 19:09:15 -04:00
6ad27fcbb6 docs(phase-24): add validation strategy 2026-08-05 18:46:43 -04:00
0805e387e3 docs(24): capture phase context 2026-08-05 18:31:06 -04:00
672f17b7f9 chore: check in pending work — queue preferences, QBO AR diagnostics, mobile engagement fixes, ops scripts
Bundles several in-progress efforts that were sitting uncommitted:
- User queue-preferences (migration 087, API route, popover component)
- QBO invoice soft-delete (migration 088) and AR diagnostics route
- Dashboard/mobile engagement route and page adjustments
- Docker Compose log-rotation config
- One-off ticket/RMM investigation scripts (scripts/)
- Planning docs: phase verification/pattern notes, mobile shell design spec
- .gitignore: exclude local scratch financial/inventory data and Claude Code
  worktree/local-settings runtime state (never meant for version control)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6RuWdiUiXrPK6FLBHjtpY
2026-07-18 06:34:57 -04:00
8610e7ab9b docs(22): add first-ever phase verification (human_needed — code passes, 5 UAT checks outstanding) 2026-07-17 06:47:18 -04:00
2e55e5e91d docs(23): re-verify phase — AUTOGATE-03 gap closed, 18/18 passed 2026-07-16 23:33:07 -04:00
9dfc9162df docs(23-06): add code review report 2026-07-16 23:29:03 -04:00
605e994937 docs(23-06): append self-check results to SUMMARY
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6RuWdiUiXrPK6FLBHjtpY
2026-07-16 23:20:04 -04:00
3bd116ad5b docs(23-06): complete idempotent auto-post acknowledgment plan
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6RuWdiUiXrPK6FLBHjtpY
2026-07-16 23:19:49 -04:00
a918b72d04 docs(23): gap-closure plan for AUTOGATE-03 idempotency defect (CR-01) 2026-07-16 22:54:19 -04:00
cc87607a58 docs(23): add phase verification report (gaps found) 2026-07-16 21:17:14 -04:00
c243cbc41f docs(23): add code review report 2026-07-16 21:11:48 -04:00
05a31d6a65 chore: merge executor worktree (worktree-agent-afdf88c6384b105cc) 2026-07-16 21:02:50 -04:00
7e33a8568b docs(23-04): complete admin phishing-automation page plan
- Adds 23-04-SUMMARY.md documenting Task 1 (page) and Task 2 (index tile)
- Records that Task 1's human-verify checkpoint was approved via a
  temporary production container rebuild rather than local npm run dev
2026-07-16 21:02:00 -04:00
7869e0bcfd docs(23-05): complete gated automation pipeline plan
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6RuWdiUiXrPK6FLBHjtpY
2026-07-16 19:47:21 -04:00
9aadbcdeea chore: merge executor worktree (worktree-agent-a5d0fe500dc50fe1e) 2026-07-16 19:40:47 -04:00
d9d8962ca7 chore: merge executor worktree (worktree-agent-a1093d44311d63302) 2026-07-16 19:40:47 -04:00
fe2375e3a2 docs(23-01): complete classification disposition + acknowledgment plan
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6RuWdiUiXrPK6FLBHjtpY
2026-07-16 19:40:21 -04:00
42a6c05d6f docs(23-03): append self-check results to SUMMARY.md
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-16 19:38:43 -04:00
63d6e85f37 docs(23-03): complete migration 100 + phishing-automation API plan
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-16 19:38:29 -04:00
50d0def2ae docs(23-02): append self-check result to SUMMARY
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6RuWdiUiXrPK6FLBHjtpY
2026-07-16 19:37:07 -04:00
44bbe90ae0 docs(23-02): complete Review UI USER_AWARENESS + acknowledge_user support plan
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6RuWdiUiXrPK6FLBHjtpY
2026-07-16 19:36:53 -04:00
2f48dba6be docs(23): fix REQUIREMENTS.md section placement instruction in plan 23-03
Checker warning: creating a new '## v3 Requirements' top-level section would
misleadingly read as deferred/future work (that's what '## v2 Requirements'
means in this file). Phase 23 is active v3.0 roadmap work -- instruct adding
a subsection under the existing '## v1 Requirements' heading instead,
mirroring Phase 22's existing subsection.
2026-07-16 19:30:49 -04:00
b50c1f5e1a fix(23): resolve checker blockers (timeline crash, acknowledge_user manual post) + doc/type-safety warnings 2026-07-16 19:26:00 -04:00
683e647984 docs(23): create phase plan (5 plans, 2 waves)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6RuWdiUiXrPK6FLBHjtpY
2026-07-16 19:08:45 -04:00
fd92263416 docs(23): correct acknowledge_user delivery field per live Autotask verification
Verified against TicketNotes/entityInformation/fields on the real tenant:
publish has no client-facing value (1=All Autotask Users, 2=Internal Project
Team, 4=Internal & Co-Managed -- all internal-staff tiers). Client Portal
visibility is controlled by noteType=18 ("Client Portal Note"), not publish.
Corrects D-03's original "flip the publish flag" framing before planning.
2026-07-16 18:59:33 -04:00
98c7153a10 docs(23): capture phase context 2026-07-16 18:37:04 -04:00
8a11a9f331 docs(23): add Classification Disposition + Per-Client Automation Gate phase
Scoping a dedicated "User Awareness" verdict for confirmed phishing-simulation
reports (KnowBe4/Breach Secure Now) plus a per-company automation gate for the
parse/classify/report-to-ticket pipeline stages. Surfaced live during Phase 22
review of a real Breach Secure Now report (ticket 699415).
2026-07-16 18:25:27 -04:00
4b2a7713b4 docs(22-06): complete LiveLink review page plan
Task 3 (blocking human-verify) resolved as "verified": a real production
Autotask LiveLink click against ticket 699340 confirmed the numeric-
ticket-id resolver assumption, no ticket_number fallback needed. Marks
REVIEW-01, REVIEW-05, REVIEW-06 complete in REQUIREMENTS.md.
2026-07-16 15:39:12 -04:00
bced734717 Merge branch 'worktree-agent-a68fa4bcada53d003' 2026-07-16 14:45:47 -04:00