{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.model.Cause$UserIdCause",
          "shortDescription" : "Started by user Mandvi",
          "userId" : "mandvi",
          "userName" : "Mandvi"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/dev-student-grouping" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 28,
          "buildResult" : null,
          "marked" : {
            "SHA1" : "aca36a84f1ecfd5ff2c8fea402a3cf24e2120013",
            "branch" : [
              {
                "SHA1" : "aca36a84f1ecfd5ff2c8fea402a3cf24e2120013",
                "name" : "refs/remotes/origin/dev-student-grouping"
              }
            ]
          },
          "revision" : {
            "SHA1" : "aca36a84f1ecfd5ff2c8fea402a3cf24e2120013",
            "branch" : [
              {
                "SHA1" : "aca36a84f1ecfd5ff2c8fea402a3cf24e2120013",
                "name" : "refs/remotes/origin/dev-student-grouping"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "aca36a84f1ecfd5ff2c8fea402a3cf24e2120013",
        "branch" : [
          {
            "SHA1" : "aca36a84f1ecfd5ff2c8fea402a3cf24e2120013",
            "name" : "refs/remotes/origin/dev-student-grouping"
          }
        ]
      },
      "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" : null,
  "displayName" : "#28",
  "duration" : 194110,
  "estimatedDuration" : 199031,
  "executor" : null,
  "fullDisplayName" : "dev-student-grouping #28",
  "id" : "28",
  "inProgress" : false,
  "keepLog" : false,
  "number" : 28,
  "queueId" : 8042,
  "result" : "SUCCESS",
  "timestamp" : 1778080010901,
  "url" : "https://devserver3.ustadmobile.com/jenkins/job/dev-student-grouping/28/",
  "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-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/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/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/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",
          "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/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",
          "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/studentgrouping/edit/StudentGroupingEditViewModel.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"
          }
        ]
      },
      {
        "_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/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-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-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/view/studentgrouping/detail/StudentGroupingDetailScreen.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/studentgrouping/detail/StudentGroupingDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Clazz.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"
          },
          {
            "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/adapters/ClassAdapter.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/entities/ClassEntity.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-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/daos/XapiStatementEntityDao.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-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-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"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
      "fullName" : "mandvi.verma"
    }
  ]
}