{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.triggers.TimerTrigger$TimerTriggerCause",
          "shortDescription" : "Started by timer"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/dev-classes-xapi" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 9,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "4039a3132dc7cc3ef88cc29d105824236ac11d17",
            "branch" : [
              {
                "SHA1" : "4039a3132dc7cc3ef88cc29d105824236ac11d17",
                "name" : "refs/remotes/origin/dev-classes-xapi"
              }
            ]
          },
          "revision" : {
            "SHA1" : "4039a3132dc7cc3ef88cc29d105824236ac11d17",
            "branch" : [
              {
                "SHA1" : "4039a3132dc7cc3ef88cc29d105824236ac11d17",
                "name" : "refs/remotes/origin/dev-classes-xapi"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "4039a3132dc7cc3ef88cc29d105824236ac11d17",
        "branch" : [
          {
            "SHA1" : "4039a3132dc7cc3ef88cc29d105824236ac11d17",
            "name" : "refs/remotes/origin/dev-classes-xapi"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/UstadMobile/Respect.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    {
      "displayPath" : "respect-app-compose-debug.apk",
      "fileName" : "respect-app-compose-debug.apk",
      "relativePath" : "respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk"
    },
    {
      "displayPath" : "respect-app-compose-release.apk",
      "fileName" : "respect-app-compose-release.apk",
      "relativePath" : "respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk"
    },
    {
      "displayPath" : "respect-app-compose-debug.aab",
      "fileName" : "respect-app-compose-debug.aab",
      "relativePath" : "respect-app-compose/build/outputs/bundle/debug/respect-app-compose-debug.aab"
    },
    {
      "displayPath" : "respect-app-compose-release.aab",
      "fileName" : "respect-app-compose-release.aab",
      "relativePath" : "respect-app-compose/build/outputs/bundle/release/respect-app-compose-release.aab"
    },
    {
      "displayPath" : "mapping.txt",
      "fileName" : "mapping.txt",
      "relativePath" : "respect-app-compose/build/outputs/mapping/release/mapping.txt"
    },
    {
      "displayPath" : "respect-cli.zip",
      "fileName" : "respect-cli.zip",
      "relativePath" : "respect-cli/build/distributions/respect-cli.zip"
    },
    {
      "displayPath" : "respect-server-1.0.0.zip",
      "fileName" : "respect-server-1.0.0.zip",
      "relativePath" : "respect-server/build/distributions/respect-server-1.0.0.zip"
    },
    {
      "displayPath" : "respect-server-shadow-1.0.0.zip",
      "fileName" : "respect-server-shadow-1.0.0.zip",
      "relativePath" : "respect-server/build/distributions/respect-server-shadow-1.0.0.zip"
    }
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#9",
  "duration" : 186573,
  "estimatedDuration" : 181538,
  "executor" : None,
  "fullDisplayName" : "dev-classes-xapi #9",
  "id" : "9",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 9,
  "queueId" : 9408,
  "result" : "SUCCESS",
  "timestamp" : 1781615760994,
  "url" : "https://devserver3.ustadmobile.com/jenkins/job/dev-classes-xapi/9/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
        ],
        "commitId" : "0b6720adc806c6b14af08e30ca4229b006ca9905",
        "timestamp" : 1775037785000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Add StudentGrouping EditViewModel and set up its navigation route.\u000a",
        "date" : "2026-04-01 15:33:05 +0530",
        "id" : "0b6720adc806c6b14af08e30ca4229b006ca9905",
        "msg" : "Add StudentGrouping EditViewModel and set up its navigation route.",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "5494b89bcf2a543e7628395a7496a3e9e29a6dd5",
        "timestamp" : 1775043839000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : " student grouping UI and logic in class details and edit screens.\u000a",
        "date" : "2026-04-01 17:13:59 +0530",
        "id" : "5494b89bcf2a543e7628395a7496a3e9e29a6dd5",
        "msg" : "student grouping UI and logic in class details and edit screens.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "c3549242ba3868569a481a173947ed1c8421484d",
        "timestamp" : 1775110221000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Add student selection logic to `StudentGroupingEditViewModel` and validate student existence before group creation in `ClazzDetailViewModel`.\u000a",
        "date" : "2026-04-02 11:40:21 +0530",
        "id" : "c3549242ba3868569a481a173947ed1c8421484d",
        "msg" : "Add student selection logic to `StudentGroupingEditViewModel` and validate student existence before group creation in `ClazzDetailViewModel`.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
        ],
        "commitId" : "539311f3707865687ac1dbddd14c0ca270a2fda3",
        "timestamp" : 1775112036000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Remove unused whitespace in StudentGroupingEditViewModel.kt\u000a",
        "date" : "2026-04-02 12:10:36 +0530",
        "id" : "539311f3707865687ac1dbddd14c0ca270a2fda3",
        "msg" : "Remove unused whitespace in StudentGroupingEditViewModel.kt",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
        ],
        "commitId" : "4106e0e220941be2913cb96c75c68d5046bcaac5",
        "timestamp" : 1775114668000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Implement StudentGroupingDetail screen navigation and ViewModel.\u000a",
        "date" : "2026-04-02 12:54:28 +0530",
        "id" : "4106e0e220941be2913cb96c75c68d5046bcaac5",
        "msg" : "Implement StudentGroupingDetail screen navigation and ViewModel.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
        ],
        "commitId" : "94b2f8e54b0ab518002b533c05d96b4ee50089fc",
        "timestamp" : 1775125796000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update StudentGrouping viewmodels and add navigation route support.\u000a",
        "date" : "2026-04-02 15:59:56 +0530",
        "id" : "94b2f8e54b0ab518002b533c05d96b4ee50089fc",
        "msg" : "Update StudentGrouping viewmodels and add navigation route support.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/detail/StudentGroupingDetailScreen.kt"
        ],
        "commitId" : "4105c2546881df3411a26a2340d5a23f3dc782b9",
        "timestamp" : 1775650043000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Add student grouping detail and edit screens.\u000a",
        "date" : "2026-04-08 17:37:23 +0530",
        "id" : "4105c2546881df3411a26a2340d5a23f3dc782b9",
        "msg" : "Add student grouping detail and edit screens.",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/detail/StudentGroupingDetailScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
        ],
        "commitId" : "dbcefaaf9c5fee83dc4d871fb383053dd2fa57c5",
        "timestamp" : 1775650268000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Add TODO comment for xAPI compatibility in StudentGroupingEditViewModel.\u000a",
        "date" : "2026-04-08 17:41:08 +0530",
        "id" : "dbcefaaf9c5fee83dc4d871fb383053dd2fa57c5",
        "msg" : "Add TODO comment for xAPI compatibility in StudentGroupingEditViewModel.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
        ],
        "commitId" : "d326c3ea6da76c02cc08e20c74ea7fc98517399a",
        "timestamp" : 1775714709000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Add TODO comment for xAPI compatibility in StudentGroupingEditViewModel.\u000a",
        "date" : "2026-04-09 11:35:09 +0530",
        "id" : "d326c3ea6da76c02cc08e20c74ea7fc98517399a",
        "msg" : "Add TODO comment for xAPI compatibility in StudentGroupingEditViewModel.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
        ],
        "commitId" : "1da086133c045c8292e6e235b8c3627b41e4aa08",
        "timestamp" : 1776167786000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update StudentGroupingEditViewModel to track selected student names and map them to XapiAgent objects on save.\u000a",
        "date" : "2026-04-14 17:26:26 +0530",
        "id" : "1da086133c045c8292e6e235b8c3627b41e4aa08",
        "msg" : "Update StudentGroupingEditViewModel to track selected student names and map them to XapiAgent objects on save.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/subflows/admin_add_class_with_members.yaml",
          ".maestro/flows/subflows/create_account_for_class_member.yaml",
          ".maestro/flows/subflows/admin_add_app.yaml",
          ".maestro/flows/subflows/admin_add_new_student_to_class.yaml",
          ".maestro/flows/subflows/admin_add_student.yaml",
          ".maestro/flows/004_001_add_groups_to_a_class_test.yaml",
          ".maestro/flows/subflows/admin_add_new_teacher_to_class.yaml"
        ],
        "commitId" : "97ffed20c1bcac85947f6bcb50a64c308247af65",
        "timestamp" : 1776248792000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "test: add Maestro flow for adding groups to a class\u000a",
        "date" : "2026-04-15 14:26:32 +0400",
        "id" : "97ffed20c1bcac85947f6bcb50a64c308247af65",
        "msg" : "test: add Maestro flow for adding groups to a class",
        "paths" : [
          {
            "editType" : "add",
            "file" : ".maestro/flows/subflows/admin_add_class_with_members.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/subflows/create_account_for_class_member.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/subflows/admin_add_student.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/subflows/admin_add_app.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/subflows/admin_add_new_student_to_class.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/subflows/admin_add_new_teacher_to_class.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/pending_flows/004_001_add_groups_to_a_class_test.yaml",
          ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
        ],
        "commitId" : "ebf112716c881c460bbb513e75de6f5e4a4f8ad9",
        "timestamp" : 1776672730000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Move `004_001_add_groups_to_a_class_test.yaml` Maestro flow to `pending_flows`.\u000a",
        "date" : "2026-04-20 12:12:10 +0400",
        "id" : "ebf112716c881c460bbb513e75de6f5e4a4f8ad9",
        "msg" : "Move `004_001_add_groups_to_a_class_test.yaml` Maestro flow to `pending_flows`.",
        "paths" : [
          {
            "editType" : "delete",
            "file" : ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/pending_flows/004_001_add_groups_to_a_class_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/pending_flows/004_001_add_groups_to_a_class_test.yaml",
          ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
        ],
        "commitId" : "6c0cebb96bedb5f90e3dca5e4bd9f5458f7d3885",
        "timestamp" : 1776829200000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update\u000a",
        "date" : "2026-04-22 09:10:00 +0530",
        "id" : "6c0cebb96bedb5f90e3dca5e4bd9f5458f7d3885",
        "msg" : "Update",
        "paths" : [
          {
            "editType" : "delete",
            "file" : ".maestro/pending_flows/004_001_add_groups_to_a_class_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
        ],
        "commitId" : "30ed5cb4935d617f6bac4fa59ffc288c19079f79",
        "timestamp" : 1776849080000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Implement xAPI statement logging for student group creation in `StudentGroupingEditViewModel`.\u000a",
        "date" : "2026-04-22 14:41:20 +0530",
        "id" : "30ed5cb4935d617f6bac4fa59ffc288c19079f79",
        "msg" : "Implement xAPI statement logging for student group creation in `StudentGroupingEditViewModel`.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassEntity.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Clazz.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ClassAdapter.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
        ],
        "commitId" : "2366df0ff0ede0fa21b0681f2932ccb946b6fbc9",
        "timestamp" : 1777191247000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Implement student grouping creation logic in `StudentGroupingEditViewModel`.\u000a\u000a*   Update `StudentGroupingEditScreen` to handle group name changes and display validation errors.\u000a*   Extend `Clazz` model and database entities to support a `metadata` field for storing group IDs.\u000a*   Implement `onClickSave` in `StudentGroupingEditViewModel` to generate xAPI statements for group creation and update class metadata.\u000a*   Add `VERB_CREATED` and `VERB_UPDATED` constants to `XapiVerb`.\u000a*   Update navigation and UI padding for the student grouping entry point.\u000a",
        "date" : "2026-04-26 13:44:07 +0530",
        "id" : "2366df0ff0ede0fa21b0681f2932ccb946b6fbc9",
        "msg" : "Implement student grouping creation logic in `StudentGroupingEditViewModel`.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Clazz.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassEntity.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ClassAdapter.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
        ],
        "commitId" : "8b67df179867be2649f9518c6ad63a722e48b09b",
        "timestamp" : 1777193309000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update StudentGroupingDetail route to include groupId and initialize StudentGroupingDetailViewModel UI state.\u000a",
        "date" : "2026-04-26 14:18:29 +0530",
        "id" : "8b67df179867be2649f9518c6ad63a722e48b09b",
        "msg" : "Update StudentGroupingDetail route to include groupId and initialize StudentGroupingDetailViewModel UI state.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActorDao.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/detail/StudentGroupingDetailScreen.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt"
        ],
        "commitId" : "c761cf4095cd3f326241e9a6cec87a548cc5fd43",
        "timestamp" : 1777222215000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Implement student grouping features in class and group detail screens.\u000a\u000a*   Add `getGroupDetail` and `getGroupsByIds` to `XapiActorDataSource` and its database implementation.\u000a*   Update `ClazzDetailViewModel` to extract and load group details from class metadata.\u000a*   Enhance `ClazzDetailScreen` to display a list of student groups with toggle functionality.\u000a*   Implement member listing in `StudentGroupingDetailScreen` and populate it via `StudentGroupingDetailViewModel`.\u000a*   Fix route parameter naming from `guid` to `classUid` in `StudentGroupingEdit` and related logic.\u000a*   Remove unused database schema file.\u000a",
        "date" : "2026-04-26 22:20:15 +0530",
        "id" : "c761cf4095cd3f326241e9a6cec87a548cc5fd43",
        "msg" : "Implement student grouping features in class and group detail screens.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActorDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/detail/StudentGroupingDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          ".maestro/flows/004_001_add_groups_to_a_class_test.yaml",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/detail/StudentGroupingDetailScreen.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt"
        ],
        "commitId" : "e9e6de857dab8c0f31093601178212f2e46fc47b",
        "timestamp" : 1777355423000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Implement student grouping features in class and group detail screens.\u000a\u000a*   Add `getGroupDetail` and `getGroupsByIds` to `XapiActorDataSource` and its database implementation.\u000a*   Update `ClazzDetailViewModel` to extract and load group details from class metadata.\u000a*   Enhance `ClazzDetailScreen` to display a list of student groups with toggle functionality.\u000a*   Implement member listing in `StudentGroupingDetailScreen` and populate it via `StudentGroupingDetailViewModel`.\u000a*   Fix route parameter naming from `guid` to `classUid` in `StudentGroupingEdit` and related logic.\u000a*   Remove unused database schema file.\u000a",
        "date" : "2026-04-28 11:20:23 +0530",
        "id" : "e9e6de857dab8c0f31093601178212f2e46fc47b",
        "msg" : "Implement student grouping features in class and group detail screens.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/detail/StudentGroupingDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UstadExposedDropDownMenuField.kt"
        ],
        "commitId" : "e560a97fc48cb075e859a2ce5a7a60dd864db2ad",
        "timestamp" : 1777357008000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Clean up whitespace .kt\u000a",
        "date" : "2026-04-28 11:46:48 +0530",
        "id" : "e560a97fc48cb075e859a2ce5a7a60dd864db2ad",
        "msg" : "Clean up whitespace .kt",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UstadExposedDropDownMenuField.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/detail/StudentGroupingDetailScreen.kt",
          ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
        ],
        "commitId" : "0b707323022651dd67ca076de4d71db844aae397",
        "timestamp" : 1777360260000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update UI accessibility, formatting, and Maestro test flow for student grouping screens.\u000a",
        "date" : "2026-04-28 12:41:00 +0530",
        "id" : "0b707323022651dd67ca076de4d71db844aae397",
        "msg" : "Update UI accessibility, formatting, and Maestro test flow for student grouping screens.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/detail/StudentGroupingDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
        ],
        "commitId" : "af73a5819d2ba65b023bd2a63658b2ec9eedc509",
        "timestamp" : 1777360287000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update UI accessibility, formatting, and Maestro test flow for student grouping screens.\u000a",
        "date" : "2026-04-28 12:41:27 +0530",
        "id" : "af73a5819d2ba65b023bd2a63658b2ec9eedc509",
        "msg" : "Update UI accessibility, formatting, and Maestro test flow for student grouping screens.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/subflows/admin_add_class_with_members.yaml",
          ".maestro/flows/subflows/create_account_for_class_member.yaml",
          ".maestro/flows/subflows/admin_add_new_student_to_class.yaml",
          ".maestro/flows/004_001_add_groups_to_a_class_test.yaml",
          ".maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml",
          ".maestro/flows/subflows/admin_add_new_teacher_to_class.yaml",
          ".maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml"
        ],
        "commitId" : "ec17435e737f2e5ff469c5681861b4f0d645deb9",
        "timestamp" : 1777381032000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Update Maestro flows to rename \"New Class\" to \"TestClass\" and remove redundant navigation steps in subflows.\u000a",
        "date" : "2026-04-28 16:57:12 +0400",
        "id" : "ec17435e737f2e5ff469c5681861b4f0d645deb9",
        "msg" : "Update Maestro flows to rename \"New Class\" to \"TestClass\" and remove redundant navigation steps in subflows.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/subflows/admin_add_new_student_to_class.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/subflows/create_account_for_class_member.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/subflows/admin_add_class_with_members.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/subflows/admin_add_new_teacher_to_class.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/subflows/admin_add_app_and_teacher.yaml"
        ],
        "commitId" : "eb795da46390b888393523376c140d016f56d680",
        "timestamp" : 1777383345000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Update Maestro subflow `admin_add_app_and_teacher.yaml` to change the class name from \"New Class\" to \"TestClass\" across all steps and assertions.\u000a",
        "date" : "2026-04-28 17:35:45 +0400",
        "id" : "eb795da46390b888393523376c140d016f56d680",
        "msg" : "Update Maestro subflow `admin_add_app_and_teacher.yaml` to change the class name from \"New Class\" to \"TestClass\" across all steps and assertions.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/subflows/admin_add_app_and_teacher.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/detail/StudentGroupingDetailScreen.kt"
        ],
        "commitId" : "7e65e026ebcb6c8a380c689b5c3ad33e7cb97aec",
        "timestamp" : 1777445221000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Implement group deletion in `StudentGroupingDetailScreen`.\u000a\u000a* Added a delete confirmation dialog to `StudentGroupingDetailScreen` using `RespectBasicAlertDialog`.\u000a* Implemented `onClickDeleteGroup`, `onDismissDeleteGroupDialog`, and `onConfirmDeleteGroup` logic in `StudentGroupingDetailViewModel`.\u000a* Integrated xAPI statement generation for the \"deleted\" verb when a group is removed.\u000a* Updated `StudentGroupingEditViewModel` to correctly use the \"updated\" xAPI verb when modifying existing groups.\u000a* Added `VERB_DELETED` constant and new string resources for deletion UI.\u000a",
        "date" : "2026-04-29 12:17:01 +0530",
        "id" : "7e65e026ebcb6c8a380c689b5c3ad33e7cb97aec",
        "msg" : "Implement group deletion in `StudentGroupingDetailScreen`.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/detail/StudentGroupingDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
        ],
        "commitId" : "1e2e689cdb4a71f37aca7ba431a43454ec01b188",
        "timestamp" : 1777447803000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update class data loading and group handling in StudentGroupingDetailViewModel and ClazzDetailViewModel.\u000a",
        "date" : "2026-04-29 13:00:03 +0530",
        "id" : "1e2e689cdb4a71f37aca7ba431a43454ec01b188",
        "msg" : "Update class data loading and group handling in StudentGroupingDetailViewModel and ClazzDetailViewModel.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
        ],
        "commitId" : "5f0577133a8ad55e20ad80b3f2c47489ec64594c",
        "timestamp" : 1777448104000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Update Maestro flow `004_001_add_groups_to_a_class_test.yaml` to include assertions for student counts and group deletion dialogs, and remove the redundant `admin_add_app` subflow.\u000a",
        "date" : "2026-04-29 11:35:04 +0400",
        "id" : "5f0577133a8ad55e20ad80b3f2c47489ec64594c",
        "msg" : "Update Maestro flow `004_001_add_groups_to_a_class_test.yaml` to include assertions for student counts and group deletion dialogs, and remove the redundant `admin_add_app` subflow.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/detail/StudentGroupingDetailScreen.kt"
        ],
        "commitId" : "30147816f76f1a672932019d08a5ccfacfa567a2",
        "timestamp" : 1777449901000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update ClazzDetail and StudentGroupingDetail screens to show member avatars and counts.\u000a",
        "date" : "2026-04-29 13:35:01 +0530",
        "id" : "30147816f76f1a672932019d08a5ccfacfa567a2",
        "msg" : "Update ClazzDetail and StudentGroupingDetail screens to show member avatars and counts.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/detail/StudentGroupingDetailScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
        ],
        "commitId" : "18a810fa970954f664287d76525cb45d2929ef20",
        "timestamp" : 1777451572000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update ClazzDetail and StudentGroupingDetail screens to show member avatars and counts.\u000a",
        "date" : "2026-04-29 14:02:52 +0530",
        "id" : "18a810fa970954f664287d76525cb45d2929ef20",
        "msg" : "Update ClazzDetail and StudentGroupingDetail screens to show member avatars and counts.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
        ],
        "commitId" : "c99f5b0e218156343d433ef18174095aa35c9700",
        "timestamp" : 1777451779000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update ClazzDetail and StudentGroupingDetail screens to show member avatars and counts.\u000a",
        "date" : "2026-04-29 14:06:19 +0530",
        "id" : "c99f5b0e218156343d433ef18174095aa35c9700",
        "msg" : "Update ClazzDetail and StudentGroupingDetail screens to show member avatars and counts.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
        ],
        "commitId" : "03302b5ac0d35426a0e5bdd29e83e0a0dcc096ba",
        "timestamp" : 1777453143000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Correct the assertion text in the Maestro flow `004_001_add_groups_to_a_class_test.yaml` to verify the \"Permanently delete this group\" message instead of \"playlist\".\u000a",
        "date" : "2026-04-29 12:59:03 +0400",
        "id" : "03302b5ac0d35426a0e5bdd29e83e0a0dcc096ba",
        "msg" : "Correct the assertion text in the Maestro flow `004_001_add_groups_to_a_class_test.yaml` to verify the \"Permanently delete this group\" message instead of \"playlist\".",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt"
        ],
        "commitId" : "47d77de7137b929b866dff94133687f9a1930cc3",
        "timestamp" : 1777460558000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update xAPI model imports and switch to `xapiStatementsResource.post` for storing statements.\u000a",
        "date" : "2026-04-29 16:32:38 +0530",
        "id" : "47d77de7137b929b866dff94133687f9a1930cc3",
        "msg" : "Update xAPI model imports and switch to `xapiStatementsResource.post` for storing statements.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt",
          "respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiGroup.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt"
        ],
        "commitId" : "f998ba3d302b7bc240cb08975dff02e299c7d6e2",
        "timestamp" : 1777899592000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor student grouping to use GUIDs for member identification and simplify xAPI statement logic.\u000a\u000a- Update `StudentGroupingEditViewModel` to track selected students by `Person` objects and GUIDs instead of names.\u000a- Switch xAPI verbs from `VERB_CREATED`/`VERB_UPDATED` to `VERB_SAVED`, and `VERB_DELETED` to `VERB_VOIDED`.\u000a- Enhance the xAPI statement context to include the parent class activity ID.\u000a- Remove redundant class metadata updates when saving groups, relying on the xAPI stream instead.\u000a- Update `StudentGroupingEditScreen` to verify student selection status using GUIDs.\u000a- Add a `CLASS` constant to `XapiGroup` for URI construction.\u000a",
        "date" : "2026-05-04 18:29:52 +0530",
        "id" : "f998ba3d302b7bc240cb08975dff02e299c7d6e2",
        "msg" : "Refactor student grouping to use GUIDs for member identification and simplify xAPI statement logic.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiGroup.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "7ba9aa21334d551eaae4d92c89e51123cef393d5",
        "timestamp" : 1777914633000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update `ClazzDetailViewModel` to fetch student groups from xAPI statements instead of metadata and fix a column name in `XapiStatementEntityDao` queries(The statementVerbId is a String (the URL), and statementVerbUid is a Long (the hashed UID). The query is comparing statementVerbId (String) with :verbUid parameter (which is being passed as a Long from the hash).)\u000a",
        "date" : "2026-05-04 22:40:33 +0530",
        "id" : "7ba9aa21334d551eaae4d92c89e51123cef393d5",
        "msg" : "Update `ClazzDetailViewModel` to fetch student groups from xAPI statements instead of metadata and fix a column name in `XapiStatementEntityDao` queries(The statementVerbId is a String (the URL), and statementVerbUid is a Long (the hashed UID). The query is comparing statementVerbId (String) with :verbUid parameter (which is being passed as a Long from the hash).)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt"
        ],
        "commitId" : "be19ae825c6ce4d1fa1a0ad725bfe77215efa92b",
        "timestamp" : 1777960782000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor group data fetching to use xAPI statements via flows across `ClazzDetail`, `StudentGroupingDetail`, and `StudentGroupingEdit` view models.\u000a\u000a- Update `ClazzDetailViewModel` to observe groups from xAPI statements as a flow using `observeGroupsFromXapi`.\u000a- Update `StudentGroupingDetailViewModel` and `StudentGroupingEditViewModel` to retrieve group details by filtering statements associated with a specific class activity ID.\u000a- Remove deprecated group-related methods from `XapiActorDataSourceDb`.\u000a- Adjust `StudentGroupingDetailUiState` to remove the direct `Clazz` dependency.\u000a- Standardize on `DataLoadParams` from `world.respect.lib.dataloadstate`.\u000a",
        "date" : "2026-05-05 11:29:42 +0530",
        "id" : "be19ae825c6ce4d1fa1a0ad725bfe77215efa92b",
        "msg" : "Refactor group data fetching to use xAPI statements via flows across `ClazzDetail`, `StudentGroupingDetail`, and `StudentGroupingEdit` view models.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
        ],
        "commitId" : "c81f70d7dffbc618b1a544ffa995be1c2cded021",
        "timestamp" : 1777965939000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Implement group deletion by voiding the corresponding xAPI statement in `StudentGroupingDetailViewModel`.\u000a\u000a- Add `statementId` to `StudentGroupingDetailUiState`.\u000a- Update `onConfirmDeleteGroup` to post a `VERB_VOIDED` statement referencing the original group statement.\u000a- Update data loading logic to filter out voided statements when fetching the group detail.\u000a- Remove obsolete debug logs in `ClazzDetailViewModel`.\u000a",
        "date" : "2026-05-05 12:55:39 +0530",
        "id" : "c81f70d7dffbc618b1a544ffa995be1c2cded021",
        "msg" : "Implement group deletion by voiding the corresponding xAPI statement in `StudentGroupingDetailViewModel`.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
        ],
        "commitId" : "b76f911a932971cca634461f9dd0ce98861eb5de",
        "timestamp" : 1777966929000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Implement logic in `StudentGroupingDetailViewModel` to dynamically find and void the correct xAPI statement when deleting a group by matching the `groupId`.\u000a",
        "date" : "2026-05-05 13:12:09 +0530",
        "id" : "b76f911a932971cca634461f9dd0ce98861eb5de",
        "msg" : "Implement logic in `StudentGroupingDetailViewModel` to dynamically find and void the correct xAPI statement when deleting a group by matching the `groupId`.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
        ],
        "commitId" : "b79334ddaf924bd794ad7d7c5cd1dd37966debcc",
        "timestamp" : 1777967877000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update group deletion logic to use `statementGroupId` from UI state and implement voided statement filtering in `ClazzDetailViewModel`.\u000a",
        "date" : "2026-05-05 13:27:57 +0530",
        "id" : "b79334ddaf924bd794ad7d7c5cd1dd37966debcc",
        "msg" : "Update group deletion logic to use `statementGroupId` from UI state and implement voided statement filtering in `ClazzDetailViewModel`.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt"
        ],
        "commitId" : "1465c6ea4e58065d45ed4185d6663288b9ca61ec",
        "timestamp" : 1777984688000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Simplify xAPI statement handling by removing manual voided statement filtering in `ClazzDetailViewModel` and stripping redundant try-catch blocks and UI state updates in student grouping ViewModels.\u000a",
        "date" : "2026-05-05 18:08:08 +0530",
        "id" : "1465c6ea4e58065d45ed4185d6663288b9ca61ec",
        "msg" : "Simplify xAPI statement handling by removing manual voided statement filtering in `ClazzDetailViewModel` and stripping redundant try-catch blocks and UI state updates in student grouping ViewModels.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "30b418c762d16bffc7a8c22afe51e2b582a2201c",
        "timestamp" : 1778047731000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Add `statementId` to student grouping navigation routes and update associated ViewModels to track and pass xAPI statement identifiers.\u000a\u000aSpecific changes:\u000a* Add optional `statementId` parameter to the `StudentGroupingDetail` route.\u000a* Update `ClazzDetailViewModel` to extract `statementId` from xAPI statements and pass it when navigating to group details.\u000a* Update `StudentGroupingEditViewModel` to store the `statementId` from existing groups and include it in navigation commands.\u000a* Include `statementId` in `GroupDisplayData` and UI states for better tracking of group-related xAPI statements.\u000a* Add debug logging for group and statement identifiers across Clazz Detail, Student Grouping Detail, and Edit screens.\u000a",
        "date" : "2026-05-06 11:38:51 +0530",
        "id" : "30b418c762d16bffc7a8c22afe51e2b582a2201c",
        "msg" : "Add `statementId` to student grouping navigation routes and update associated ViewModels to track and pass xAPI statement identifiers.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
        ],
        "commitId" : "fe27bd6632e551978700e8d6748fe0b20d922778",
        "timestamp" : 1778051894000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Implement xAPI statement voiding when updating a student group in `StudentGroupingEditViewModel`. When editing an existing group, a voiding statement is sent for the old statement ID before posting the updated group information as a new statement.\u000a",
        "date" : "2026-05-06 12:48:14 +0530",
        "id" : "fe27bd6632e551978700e8d6748fe0b20d922778",
        "msg" : "Implement xAPI statement voiding when updating a student group in `StudentGroupingEditViewModel`. When editing an existing group, a voiding statement is sent for the old statement ID before posting the updated group information as a new statement.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "30117f6fdb41952aeee25aa4c969587ff77923b3",
        "timestamp" : 1778052038000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Remove debug logging from `ClazzDetailViewModel` and `StudentGroupingEditViewModel`.\u000a",
        "date" : "2026-05-06 12:50:38 +0530",
        "id" : "30117f6fdb41952aeee25aa4c969587ff77923b3",
        "msg" : "Remove debug logging from `ClazzDetailViewModel` and `StudentGroupingEditViewModel`.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
        ],
        "commitId" : "11a551bd4e8d3d174fb8ad0c741a17645458553e",
        "timestamp" : 1778053433000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update `ClazzDetailViewModel`, `StudentGroupingDetailViewModel`, and `StudentGroupingEditViewModel` to filter out voided xAPI statements when retrieving groups.\u000a",
        "date" : "2026-05-06 13:13:53 +0530",
        "id" : "11a551bd4e8d3d174fb8ad0c741a17645458553e",
        "msg" : "Update `ClazzDetailViewModel`, `StudentGroupingDetailViewModel`, and `StudentGroupingEditViewModel` to filter out voided xAPI statements when retrieving groups.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "e2640a32498a18e7b559270b070601fbe44e8d98",
        "timestamp" : 1778053509000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update `ClazzDetailViewModel`, `StudentGroupingDetailViewModel`, and `StudentGroupingEditViewModel` to filter out voided xAPI statements when retrieving groups.\u000a",
        "date" : "2026-05-06 13:15:09 +0530",
        "id" : "e2640a32498a18e7b559270b070601fbe44e8d98",
        "msg" : "Update `ClazzDetailViewModel`, `StudentGroupingDetailViewModel`, and `StudentGroupingEditViewModel` to filter out voided xAPI statements when retrieving groups.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
        ],
        "commitId" : "3bc78c66189998462c4828aec18cb72266b2406c",
        "timestamp" : 1778060173000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Simplify xAPI statement retrieval by using timestamps to identify the latest group state and refactor `StudentGroupingDetailViewModel` to inject `NavResultReturner` via the constructor.\u000a",
        "date" : "2026-05-06 15:06:13 +0530",
        "id" : "3bc78c66189998462c4828aec18cb72266b2406c",
        "msg" : "Simplify xAPI statement retrieval by using timestamps to identify the latest group state and refactor `StudentGroupingDetailViewModel` to inject `NavResultReturner` via the constructor.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "55392bf9c408c8d50c9b1b326e58defaaf48fbb0",
        "timestamp" : 1778060753000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor `ClazzDetailViewModel.kt` to improve code formatting and update enrollment removal logic to mark records as `TO_BE_DELETED` if they were created on the current day.\u000a",
        "date" : "2026-05-06 15:15:53 +0530",
        "id" : "55392bf9c408c8d50c9b1b326e58defaaf48fbb0",
        "msg" : "Refactor `ClazzDetailViewModel.kt` to improve code formatting and update enrollment removal logic to mark records as `TO_BE_DELETED` if they were created on the current day.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
        ],
        "commitId" : "7089f572a2e4338cbf85a73e3f68ca418ffef78b",
        "timestamp" : 1778061683000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Clean up whitespace in `StudentGroupingDetailViewModel.kt`.\u000a",
        "date" : "2026-05-06 15:31:23 +0530",
        "id" : "7089f572a2e4338cbf85a73e3f68ca418ffef78b",
        "msg" : "Clean up whitespace in `StudentGroupingDetailViewModel.kt`.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActorDao.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassEntity.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ClassAdapter.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Clazz.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UstadExposedDropDownMenuField.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/detail/StudentGroupingDetailScreen.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt"
        ],
        "commitId" : "5288f96e0bf0b655131f9b961f95396d0e7adad7",
        "timestamp" : 1778064553000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Implement xAPI group deletion and refine the student grouping data model.\u000a\u000a- Implement `onConfirmDeleteGroup` in `StudentGroupingDetailViewModel` using xAPI `VOIDED` statements.\u000a- Update `StudentGroupingDetailUiState` to include the selected account and helper properties for person name and ID.\u000a- Remove unused `metadata` field and related `GROUP_IDS` constant from the `Clazz` model and `ClassEntity` database schema.\u000a- Fix a bug in `XapiStatementEntityDao` and `XapiStatementEntityJsonDao` where `statementVerbId` was incorrectly referenced as `statementVerbUid`.\u000a- Clean up UI code in `StudentGroupingEditScreen` and `StudentGroupingDetailScreen`, including improved paging keys and formatting.\u000a- Remove the unused `findGroupByAccountNameAsync` from `XapiActorDao`.\u000a- Define `SAVED` and `VOIDED` display constants in `XapiVerb`.\u000a",
        "date" : "2026-05-06 16:19:13 +0530",
        "id" : "5288f96e0bf0b655131f9b961f95396d0e7adad7",
        "msg" : "Implement xAPI group deletion and refine the student grouping data model.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ClassAdapter.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UstadExposedDropDownMenuField.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Clazz.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/detail/StudentGroupingDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassEntity.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActorDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiGroup.kt"
        ],
        "commitId" : "1c842b5af1e1e2f61121758243b8b6c49d791ef9",
        "timestamp" : 1778067035000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Relocate the `isIdentified` property within `XapiGroup.kt` and remove trailing whitespace.\u000a",
        "date" : "2026-05-06 17:00:35 +0530",
        "id" : "1c842b5af1e1e2f61121758243b8b6c49d791ef9",
        "msg" : "Relocate the `isIdentified` property within `XapiGroup.kt` and remove trailing whitespace.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiGroup.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
        ],
        "commitId" : "c284dc329e847b6f2a932ca1bb931e97d49b15a8",
        "timestamp" : 1778070302000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update `StudentGroupingDetailViewModel` and `StudentGroupingEditViewModel` to support direct xAPI statement lookups and explicit statement ID generation.\u000a\u000a- Update `StudentGroupingDetailViewModel` to query xAPI statements by `statementId` if available in the route, falling back to verb and activity filters.\u000a- Modify `StudentGroupingEditViewModel` to pre-generate a `Uuid` for new xAPI statements and pass it to the `StudentGroupingDetail` navigation route.\u000a",
        "date" : "2026-05-06 17:55:02 +0530",
        "id" : "c284dc329e847b6f2a932ca1bb931e97d49b15a8",
        "msg" : "Update `StudentGroupingDetailViewModel` and `StudentGroupingEditViewModel` to support direct xAPI statement lookups and explicit statement ID generation.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
        ],
        "commitId" : "cdd5bc05dcafa8d489d1e27737e4006c20e8caab",
        "timestamp" : 1778072049000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor xAPI statement retrieval and fix database DAO inconsistencies.\u000a\u000a- Simplify `loadGroupDetail` in `StudentGroupingDetailViewModel` to query by verb and activity only, removing direct lookup by statement ID.\u000a- Fix a bug in `XapiStatementEntityDao` and `XapiStatementEntityJsonDao` where `statementVerbId` was incorrectly used instead of `statementVerbUid`.\u000a- Clean up indentation and code formatting in `StudentGroupingEditViewModel`.\u000a- In `StudentGroupingEditViewModel`, remove manual statement ID generation and rely on the model-generated ID for navigation.\u000a- Remove unused `Uuid` import in `StudentGroupingDetailViewModel`.\u000a",
        "date" : "2026-05-06 18:24:09 +0530",
        "id" : "cdd5bc05dcafa8d489d1e27737e4006c20e8caab",
        "msg" : "Refactor xAPI statement retrieval and fix database DAO inconsistencies.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/detail/StudentGroupingDetailScreen.kt"
        ],
        "commitId" : "aca36a84f1ecfd5ff2c8fea402a3cf24e2120013",
        "timestamp" : 1778079920000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Clean up code formatting and simplify comments.\u000a\u000a- Remove unnecessary empty line in `StudentGroupingDetailScreen.kt`.\u000a- Simplify the comment explaining the xAPI statement sorting logic in `ClazzDetailViewModel.kt`.\u000a",
        "date" : "2026-05-06 20:35:20 +0530",
        "id" : "aca36a84f1ecfd5ff2c8fea402a3cf24e2120013",
        "msg" : "Clean up code formatting and simplify comments.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/detail/StudentGroupingDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
        ],
        "commitId" : "0f831ad9493d387cf46c2a8fb465f6568b0da435",
        "timestamp" : 1778147025000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor `StudentGroupingDetailViewModel` and `StudentGroupingEditViewModel` to streamline account data handling and improve xAPI statement creation.\u000a\u000a- Remove `selectedAccount` and helper properties from `StudentGroupingDetailUiState` and `StudentGroupingEditUiState`.\u000a- Fetch the person data directly from `respectAccountManager.selectedAccountAndPersonFlow` when needed for xAPI statements.\u000a- Replace `viewModelScope.launch` with `launchWithLoadingIndicator` in `onConfirmDeleteGroup` and `onSaveGroup`.\u000a- Clean up the `StudentGroupingEditViewModel` initialization by removing the manual collection of the account flow.\u000a- Format navigation logic in `StudentGroupingEditViewModel` for better readability.\u000a",
        "date" : "2026-05-07 15:13:45 +0530",
        "id" : "0f831ad9493d387cf46c2a8fb465f6568b0da435",
        "msg" : "Refactor `StudentGroupingDetailViewModel` and `StudentGroupingEditViewModel` to streamline account data handling and improve xAPI statement creation.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml",
          ".maestro/flows-disable/003_admin_user_assigns_assignment_to_a_class_test.yaml"
        ],
        "commitId" : "b06e5a9c1367f33459a2e63ab62ffe1f3b9562dd",
        "timestamp" : 1778498164000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "flow 003 moved to disabled flow folder\u000a",
        "date" : "2026-05-11 16:46:04 +0530",
        "id" : "b06e5a9c1367f33459a2e63ab62ffe1f3b9562dd",
        "msg" : "flow 003 moved to disabled flow folder",
        "paths" : [
          {
            "editType" : "delete",
            "file" : ".maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows-disable/003_admin_user_assigns_assignment_to_a_class_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows-disable/003_admin_user_assigns_assignment_to_a_class_test.yaml"
        ],
        "commitId" : "98c538d4013d2fb824a0b81e8b525357e1b0ef7c",
        "timestamp" : 1778667647000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Merge dev xapi\u000a",
        "date" : "2026-05-13 15:50:47 +0530",
        "id" : "98c538d4013d2fb824a0b81e8b525357e1b0ef7c",
        "msg" : "Merge dev xapi",
        "paths" : [
          {
            "editType" : "delete",
            "file" : ".maestro/flows-disable/003_admin_user_assigns_assignment_to_a_class_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "1c2be5cfb15d36d6f8ae879154ae70144892782e",
        "timestamp" : 1778667801000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Clean up unused imports and string resources in `ClazzDetailScreen.kt`.\u000a",
        "date" : "2026-05-13 15:53:21 +0530",
        "id" : "1c2be5cfb15d36d6f8ae879154ae70144892782e",
        "msg" : "Clean up unused imports and string resources in `ClazzDetailScreen.kt`.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "cde8afe08eb19b0c097c5eb0b3ee82ed94afbd5e",
        "timestamp" : 1778743534000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Clean up unused imports and string resources in `ClazzDetailScreen.kt`.\u000a",
        "date" : "2026-05-14 12:55:34 +0530",
        "id" : "cde8afe08eb19b0c097c5eb0b3ee82ed94afbd5e",
        "msg" : "Clean up unused imports and string resources in `ClazzDetailScreen.kt`.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/subflows/admin_add_new_teacher_to_class.yaml"
        ],
        "commitId" : "ef75ce6a0b78f71e1da40ea165ec962bb1f8468e",
        "timestamp" : 1778747039000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update the Maestro subflow for adding a new teacher to a class by removing redundant steps to select the user role.\u000a",
        "date" : "2026-05-14 13:53:59 +0530",
        "id" : "ef75ce6a0b78f71e1da40ea165ec962bb1f8468e",
        "msg" : "Update the Maestro subflow for adding a new teacher to a class by removing redundant steps to select the user role.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/subflows/admin_add_new_teacher_to_class.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_003_login_using_school_link_test.yaml",
          ".maestro/flows-test/001_005_add_school_self_registration_test.yaml",
          ".maestro/flows/001_005_add_school_self_registration_test.yaml",
          ".maestro/flows-test/001_002_add_user_direct_test.yaml",
          ".maestro/flows/002_browse_lessons_test.yaml",
          ".maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml",
          ".maestro/flows-test/002_browse_lessons_test.yaml",
          ".maestro/flows-test/001_003_login_using_school_link_test.yaml",
          ".maestro/flows/001_002_add_user_direct_test.yaml",
          ".maestro/flows-test/001_001_invite_users_using_qr_code_or_link_test.yaml"
        ],
        "commitId" : "3851c96810f424388bd3147b31d71550bfe6515a",
        "timestamp" : 1778751243000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Relocate Maestro flow test files from `.maestro/flows/` to `.maestro/flows-test/`.\u000a\u000aTesting single test\u000a",
        "date" : "2026-05-14 15:04:03 +0530",
        "id" : "3851c96810f424388bd3147b31d71550bfe6515a",
        "msg" : "Relocate Maestro flow test files from `.maestro/flows/` to `.maestro/flows-test/`.",
        "paths" : [
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_002_add_user_direct_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_003_login_using_school_link_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_005_add_school_self_registration_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows-test/001_005_add_school_self_registration_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows-test/002_browse_lessons_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows-test/001_002_add_user_direct_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows-test/001_001_invite_users_using_qr_code_or_link_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows-test/001_003_login_using_school_link_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/002_browse_lessons_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows-test/001_005_add_school_self_registration_test.yaml",
          ".maestro/flows/001_003_login_using_school_link_test.yaml",
          ".maestro/flows-test/001_002_add_user_direct_test.yaml",
          ".maestro/flows/002_browse_lessons_test.yaml",
          ".maestro/flows/001_005_add_school_self_registration_test.yaml",
          ".maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml",
          ".maestro/flows-test/002_browse_lessons_test.yaml",
          ".maestro/flows-test/001_003_login_using_school_link_test.yaml",
          ".maestro/flows-test/001_001_invite_users_using_qr_code_or_link_test.yaml",
          ".maestro/flows/001_002_add_user_direct_test.yaml"
        ],
        "commitId" : "08f0bc6704852a5164543746b10806d21e6ad406",
        "timestamp" : 1778751818000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Move Maestro flow test files from `.maestro/flows-test/` to `.maestro/flows/`.\u000a",
        "date" : "2026-05-14 15:13:38 +0530",
        "id" : "08f0bc6704852a5164543746b10806d21e6ad406",
        "msg" : "Move Maestro flow test files from `.maestro/flows-test/` to `.maestro/flows/`.",
        "paths" : [
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows-test/002_browse_lessons_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows-test/001_005_add_school_self_registration_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_003_login_using_school_link_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows-test/001_003_login_using_school_link_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows-test/001_002_add_user_direct_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows-test/001_001_invite_users_using_qr_code_or_link_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_002_add_user_direct_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/002_browse_lessons_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_005_add_school_self_registration_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt"
        ],
        "commitId" : "04cc63c27b525bc12798a8f897fccd841f451d71",
        "timestamp" : 1779163355000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Passing only groupId to the Student grouping detail .\u000aThrowing exception if the school Url is null/inappropriate\u000aRemoved the Verb string\u000a",
        "date" : "2026-05-19 09:32:35 +0530",
        "id" : "04cc63c27b525bc12798a8f897fccd841f451d71",
        "msg" : "Passing only groupId to the Student grouping detail .",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/detail/StudentGroupingDetailScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "bae9575d2e7be4ea90fb1e26e3223bc4009c4da6",
        "timestamp" : 1779164429000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update `ClazzDetailViewModel` and its UI to represent groups directly as `XapiGroup` objects rather than xAPI statements.\u000a",
        "date" : "2026-05-19 09:50:29 +0530",
        "id" : "bae9575d2e7be4ea90fb1e26e3223bc4009c4da6",
        "msg" : "Update `ClazzDetailViewModel` and its UI to represent groups directly as `XapiGroup` objects rather than xAPI statements.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/detail/StudentGroupingDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/detail/StudentGroupingDetailScreen.kt"
        ],
        "commitId" : "2f87259c2279d55f85a9dbb875c6eba01ecec319",
        "timestamp" : 1779165917000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update UI and state management for student groupings in `ClazzDetailScreen` and `StudentGroupingDetailScreen`.\u000a",
        "date" : "2026-05-19 10:15:17 +0530",
        "id" : "2f87259c2279d55f85a9dbb875c6eba01ecec319",
        "msg" : "Update UI and state management for student groupings in `ClazzDetailScreen` and `StudentGroupingDetailScreen`.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/detail/StudentGroupingDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "49d5618d2324fed67944714a6c66c21b899f58de",
        "timestamp" : 1779167767000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor `ClazzDetailScreen.kt` and `StudentGroupingEditScreen.kt` to improve list performance and error handling.\u000a",
        "date" : "2026-05-19 10:46:07 +0530",
        "id" : "49d5618d2324fed67944714a6c66c21b899f58de",
        "msg" : "Refactor `ClazzDetailScreen.kt` and `StudentGroupingEditScreen.kt` to improve list performance and error handling.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt"
        ],
        "commitId" : "07a352d6586dff8e2b0d34bafa70bf5de9554551",
        "timestamp" : 1779167840000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor `ClazzDetailScreen.kt` and `StudentGroupingEditScreen.kt` to improve list performance and error handling.\u000a",
        "date" : "2026-05-19 10:47:20 +0530",
        "id" : "07a352d6586dff8e2b0d34bafa70bf5de9554551",
        "msg" : "Refactor `ClazzDetailScreen.kt` and `StudentGroupingEditScreen.kt` to improve list performance and error handling.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "8d45259b6908057fd1ddebf6773b3d636fe4fa8f",
        "timestamp" : 1779174109000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor `ClazzDetailScreen.kt` and `ClazzDetailViewModel.kt` to improve group ID validation and filter out groups with null account names.\u000a",
        "date" : "2026-05-19 12:31:49 +0530",
        "id" : "8d45259b6908057fd1ddebf6773b3d636fe4fa8f",
        "msg" : "Refactor `ClazzDetailScreen.kt` and `ClazzDetailViewModel.kt` to improve group ID validation and filter out groups with null account names.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/002_browse_lessons_test.yaml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          ".maestro/flows/subflows/admin_add_app.yaml"
        ],
        "commitId" : "7ed76169eeb9387064c7f35410467cbe364a0a2d",
        "timestamp" : 1779181547000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update `ClazzDetailViewModel` to include groups with null account names and update Maestro flow assertions to use \"Example Web App\" and \"Examples\" labels.\u000a",
        "date" : "2026-05-19 14:35:47 +0530",
        "id" : "7ed76169eeb9387064c7f35410467cbe364a0a2d",
        "msg" : "Update `ClazzDetailViewModel` to include groups with null account names and update Maestro flow assertions to use \"Example Web App\" and \"Examples\" labels.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/subflows/admin_add_app.yaml"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/002_browse_lessons_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "c6dee1e5ab71a4595e2568c6d29ac442826472b6",
        "timestamp" : 1779182286000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor `ClazzDetailViewModel.kt` to clean up formatting and whitespace.\u000a",
        "date" : "2026-05-19 14:48:06 +0530",
        "id" : "c6dee1e5ab71a4595e2568c6d29ac442826472b6",
        "msg" : "Refactor `ClazzDetailViewModel.kt` to clean up formatting and whitespace.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiStatementExt.kt"
        ],
        "commitId" : "a93d8f58578f169f9b72317be29708607c910dcf",
        "timestamp" : 1779188387000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Introduce `XapiStatementExt.kt` to centralize xAPI helper functions and refactor student grouping ViewModels.\u000a",
        "date" : "2026-05-19 16:29:47 +0530",
        "id" : "a93d8f58578f169f9b72317be29708607c910dcf",
        "msg" : "Introduce `XapiStatementExt.kt` to centralize xAPI helper functions and refactor student grouping ViewModels.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiStatementExt.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiStatementExt.kt"
        ],
        "commitId" : "a47996dd06f5d2dcd1a6235ca362a94347fdaf01",
        "timestamp" : 1779189193000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Remove unused `SchoolDataSource` import in `XapiStatementExt.kt`.\u000a",
        "date" : "2026-05-19 16:43:13 +0530",
        "id" : "a47996dd06f5d2dcd1a6235ca362a94347fdaf01",
        "msg" : "Remove unused `SchoolDataSource` import in `XapiStatementExt.kt`.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiStatementExt.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "fd555e517d67bb2433e8ab75b059c60ba5b8cf77",
        "timestamp" : 1779269505000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Remove unused `SchoolDataSource` import in `XapiStatementExt.kt`.\u000a",
        "date" : "2026-05-20 15:01:45 +0530",
        "id" : "fd555e517d67bb2433e8ab75b059c60ba5b8cf77",
        "msg" : "Remove unused `SchoolDataSource` import in `XapiStatementExt.kt`.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "e686becd21c74ffff565a458fe7d198a258e71e8",
        "timestamp" : 1779270546000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update group filtering logic in `ClazzDetailViewModel.kt` to handle null timestamps and ensure distinct groups are correctly mapped from xAPI statements.\u000a",
        "date" : "2026-05-20 15:19:06 +0530",
        "id" : "e686becd21c74ffff565a458fe7d198a258e71e8",
        "msg" : "Update group filtering logic in `ClazzDetailViewModel.kt` to handle null timestamps and ensure distinct groups are correctly mapped from xAPI statements.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiStatementExt.kt"
        ],
        "commitId" : "ebd422f539efa51cb39987b2eb0cc9b11acce039",
        "timestamp" : 1779277742000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Remove `XapiStatementExt.kt` and inline xAPI agent and statement creation logic within `StudentGroupingDetailViewModel` and `StudentGroupingEditViewModel`. Use `xapiAgent` directly from the selected account session and manually construct `XapiStatement` and `XapiAgent` objects for group management and voiding operations.\u000a",
        "date" : "2026-05-20 17:19:02 +0530",
        "id" : "ebd422f539efa51cb39987b2eb0cc9b11acce039",
        "msg" : "Remove `XapiStatementExt.kt` and inline xAPI agent and statement creation logic within `StudentGroupingDetailViewModel` and `StudentGroupingEditViewModel`. Use `xapiAgent` directly from the selected account session and manually construct `XapiStatement` and `XapiAgent` objects for group management and voiding operations.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiStatementExt.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "b3324ae44944ea82456668a43d5eca3c858bd1b2",
        "timestamp" : 1779278331000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Remove unnecessary empty lines in `ClazzDetailViewModel.kt`.\u000a",
        "date" : "2026-05-20 17:28:51 +0530",
        "id" : "b3324ae44944ea82456668a43d5eca3c858bd1b2",
        "msg" : "Remove unnecessary empty lines in `ClazzDetailViewModel.kt`.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "b8a2ca238c859dfde5d3b59a90a47617b74eeb03",
        "timestamp" : 1779279235000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Apply minor formatting and whitespace adjustments to `ClazzDetailViewModel.kt`.\u000a",
        "date" : "2026-05-20 17:43:55 +0530",
        "id" : "b8a2ca238c859dfde5d3b59a90a47617b74eeb03",
        "msg" : "Apply minor formatting and whitespace adjustments to `ClazzDetailViewModel.kt`.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "129ac91e8fef8241b6904a66183ea6ab8067e7be",
        "timestamp" : 1779293146000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Improve error handling and data robustness in student grouping view models and screens.\u000a\u000a- Add `Napier` logging and replace potential crashes with safe checks and early returns in `StudentGroupingDetailViewModel`, `ClazzDetailViewModel`, and `StudentGroupingEditViewModel`.\u000a- Refactor `StudentGroupingEditState` to calculate `selectedStudentIds` dynamically from the student list.\u000a- Enhance group filtering and mapping logic in `ClazzDetailViewModel` to handle missing group/member data gracefully.\u000a- Update UI components in `StudentGroupingEditScreen` and `ClazzDetailScreen` to safely handle null items and improve key mapping.\u000a- Delete unused `XapiActorDataSource.kt`.\u000a",
        "date" : "2026-05-20 21:35:46 +0530",
        "id" : "129ac91e8fef8241b6904a66183ea6ab8067e7be",
        "msg" : "Improve error handling and data robustness in student grouping view models and screens.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "2685c5be3f9de403ae71d0aa99fe89cce2fb61ec",
        "timestamp" : 1779341541000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Replaced showAddStudent, showAddTeacher, and showStudentGrouping with a single isAdminOrTeacher because all three were always set to the exact same value.\u000a",
        "date" : "2026-05-21 11:02:21 +0530",
        "id" : "2685c5be3f9de403ae71d0aa99fe89cce2fb61ec",
        "msg" : "Replaced showAddStudent, showAddTeacher, and showStudentGrouping with a single isAdminOrTeacher because all three were always set to the exact same value.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
        ],
        "commitId" : "fc7d31376054faf66d52e86cd9941ebaf8799b28",
        "timestamp" : 1779341913000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refine log messages\u000a",
        "date" : "2026-05-21 11:08:33 +0530",
        "id" : "fc7d31376054faf66d52e86cd9941ebaf8799b28",
        "msg" : "Refine log messages",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
        ],
        "commitId" : "06f7f39736c67d3aa87ffe9e210389dd508cbe3f",
        "timestamp" : 1779357804000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refine log messages\u000a",
        "date" : "2026-05-21 15:33:24 +0530",
        "id" : "06f7f39736c67d3aa87ffe9e210389dd508cbe3f",
        "msg" : "Refine log messages",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "9bb25c66bce994472944c10392a4b7b77f33caad",
        "timestamp" : 1779363164000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Add `STACK_COUNT` constant to `ClazzDetailViewModel` and use it to limit member display in `ClazzDetailScreen`.\u000a",
        "date" : "2026-05-21 17:02:44 +0530",
        "id" : "9bb25c66bce994472944c10392a4b7b77f33caad",
        "msg" : "Add `STACK_COUNT` constant to `ClazzDetailViewModel` and use it to limit member display in `ClazzDetailScreen`.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
        ],
        "commitId" : "c7398bc176c73e9fd2ede0b90535893c414af975",
        "timestamp" : 1780476413000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update `004_001_add_groups_to_a_class_test.yaml` to pass a class name environment variable to the `admin_add_class_with_members` subflow.\u000a",
        "date" : "2026-06-03 14:16:53 +0530",
        "id" : "c7398bc176c73e9fd2ede0b90535893c414af975",
        "msg" : "Update `004_001_add_groups_to_a_class_test.yaml` to pass a class name environment variable to the `admin_add_class_with_members` subflow.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/subflows/admin_add_class_with_members.yaml",
          ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
        ],
        "commitId" : "1be2c51e972a0ccde363a7528f1faf00c213e1dd",
        "timestamp" : 1780514561000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update teacher password in Maestro flow `004_001_add_groups_to_a_class_test.yaml`.\u000a",
        "date" : "2026-06-04 00:52:41 +0530",
        "id" : "1be2c51e972a0ccde363a7528f1faf00c213e1dd",
        "msg" : "Update teacher password in Maestro flow `004_001_add_groups_to_a_class_test.yaml`.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/subflows/admin_add_class_with_members.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/subflows/admin_add_class_with_members.yaml",
          ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
        ],
        "commitId" : "9d652accb319204515224efa41771068bdd27fd7",
        "timestamp" : 1780558542000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update Maestro test flows to use \"StudentB USER\" instead of \"StudentD USER\" and remove \"StudentD\" from the class member setup.\u000a",
        "date" : "2026-06-04 13:05:42 +0530",
        "id" : "9d652accb319204515224efa41771068bdd27fd7",
        "msg" : "Update Maestro test flows to use \"StudentB USER\" instead of \"StudentD USER\" and remove \"StudentD\" from the class member setup.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/subflows/admin_add_class_with_members.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiAgentsResourceLocal.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt",
          "respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementsResourceRoute.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivitiesResourceDb.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/enrollments/UpdateClazzStudentXapiGroupUseCase.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttp.kt",
          "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiNanoHttpdResourceProviderAndroid.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSourceLocal.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentsResourceDb.kt",
          "respect-datalayer-repository/log/respect-server.2026-05-12.0.log",
          "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt",
          "respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivitiesResource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSourceLocal.kt",
          "respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivitiesResourceLocal.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiResourceLocal.kt"
        ],
        "commitId" : "979673a326f2aa341d2104d4b3d4790280eaaf41",
        "timestamp" : 1781264841000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Refactor: Put all xapi related resources under the XapiResource interface.\u000a",
        "date" : "2026-06-12 15:47:21 +0400",
        "id" : "979673a326f2aa341d2104d4b3d4790280eaaf41",
        "msg" : "Refactor: Put all xapi related resources under the XapiResource interface.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivitiesResourceLocal.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiNanoHttpdResourceProviderAndroid.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentsResourceDb.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivitiesResourceDb.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiAgentsResourceLocal.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/enrollments/UpdateClazzStudentXapiGroupUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementsResourceRoute.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivitiesResource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiResourceLocal.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSourceLocal.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-repository/log/respect-server.2026-05-12.0.log"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSourceLocal.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt",
          ".maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt"
        ],
        "commitId" : "f15772c618b4d5abb87d4bab9861b6b4aaadb62f",
        "timestamp" : 1781559197000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Assign to students\u000a",
        "date" : "2026-06-16 03:03:17 +0530",
        "id" : "f15772c618b4d5abb87d4bab9861b6b4aaadb62f",
        "msg" : "Assign to students",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "2ac497f4c4c02bb3b160f8e7d9565e942bb97454",
        "timestamp" : 1781560280000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update `AssignmentEditViewModel` and screen to support selecting classes as assignees instead of individual students.\u000a",
        "date" : "2026-06-16 03:21:20 +0530",
        "id" : "2ac497f4c4c02bb3b160f8e7d9565e942bb97454",
        "msg" : "Update `AssignmentEditViewModel` and screen to support selecting classes as assignees instead of individual students.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml"
        ],
        "commitId" : "24d0da26c22e740d300effa2b902bcc3894780ff",
        "timestamp" : 1781560329000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update assignment test flow to assign to a class and verify multiple student recipients.\u000a",
        "date" : "2026-06-16 03:22:09 +0530",
        "id" : "24d0da26c22e740d300effa2b902bcc3894780ff",
        "msg" : "Update assignment test flow to assign to a class and verify multiple student recipients.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt"
        ],
        "commitId" : "b4509d5eb00dc5a4f1961f5f06840b8a24581078",
        "timestamp" : 1781563703000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : " merged the student grouping code and now in assignment can be assigned to groups\u000a",
        "date" : "2026-06-16 04:18:23 +0530",
        "id" : "b4509d5eb00dc5a4f1961f5f06840b8a24581078",
        "msg" : "merged the student grouping code and now in assignment can be assigned to groups",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml"
        ],
        "commitId" : "31173d62c8b81a7f779664ef8df51d91d9c13e00",
        "timestamp" : 1781563794000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update\u000a",
        "date" : "2026-06-16 04:19:54 +0530",
        "id" : "31173d62c8b81a7f779664ef8df51d91d9c13e00",
        "msg" : "Update",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
        ],
        "commitId" : "8da297a28eaecf20052b9dd9c9ba1b6d514eb731",
        "timestamp" : 1781563863000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update\u000a",
        "date" : "2026-06-16 04:21:03 +0530",
        "id" : "8da297a28eaecf20052b9dd9c9ba1b6d514eb731",
        "msg" : "Update",
        "paths" : [
          {
            "editType" : "delete",
            "file" : ".maestro/flows/004_001_add_groups_to_a_class_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_003_login_using_school_link_test.yaml",
          ".maestro/flows/002_browse_lessons_test.yaml",
          ".maestro/flows/test/002_browse_lessons_test.yaml",
          ".maestro/flows/test/001_002_add_user_direct_test.yaml",
          ".maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml",
          ".maestro/flows/test/001_003_login_using_school_link_test.yaml",
          ".maestro/flows/test/001_001_invite_users_using_qr_code_or_link_test.yaml",
          ".maestro/flows/001_002_add_user_direct_test.yaml"
        ],
        "commitId" : "b598175c4328fe319f7ecd73f551d59f3c6a9104",
        "timestamp" : 1781564039000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update\u000a",
        "date" : "2026-06-16 04:23:59 +0530",
        "id" : "b598175c4328fe319f7ecd73f551d59f3c6a9104",
        "msg" : "Update",
        "paths" : [
          {
            "editType" : "add",
            "file" : ".maestro/flows/test/001_003_login_using_school_link_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/002_browse_lessons_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_002_add_user_direct_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/test/002_browse_lessons_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/test/001_002_add_user_direct_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/test/001_001_invite_users_using_qr_code_or_link_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_003_login_using_school_link_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
        ],
        "commitId" : "30b6bda80a3dd8dbcfb301ff8d213c5574afa87d",
        "timestamp" : 1781564488000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update `schoolDataSource` access to use `xapiResource.statements` across various ViewModels.\u000a",
        "date" : "2026-06-16 04:31:28 +0530",
        "id" : "30b6bda80a3dd8dbcfb301ff8d213c5574afa87d",
        "msg" : "Update `schoolDataSource` access to use `xapiResource.statements` across various ViewModels.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
        ],
        "commitId" : "e2e79267a0a7aa5a7b4eac73ca00aaa9317d25cd",
        "timestamp" : 1781564911000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update `schoolDataSource` access to use `xapiResource.statements` across various ViewModels.\u000a",
        "date" : "2026-06-16 04:38:31 +0530",
        "id" : "e2e79267a0a7aa5a7b4eac73ca00aaa9317d25cd",
        "msg" : "Update `schoolDataSource` access to use `xapiResource.statements` across various ViewModels.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_003_login_using_school_link_test.yaml",
          ".maestro/flows/002_browse_lessons_test.yaml",
          ".maestro/flows/test/001_002_add_user_direct_test.yaml",
          ".maestro/flows/test/002_browse_lessons_test.yaml",
          ".maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml",
          ".maestro/flows/test/001_003_login_using_school_link_test.yaml",
          ".maestro/flows/test/001_001_invite_users_using_qr_code_or_link_test.yaml",
          ".maestro/flows/001_002_add_user_direct_test.yaml"
        ],
        "commitId" : "33ad990ad1ce1219c2f72e355ee085cfb4dbc75b",
        "timestamp" : 1781566846000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update `schoolDataSource` access to use `xapiResource.statements` across various ViewModels.\u000a",
        "date" : "2026-06-16 05:10:46 +0530",
        "id" : "33ad990ad1ce1219c2f72e355ee085cfb4dbc75b",
        "msg" : "Update `schoolDataSource` access to use `xapiResource.statements` across various ViewModels.",
        "paths" : [
          {
            "editType" : "add",
            "file" : ".maestro/flows/002_browse_lessons_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/test/001_002_add_user_direct_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/test/002_browse_lessons_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_003_login_using_school_link_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/test/001_003_login_using_school_link_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_002_add_user_direct_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/test/001_001_invite_users_using_qr_code_or_link_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_003_login_using_school_link_test.yaml",
          ".maestro/flows/002_browse_lessons_test.yaml",
          ".maestro/flows/test/002_browse_lessons_test.yaml",
          ".maestro/flows/test/001_002_add_user_direct_test.yaml",
          ".maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml",
          ".maestro/flows/test/001_003_login_using_school_link_test.yaml",
          ".maestro/flows/test/001_001_invite_users_using_qr_code_or_link_test.yaml",
          ".maestro/flows/001_002_add_user_direct_test.yaml"
        ],
        "commitId" : "d966bce5fd1fc96630d6d67d792c988effcc9849",
        "timestamp" : 1781595501000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "moving file just to test one single\u000a",
        "date" : "2026-06-16 13:08:21 +0530",
        "id" : "d966bce5fd1fc96630d6d67d792c988effcc9849",
        "msg" : "moving file just to test one single",
        "paths" : [
          {
            "editType" : "delete",
            "file" : ".maestro/flows/002_browse_lessons_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/test/001_003_login_using_school_link_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/test/001_001_invite_users_using_qr_code_or_link_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/test/002_browse_lessons_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_002_add_user_direct_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/test/001_002_add_user_direct_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_003_login_using_school_link_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml"
        ],
        "commitId" : "3fc1701fddc4771da16669b7da9805ca9ad304aa",
        "timestamp" : 1781597266000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Add conditional back navigation to admin assignment Maestro test flow.\u000a",
        "date" : "2026-06-16 13:37:46 +0530",
        "id" : "3fc1701fddc4771da16669b7da9805ca9ad304aa",
        "msg" : "Add conditional back navigation to admin assignment Maestro test flow.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_003_login_using_school_link_test.yaml",
          ".maestro/flows/002_browse_lessons_test.yaml",
          ".maestro/flows/test/002_browse_lessons_test.yaml",
          ".maestro/flows/test/001_002_add_user_direct_test.yaml",
          ".maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml",
          ".maestro/flows/test/001_003_login_using_school_link_test.yaml",
          ".maestro/flows/test/001_001_invite_users_using_qr_code_or_link_test.yaml",
          ".maestro/flows/001_002_add_user_direct_test.yaml",
          ".maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml"
        ],
        "commitId" : "63430bd308a29c2d48d0ef28d7a6e9e33634bf82",
        "timestamp" : 1781600478000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update Maestro test flows with improved assertions and move test files to the flows directory.\u000a",
        "date" : "2026-06-16 14:31:18 +0530",
        "id" : "63430bd308a29c2d48d0ef28d7a6e9e33634bf82",
        "msg" : "Update Maestro test flows with improved assertions and move test files to the flows directory.",
        "paths" : [
          {
            "editType" : "add",
            "file" : ".maestro/flows/002_browse_lessons_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/test/001_003_login_using_school_link_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_003_login_using_school_link_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/test/002_browse_lessons_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_002_add_user_direct_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/test/001_001_invite_users_using_qr_code_or_link_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/test/001_002_add_user_direct_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/subflows/admin_add_student.yaml"
        ],
        "commitId" : "cd9c39c2a65bf4e606ac5d572157bd09f7fa3a45",
        "timestamp" : 1781601790000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Update Maestro test flows with improved assertions and move test files to the flows directory.\u000a",
        "date" : "2026-06-16 14:53:10 +0530",
        "id" : "cd9c39c2a65bf4e606ac5d572157bd09f7fa3a45",
        "msg" : "Update Maestro test flows with improved assertions and move test files to the flows directory.",
        "paths" : [
          {
            "editType" : "add",
            "file" : ".maestro/flows/subflows/admin_add_student.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml"
        ],
        "commitId" : "4039a3132dc7cc3ef88cc29d105824236ac11d17",
        "timestamp" : 1781608273000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Update Maestro flow `003_admin_user_assigns_assignment_to_a_class_test.yaml` to include navigation to classes, remove redundant wait timers, and add assertions for student assignment results.\u000a",
        "date" : "2026-06-16 15:11:13 +0400",
        "id" : "4039a3132dc7cc3ef88cc29d105824236ac11d17",
        "msg" : "Update Maestro flow `003_admin_user_assigns_assignment_to_a_class_test.yaml` to include navigation to classes, remove redundant wait timers, and add assertions for student assignment results.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
      "fullName" : "mandvi.verma"
    },
    {
      "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
      "fullName" : "Mike Dawson"
    },
    {
      "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
      "fullName" : "Pooja Ravi"
    }
  ]
}