{
  "planPath": "docs/plans/2026-06-06-playwright-coverage-fill-wave4.md",
  "lastUpdated": "2026-06-07T00:00:00Z",
  "nativeTaskIdBase": 112,
  "status": "completed",
  "tasks": [
    {"id": 0, "nativeId": 112, "subject": "Task 0: CLI role-mapping helpers + round-trip test", "status": "completed"},
    {"id": 1, "nativeId": 113, "subject": "Task 1: Generalize NotificationDataSeeder for status/created-at", "status": "completed"},
    {"id": 2, "nativeId": 114, "subject": "Task 2: Sites edge - duplicate identifier + cancel-from-edit", "status": "completed"},
    {"id": 3, "nativeId": 115, "subject": "Task 3: Templates edge p1 - duplicate name + create-cancel", "status": "completed"},
    {"id": 4, "nativeId": 116, "subject": "Task 4: Templates edge p2 - edit attribute + delete-blocked-by-instance", "status": "completed", "blockedBy": [3]},
    {"id": 5, "nativeId": 117, "subject": "Task 5: LDAP edge - missing-field + duplicate group", "status": "completed", "blockedBy": [0]},
    {"id": 6, "nativeId": 118, "subject": "Task 6: Audit Log edge p1 - filter combination + empty-after-apply", "status": "completed"},
    {"id": 7, "nativeId": 119, "subject": "Task 7: Audit Log edge p2 - non-API no cURL + drawer close", "status": "completed", "blockedBy": [6]},
    {"id": 8, "nativeId": 120, "subject": "Task 8: Site Calls edge - status filter + empty state", "status": "completed"},
    {"id": 9, "nativeId": 121, "subject": "Task 9: Site Calls keyset pagination", "status": "completed", "blockedBy": [8]},
    {"id": 10, "nativeId": 122, "subject": "Task 10: Notification Report edge p1 - filter combination + detail modal", "status": "completed", "blockedBy": [1]},
    {"id": 11, "nativeId": 123, "subject": "Task 11: Notification Report edge p2 - stuck-only + pagination", "status": "completed", "blockedBy": [1, 10]},
    {"id": 12, "nativeId": 124, "subject": "Task 12: Wave 4 verification + residue check", "status": "completed", "blockedBy": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]}
  ]
}
