{
  "_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/main" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 80,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "ec9ba3de26dc7289d03609985ef6ae5ec467476e",
            "branch" : [
              {
                "SHA1" : "ec9ba3de26dc7289d03609985ef6ae5ec467476e",
                "name" : "refs/remotes/origin/main"
              }
            ]
          },
          "revision" : {
            "SHA1" : "ec9ba3de26dc7289d03609985ef6ae5ec467476e",
            "branch" : [
              {
                "SHA1" : "ec9ba3de26dc7289d03609985ef6ae5ec467476e",
                "name" : "refs/remotes/origin/main"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "ec9ba3de26dc7289d03609985ef6ae5ec467476e",
        "branch" : [
          {
            "SHA1" : "ec9ba3de26dc7289d03609985ef6ae5ec467476e",
            "name" : "refs/remotes/origin/main"
          }
        ]
      },
      "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-cli.zip",
      "fileName" : "respect-cli.zip",
      "relativePath" : "respect-cli/build/distributions/respect-cli.zip"
    }
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#80",
  "duration" : 153586,
  "estimatedDuration" : 185241,
  "executor" : None,
  "fullDisplayName" : "RESPECT-Primary #80",
  "id" : "80",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 80,
  "queueId" : 3626,
  "result" : "SUCCESS",
  "timestamp" : 1757679060467,
  "url" : "https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary/80/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/ClazzScreen.kt",
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/ClazzViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/ClassesScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
        ],
        "commitId" : "36538be53c995ca596b86ee1127fc8cf562cb107",
        "timestamp" : 1752751587000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "clazz renamed to classes\u000a",
        "date" : "2025-07-17 16:56:27 +0530",
        "id" : "36538be53c995ca596b86ee1127fc8cf562cb107",
        "msg" : "clazz renamed to classes",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/ClassesScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/ClazzScreen.kt"
          },
          {
            "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/ClazzViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/ClazzListScreen.kt",
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/ClazzViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/detail/ClazzDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/ClassesScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
        ],
        "commitId" : "5c627ee3e6c3d5dda3b00e370ec65557a9ff175b",
        "timestamp" : 1753074754000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "classes renamed to clazz\u000a",
        "date" : "2025-07-21 10:42:34 +0530",
        "id" : "5c627ee3e6c3d5dda3b00e370ec65557a9ff175b",
        "msg" : "classes renamed to clazz",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/ClassesScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/ClazzListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.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" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/ClazzViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/detail/ClazzDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/ClazzListScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/detail/ClazzDetailScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/list/ClazzListScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/detail/ClazzDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
        ],
        "commitId" : "0942ba9f5c20ddb63e529148802d799ec43d6106",
        "timestamp" : 1753077819000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "ClassList and ClassDetail screen setup\u000a",
        "date" : "2025-07-21 11:33:39 +0530",
        "id" : "0942ba9f5c20ddb63e529148802d799ec43d6106",
        "msg" : "ClassList and ClassDetail screen setup",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/ClazzListScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/list/ClazzListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.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/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/detail/ClazzDetailViewModel.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/App.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/clazz/model/FakeClazzList.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/clazz/model/ClazzDataSource.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/list/ClazzListScreen.kt"
        ],
        "commitId" : "4fef5fd24ad1a76196e86d5bd36b1df481fe54bb",
        "timestamp" : 1753081147000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "ClassList\u000a",
        "date" : "2025-07-21 12:29:07 +0530",
        "id" : "4fef5fd24ad1a76196e86d5bd36b1df481fe54bb",
        "msg" : "ClassList",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/clazz/model/ClazzDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/list/ClazzListScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/clazz/model/FakeClazzList.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.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/list/ClazzListViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/detail/ClazzDetailScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/detail/ClazzDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/list/ClazzListScreen.kt"
        ],
        "commitId" : "65750213695d418b1b091e72c5de49e5313a1df4",
        "timestamp" : 1753091294000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "The `ClazzListScreen` and `ClazzListViewModel` have been temporarily updated to use dummy data for list items.\u000a",
        "date" : "2025-07-21 15:18:14 +0530",
        "id" : "65750213695d418b1b091e72c5de49e5313a1df4",
        "msg" : "The `ClazzListScreen` and `ClazzListViewModel` have been temporarily updated to use dummy data for list items.",
        "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/list/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/list/ClazzListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/list/ClazzListScreen.kt"
        ],
        "commitId" : "197802b829b50973bb7107662fea8e08696d69ea",
        "timestamp" : 1753091369000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "The `ClazzListScreen` and `ClazzListViewModel` have been temporarily updated to use dummy data for list items.\u000a",
        "date" : "2025-07-21 15:19:29 +0530",
        "id" : "197802b829b50973bb7107662fea8e08696d69ea",
        "msg" : "The `ClazzListScreen` and `ClazzListViewModel` have been temporarily updated to use dummy data for list items.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/list/ClazzListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/list/ClazzListScreen.kt"
        ],
        "commitId" : "e281d2dff2b9b13c59fca1f3faef86f80fd84fc8",
        "timestamp" : 1753101471000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "This commit adds navigation to the class detail screen upon clicking a class.\u000a",
        "date" : "2025-07-21 18:07:51 +0530",
        "id" : "e281d2dff2b9b13c59fca1f3faef86f80fd84fc8",
        "msg" : "This commit adds navigation to the class detail screen upon clicking a class.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/list/ClazzListScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/detail/ClazzDetailScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/list/ClazzListScreen.kt"
        ],
        "commitId" : "bb831171f04fe951c683f8e2d2c6da168f06a2d9",
        "timestamp" : 1753107646000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Implement filter functionality in class list\u000a\u000a-   Added `clazzFilter` and `selectedFilterTitle` to `ClazzListUiState`.\u000a-   Implemented `onClickFilter` function in `ClazzListViewModel` to update the selected filter.\u000a-   Updated `ClazzListScreen` to display a dropdown menu for selecting filters.\u000a-   The selected filter is now displayed, and the dropdown shows available filter options.\u000a",
        "date" : "2025-07-21 19:50:46 +0530",
        "id" : "bb831171f04fe951c683f8e2d2c6da168f06a2d9",
        "msg" : "Implement filter functionality in class list",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/list/ClazzListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/acceptinvite/AcceptInviteViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/list/ClazzListScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/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/clazz/student/StudentScreen.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/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/app/AppNavHost.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/student/StudentViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/acceptinvite/AcceptInviteScreen.kt"
        ],
        "commitId" : "8390e9c1a4ef924969b04fad2061a6af5874bbd0",
        "timestamp" : 1753172979000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Accept Invit and add student screen setup added\u000a",
        "date" : "2025-07-22 13:59:39 +0530",
        "id" : "8390e9c1a4ef924969b04fad2061a6af5874bbd0",
        "msg" : "Accept Invit and add student screen setup added",
        "paths" : [
          {
            "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/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/acceptinvite/AcceptInviteScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/student/StudentScreen.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/list/ClazzListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/classes/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/acceptinvite/AcceptInviteViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/student/StudentViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/acceptinvite/AcceptInviteViewModel.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"
        ],
        "commitId" : "b49d22b85729443fcf528861bac1cb5b5b3f6a4b",
        "timestamp" : 1753201244000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "AcceptInvite\u000a",
        "date" : "2025-07-22 21:50:44 +0530",
        "id" : "b49d22b85729443fcf528861bac1cb5b5b3f6a4b",
        "msg" : "AcceptInvite",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/acceptinvite/AcceptInviteViewModel.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"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/acceptinvite/AcceptInviteViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/acceptinvite/AcceptInviteScreen.kt"
        ],
        "commitId" : "b34d65a5c0ee4e1158374d99ee67ad47cdea593c",
        "timestamp" : 1753249318000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "AcceptInvite\u000a",
        "date" : "2025-07-23 11:11:58 +0530",
        "id" : "b34d65a5c0ee4e1158374d99ee67ad47cdea593c",
        "msg" : "AcceptInvite",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/acceptinvite/AcceptInviteScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/acceptinvite/AcceptInviteViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/acceptinvite/AcceptInviteViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/acceptinvite/AcceptInviteScreen.kt"
        ],
        "commitId" : "e6fef28c7f00385b489fd6abb4b8d34b268cc242",
        "timestamp" : 1753249355000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "AcceptInvite\u000a",
        "date" : "2025-07-23 11:12:35 +0530",
        "id" : "e6fef28c7f00385b489fd6abb4b8d34b268cc242",
        "msg" : "AcceptInvite",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/acceptinvite/AcceptInviteScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/acceptinvite/AcceptInviteViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/acceptinvite/AcceptInviteScreen.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
        ],
        "commitId" : "9743a2621709e3d434b33179e5fcf8948dc87cc1",
        "timestamp" : 1753249666000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "AcceptInvite\u000a",
        "date" : "2025-07-23 11:17:46 +0530",
        "id" : "9743a2621709e3d434b33179e5fcf8948dc87cc1",
        "msg" : "AcceptInvite",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/acceptinvite/AcceptInviteScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/acceptinvite/AcceptInviteScreen.kt"
        ],
        "commitId" : "cf154e58eb93b6a5200a9585997163c97ccfa368",
        "timestamp" : 1753249674000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "AcceptInvite\u000a",
        "date" : "2025-07-23 11:17:54 +0530",
        "id" : "cf154e58eb93b6a5200a9585997163c97ccfa368",
        "msg" : "AcceptInvite",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/acceptinvite/AcceptInviteScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/clazz/model/FakeClazzList.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/clazz/model/ClazzDataSource.kt"
        ],
        "commitId" : "f17651778a7aba83725f96a1d0c135f693ca9808",
        "timestamp" : 1753249842000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "AcceptInvite\u000a",
        "date" : "2025-07-23 11:20:42 +0530",
        "id" : "f17651778a7aba83725f96a1d0c135f693ca9808",
        "msg" : "AcceptInvite",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/clazz/model/ClazzDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/clazz/model/FakeClazzList.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/student/StudentViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/student/StudentScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/acceptinvite/AcceptInviteScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "3f19f08604e16f58b9c4e36888282df8dcb4a476",
        "timestamp" : 1753263065000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Add student screen added\u000a",
        "date" : "2025-07-23 15:01:05 +0530",
        "id" : "3f19f08604e16f58b9c4e36888282df8dcb4a476",
        "msg" : "Add student screen added",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/student/StudentViewModel.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/clazz/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/student/StudentScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/acceptinvite/AcceptInviteScreen.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/clazz/list/ClazzListViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt"
        ],
        "commitId" : "45756d7e1bf5b231e3cd0248db06d480cfd92a4f",
        "timestamp" : 1753271100000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Integrate fake roster data for class list\u000a\u000aThe `ClazzListScreen` has been updated to display the class titles from the `oneRoasterClass` list in the UI state.\u000a",
        "date" : "2025-07-23 17:15:00 +0530",
        "id" : "45756d7e1bf5b231e3cd0248db06d480cfd92a4f",
        "msg" : "Integrate fake roster data for class list",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.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/clazz/addclazz/AddClazzViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/addclazz/AddClazzScreen.kt"
        ],
        "commitId" : "62369a9b4924cd0fee27331d56b70be7042e3c1a",
        "timestamp" : 1753680357000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Add Class screen added\u000a",
        "date" : "2025-07-28 10:55:57 +0530",
        "id" : "62369a9b4924cd0fee27331d56b70be7042e3c1a",
        "msg" : "Add Class screen added",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/addclazz/AddClazzViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/addclazz/AddClazzScreen.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/app/appstate/ActionBarButtonUiState.kt",
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/addclazz/AddClazzViewModel.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppUiState.kt"
        ],
        "commitId" : "4821fc99e9b51797405026f1d5a3a5e7abce2217",
        "timestamp" : 1753682811000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Added save button\u000a",
        "date" : "2025-07-28 11:36:51 +0530",
        "id" : "4821fc99e9b51797405026f1d5a3a5e7abce2217",
        "msg" : "Added save button",
        "paths" : [
          {
            "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/AppBar.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/ActionBarButtonUiState.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/addclazz/AddClazzViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppUiState.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/clazz/addclazz/AddClazzViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/addclazz/AddClazzScreen.kt"
        ],
        "commitId" : "bb99e0d9737d8a6f9ebe5dc1d2446717a285e714",
        "timestamp" : 1753683940000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Added class screen\u000a",
        "date" : "2025-07-28 11:55:40 +0530",
        "id" : "bb99e0d9737d8a6f9ebe5dc1d2446717a285e714",
        "msg" : "Added class screen",
        "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/addclazz/AddClazzViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/addclazz/AddClazzScreen.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/acceptinvite/AcceptInviteViewModel.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/acceptinvite/AcceptInviteScreen.kt"
        ],
        "commitId" : "af1abc3378a0f77c530e262ca4f7091b11abe548",
        "timestamp" : 1753690314000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "adding dummy list\u000a",
        "date" : "2025-07-28 13:41:54 +0530",
        "id" : "af1abc3378a0f77c530e262ca4f7091b11abe548",
        "msg" : "adding dummy list",
        "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/acceptinvite/AcceptInviteScreen.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/acceptinvite/AcceptInviteViewModel.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/list/ClazzListViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt"
        ],
        "commitId" : "43901bec68a7aafaf829e68ba12517c7d3ffcd1a",
        "timestamp" : 1753767701000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "sort ui\u000a",
        "date" : "2025-07-29 11:11:41 +0530",
        "id" : "43901bec68a7aafaf829e68ba12517c7d3ffcd1a",
        "msg" : "sort ui",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt"
        ],
        "commitId" : "a5e291a0d54ca6c22362d58cf87ea55efc0e5248",
        "timestamp" : 1753767792000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "sort ui\u000a",
        "date" : "2025-07-29 11:13:12 +0530",
        "id" : "a5e291a0d54ca6c22362d58cf87ea55efc0e5248",
        "msg" : "sort ui",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "1202643c2ae5f250e6338d742d7b7f7514911e1e",
        "timestamp" : 1753772089000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Accept invite icon changed\u000a",
        "date" : "2025-07-29 12:24:49 +0530",
        "id" : "1202643c2ae5f250e6338d742d7b7f7514911e1e",
        "msg" : "Accept invite icon changed",
        "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/composeResources/values/strings.xml",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "74b5d2edbd44a6e2c431f208022bed243c6846ec",
        "timestamp" : 1753863557000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Accept invite icon changed\u000a",
        "date" : "2025-07-30 13:49:17 +0530",
        "id" : "74b5d2edbd44a6e2c431f208022bed243c6846ec",
        "msg" : "Accept invite icon changed",
        "paths" : [
          {
            "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/clazz/detail/ClazzDetailScreen.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" : "ddf535c08c939e5ae1b222643b4193286dd97f21",
        "timestamp" : 1753939677000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Sort in Clazz Detail Screen\u000a",
        "date" : "2025-07-31 10:57:57 +0530",
        "id" : "ddf535c08c939e5ae1b222643b4193286dd97f21",
        "msg" : "Sort in Clazz Detail Screen",
        "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" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectFilterChipRow.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"
        ],
        "commitId" : "210cd74c62fc0c291a40f7c8e8d0970d49b0d7f9",
        "timestamp" : 1753945103000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Filter Chip Row\u000a",
        "date" : "2025-07-31 12:28:23 +0530",
        "id" : "210cd74c62fc0c291a40f7c8e8d0970d49b0d7f9",
        "msg" : "Filter Chip Row",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectFilterChipRow.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/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "a2d9ebfb15ccd358e8109b941f7c065b50d2b23e",
        "timestamp" : 1753945226000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Filter Chip Row\u000a",
        "date" : "2025-07-31 12:30:26 +0530",
        "id" : "a2d9ebfb15ccd358e8109b941f7c065b50d2b23e",
        "msg" : "Filter Chip Row",
        "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-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectFilterChip.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortOption.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectFilterChipRow.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "363fff695b061b04c522d1b39d066855ad30b8f5",
        "timestamp" : 1753947702000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "FilterChip and SortOption\u000a",
        "date" : "2025-07-31 13:11:42 +0530",
        "id" : "363fff695b061b04c522d1b39d066855ad30b8f5",
        "msg" : "FilterChip and SortOption",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortOption.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" : "delete",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectFilterChipRow.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectFilterChip.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt"
        ],
        "commitId" : "f23cfe64dfc4578e8a2a5f60bc88f29e5f6ebcca",
        "timestamp" : 1753947839000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "FilterChip and SortOption\u000a",
        "date" : "2025-07-31 13:13:59 +0530",
        "id" : "f23cfe64dfc4578e8a2a5f60bc88f29e5f6ebcca",
        "msg" : "FilterChip and SortOption",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectFilterChip.kt"
        ],
        "commitId" : "b70df82679d6842f419d2de9d31ce8d71d71e0ad",
        "timestamp" : 1753948892000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "FilterChip and SortOption\u000a",
        "date" : "2025-07-31 13:31:32 +0530",
        "id" : "b70df82679d6842f419d2de9d31ce8d71d71e0ad",
        "msg" : "FilterChip and SortOption",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectFilterChip.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "30295a77bb32b3423c8a4d0e230f3bdbc0fbcdec",
        "timestamp" : 1754042974000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "FilterChip and SortOption\u000a",
        "date" : "2025-08-01 15:39:34 +0530",
        "id" : "30295a77bb32b3423c8a4d0e230f3bdbc0fbcdec",
        "msg" : "FilterChip and SortOption",
        "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/list/ClazzListViewModel.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/clazz/detail/ClazzDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt"
        ],
        "commitId" : "e1b7f6f2f3ae65c1d908425397a95205ad2dfa2e",
        "timestamp" : 1754288766000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Moved Sort and filter to lazy column and also renamed the sort function\u000a",
        "date" : "2025-08-04 11:56:06 +0530",
        "id" : "e1b7f6f2f3ae65c1d908425397a95205ad2dfa2e",
        "msg" : "Moved Sort and filter to lazy column and also renamed the sort function",
        "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/list/ClazzListViewModel.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/list/ClazzListScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "090771e56ecbbecf909869f26cd321f91741d618",
        "timestamp" : 1754289707000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor lambda expressions to method references\u000a",
        "date" : "2025-08-04 12:11:47 +0530",
        "id" : "090771e56ecbbecf909869f26cd321f91741d618",
        "msg" : "Refactor lambda expressions to method references",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.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/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "ce88658e171f1536f1ab02a27fa32be92463fe12",
        "timestamp" : 1754289809000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Remove trailing commas in ViewModel state classes\u000a",
        "date" : "2025-08-04 12:13:29 +0530",
        "id" : "ce88658e171f1536f1ab02a27fa32be92463fe12",
        "msg" : "Remove trailing commas in ViewModel state classes",
        "paths" : [
          {
            "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/clazz/detail/ClazzDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/student/StudentViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/student/AddPersonToClazzViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/student/StudentScreen.kt"
        ],
        "commitId" : "890b37fc5163de13a56bc6c9e385a66d90548630",
        "timestamp" : 1754290051000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor: Rename StudentViewModel to AddPersonToClazzViewModel\u000a\u000aThis commit renames `StudentViewModel` to `AddPersonToClazzViewModel` and updates its usages.\u000aThe corresponding UI state `AddStudentUIState` is also renamed to `AddPersonToClazzUIState`.\u000aThe `StudentScreen` composable is renamed to `AddPersonToClazzScreen`.\u000a",
        "date" : "2025-08-04 12:17:31 +0530",
        "id" : "890b37fc5163de13a56bc6c9e385a66d90548630",
        "msg" : "Refactor: Rename StudentViewModel to AddPersonToClazzViewModel",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/student/StudentViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/student/StudentScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/student/AddPersonToClazzViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/addperson/AddPersonToClazzScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/student/StudentScreen.kt"
        ],
        "commitId" : "837321ef07da5b13217294351780935d5b247037",
        "timestamp" : 1754290268000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor: Rename StudentViewModel to AddPersonToClazzViewModel\u000a\u000aThis commit renames `StudentViewModel` to `AddPersonToClazzViewModel` and updates its usages.\u000aThe corresponding UI state `AddStudentUIState` is also renamed to `AddPersonToClazzUIState`.\u000aThe `StudentScreen` composable is renamed to `AddPersonToClazzScreen`.\u000a",
        "date" : "2025-08-04 12:21:08 +0530",
        "id" : "837321ef07da5b13217294351780935d5b247037",
        "msg" : "Refactor: Rename StudentViewModel to AddPersonToClazzViewModel",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/student/StudentScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/addperson/AddPersonToClazzScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.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"
        ],
        "commitId" : "2d3c1fd0722951f2b9c39716c4d484f5c7eb686d",
        "timestamp" : 1754299350000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "merge\u000a",
        "date" : "2025-08-04 14:52:30 +0530",
        "id" : "2d3c1fd0722951f2b9c39716c4d484f5c7eb686d",
        "msg" : "merge",
        "paths" : [
          {
            "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/clazz/detail/ClazzDetailScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "1ab6ff6d3848749798c303f7991288b283af875a",
        "timestamp" : 1754370225000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "moving pending invites to clazz detail screen\u000a",
        "date" : "2025-08-05 10:33:45 +0530",
        "id" : "1ab6ff6d3848749798c303f7991288b283af875a",
        "msg" : "moving pending invites to clazz detail screen",
        "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/clazz/list/ClazzListScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/addperson/AddPersonToClazzScreen.kt",
          "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-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "24b546c5c3c17c06859829cd6f2dd993690e3913",
        "timestamp" : 1754372015000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor: Rename Student route to AddPersonToClazz\u000a\u000aThe `Student` route in `AppRoutes.kt` has been renamed to `AddPersonToClazz`.\u000a\u000aThis change is reflected in:\u000a- `ClazzDetailViewModel.kt`: The navigation command for adding a person to a class now uses `AddPersonToClazz`.\u000a- `AppNavHost.kt`: The composable for the add person screen is now associated with the `AddPersonToClazz` route.\u000a- `AddPersonToClazzScreen.kt`: The \"share with link or QR code\" and \"share QR code\" options have been removed from this screen.\u000a- `ClazzDetailScreen.kt`: The \"Invite Student\" list item now navigates to `AddPersonToClazz`. The \"Pending Invite\", \"Teachers\", and \"Students\" list items now have a trailing arrow icon. The `onClickInviteStudent` parameter has been renamed to `onClickAddPersonToClazz`.\u000a",
        "date" : "2025-08-05 11:03:35 +0530",
        "id" : "24b546c5c3c17c06859829cd6f2dd993690e3913",
        "msg" : "Refactor: Rename Student route to AddPersonToClazz",
        "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/clazz/addperson/AddPersonToClazzScreen.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/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "90b3a2b22155daf7b8fadd3c3a2e603905ec7efb",
        "timestamp" : 1754373157000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Populate Class Detail screen with fake roster data\u000a\u000aThe `ClazzDetailScreen` now displays teachers and students fetched from `FakeRosterDataSource`. The `FakeRosterDataSource` has been updated to provide a list of fake users with teacher and student roles.\u000a",
        "date" : "2025-08-05 11:22:37 +0530",
        "id" : "90b3a2b22155daf7b8fadd3c3a2e603905ec7efb",
        "msg" : "Populate Class Detail screen with fake roster data",
        "paths" : [
          {
            "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/oneroster/rostering/FakeRosterDataSource.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/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "7ea89d760ab63f7aded518d8fdd15293a95a5683",
        "timestamp" : 1754374478000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Integrate pending invite list into class detail screen\u000a\u000aThis commit introduces a \"Pending Invites\" section to the class detail screen.\u000a\u000aKey changes:\u000a- Added `enabledUser` field to `OneRosterUser` in `FakeRosterDataSource.kt` to differentiate between active and pending users.\u000a- Updated `ClazzDetailViewModel.kt` to fetch and store pending users in `listOfPending` within `ClazzDetailUiState`.\u000a- Modified `ClazzDetailScreen.kt` to display the list of pending invites, showing the user's name, role, and an avatar.\u000a",
        "date" : "2025-08-05 11:44:38 +0530",
        "id" : "7ea89d760ab63f7aded518d8fdd15293a95a5683",
        "msg" : "Integrate pending invite list into class detail screen",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.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"
          }
        ]
      },
      {
        "_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/clazz/acceptinvite/AcceptInviteViewModel.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.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-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/acceptinvite/AcceptInviteScreen.kt"
        ],
        "commitId" : "898149da5c740d21399e05f10c8619fb6ea1cd6e",
        "timestamp" : 1754381349000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Remove AcceptInvite feature\u000a\u000aThe `AcceptInviteScreen` and its associated `AcceptInviteViewModel` have been removed. Correspondingly, the `AcceptInvite` route and its usage within `ClazzDetailScreen`, `ClazzDetailViewModel`, `AppNavHost`, and `AppKoinModule` have been eliminated.\u000a",
        "date" : "2025-08-05 13:39:09 +0530",
        "id" : "898149da5c740d21399e05f10c8619fb6ea1cd6e",
        "msg" : "Remove AcceptInvite feature",
        "paths" : [
          {
            "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/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/acceptinvite/AcceptInviteScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/acceptinvite/AcceptInviteViewModel.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/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.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/clazz/list/ClazzListScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "6d2b783e9b841b5201f7637087a90fc6ff7fbc8e",
        "timestamp" : 1754384172000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Remove AcceptInvite feature\u000a\u000aThe `AcceptInviteScreen` and its associated `AcceptInviteViewModel` have been removed. Correspondingly, the `AcceptInvite` route and its usage within `ClazzDetailScreen`, `ClazzDetailViewModel`, `AppNavHost`, and `AppKoinModule` have been eliminated.\u000a",
        "date" : "2025-08-05 14:26:12 +0530",
        "id" : "6d2b783e9b841b5201f7637087a90fc6ff7fbc8e",
        "msg" : "Remove AcceptInvite feature",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.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/clazz/list/ClazzListViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/addclazz/AddClazzViewModel.kt",
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/addclazz/AddClazzScreen.kt"
        ],
        "commitId" : "0b8949e9469f3ba0be549b6a9a555f0ea4f7169c",
        "timestamp" : 1754389004000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Add fields for class description, start date, and end date to AddClazzScreen\u000a\u000aThe `AddClazzScreen` now includes `OutlinedTextField` components for capturing the class description, start date, and end date.\u000a\u000aCorresponding updates have been made to:\u000a- `AddClazzUiState` to include fields for `description`, `startDate`, and `endDate`.\u000a- `AddClazzViewModel` to handle changes to these new fields with dedicated `onClassDescriptionChange`, `onStartDateChange`, and `onEndDateChange` functions.\u000a- `strings.xml` to add string resources for the new labels.\u000a\u000aThe layout has been changed from `Column` to `LazyColumn` and a `Row` has been added to arrange the start and end date fields side-by-side.\u000a",
        "date" : "2025-08-05 15:46:44 +0530",
        "id" : "0b8949e9469f3ba0be549b6a9a555f0ea4f7169c",
        "msg" : "Add fields for class description, start date, and end date to AddClazzScreen",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/addclazz/AddClazzViewModel.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/clazz/addclazz/AddClazzScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/addclazz/AddClazzViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt"
        ],
        "commitId" : "5ccdbf9301eedf2d19c606d251abbffb056bba1e",
        "timestamp" : 1754390706000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Enable adding new classes and saving them\u000a\u000aThe `AddClazzViewModel` now allows users to input class details (name, description, start and end dates) and save the new class.\u000a\u000aThe `FakeRosterDataSource` has been updated to support adding new classes to its internal list.\u000a",
        "date" : "2025-08-05 16:15:06 +0530",
        "id" : "5ccdbf9301eedf2d19c606d251abbffb056bba1e",
        "msg" : "Enable adding new classes and saving them",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/addclazz/AddClazzViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/addclazz/AddClazzViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/addclazz/AddClazzScreen.kt"
        ],
        "commitId" : "48fb2c0b1966222abdebb691854472d8aaf5fb07",
        "timestamp" : 1754391333000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor: Remove RespectAppLauncher from AppNavHost\u000a\u000aThe `RespectAppLauncher` screen has been removed from the `AppNavHost`.\u000aAdditionally, minor code formatting adjustments have been made in `AddClazzScreen.kt`.\u000a",
        "date" : "2025-08-05 16:25:33 +0530",
        "id" : "48fb2c0b1966222abdebb691854472d8aaf5fb07",
        "msg" : "Refactor: Remove RespectAppLauncher from AppNavHost",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/addclazz/AddClazzViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/addclazz/AddClazzScreen.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/list/ClazzListViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/SortOrderOption.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "0377053cfdcb75a1539cc752b80024bb58f97b34",
        "timestamp" : 1754463777000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Add localized sort options\u000a\u000aThis commit introduces localized sort options for \"First name\" and \"Last name\" in the class list and class detail screens.\u000a\u000a- Added new string resources for \"First name\" and \"Last name\".\u000a- Created a `SortOrderOption` data class to represent sort options.\u000a- Updated `ClazzDetailViewModel` and `ClazzListViewModel` to use `SortOrderOption` and initialize sort options with localized strings.\u000a- Modified `ClazzDetailScreen` and `ClazzListScreen` to use the new `SortOrderOption` for displaying sort options.\u000a- The default sort option is set to \"First name\".\u000a",
        "date" : "2025-08-06 12:32:57 +0530",
        "id" : "0377053cfdcb75a1539cc752b80024bb58f97b34",
        "msg" : "Add localized sort options",
        "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" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/SortOrderOption.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.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/clazz/detail/ClazzDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectFilterChip.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortOption.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortHeader.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectFilterChipsHeader.kt"
        ],
        "commitId" : "80a497fa9d97cc1c3f25ae35802446f2a7a555b2",
        "timestamp" : 1754465388000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Rename Sort and Filter Chip components to Header\u000a\u000aThe composable functions `RespectFilterChip` and `RespectSortOption` have been renamed to `RespectFilterChipsHeader` and `RespectSortHeader` respectively.\u000a\u000aTheir usages in `LearningUnitListScreen`, `ClazzDetailScreen`, and `ClazzListScreen` have been updated to reflect these changes.\u000a",
        "date" : "2025-08-06 12:59:48 +0530",
        "id" : "80a497fa9d97cc1c3f25ae35802446f2a7a555b2",
        "msg" : "Rename Sort and Filter Chip components to Header",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortOption.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectFilterChip.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortHeader.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectFilterChipsHeader.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt"
        ],
        "commitId" : "dc7034949ef462f83c47c09934da55910f0204ad",
        "timestamp" : 1754465566000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "unused\u000a",
        "date" : "2025-08-06 13:02:46 +0530",
        "id" : "dc7034949ef462f83c47c09934da55910f0204ad",
        "msg" : "unused",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt"
        ],
        "commitId" : "b2b73a3bb4177669b5670f66a65953f481a2ace4",
        "timestamp" : 1754466292000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "unused\u000a",
        "date" : "2025-08-06 13:14:52 +0530",
        "id" : "b2b73a3bb4177669b5670f66a65953f481a2ace4",
        "msg" : "unused",
        "paths" : [
          {
            "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/view/clazz/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/addclazz/AddClazzScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "6358ce975357e28e3be4b598794bf7f19abd499a",
        "timestamp" : 1754478863000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "unused\u000a",
        "date" : "2025-08-06 16:44:23 +0530",
        "id" : "6358ce975357e28e3be4b598794bf7f19abd499a",
        "msg" : "unused",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.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/clazz/addclazz/AddClazzScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "ab981b5c510bac87b5d999317729414d11e6516a",
        "timestamp" : 1754478874000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "unused\u000a",
        "date" : "2025-08-06 16:44:34 +0530",
        "id" : "ab981b5c510bac87b5d999317729414d11e6516a",
        "msg" : "unused",
        "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/list/ClazzListViewModel.kt"
        ],
        "commitId" : "cda436ab18880a2806e691273b8b6e29bbce659c",
        "timestamp" : 1754649065000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "unused\u000a",
        "date" : "2025-08-08 16:01:05 +0530",
        "id" : "cda436ab18880a2806e691273b8b6e29bbce659c",
        "msg" : "unused",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.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/util/FilterChipsOption.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectFilterChipsHeader.kt"
        ],
        "commitId" : "50982ac6a857bc13d8db29dfbe4d1046e9bf1633",
        "timestamp" : 1754649870000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "filter\u000a",
        "date" : "2025-08-08 16:14:30 +0530",
        "id" : "50982ac6a857bc13d8db29dfbe4d1046e9bf1633",
        "msg" : "filter",
        "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" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/FilterChipsOption.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/components/RespectFilterChipsHeader.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
        ],
        "commitId" : "cddaa9ada19846353aa426c97461f196bc426330",
        "timestamp" : 1754650017000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "app nav\u000a",
        "date" : "2025-08-08 16:16:57 +0530",
        "id" : "cddaa9ada19846353aa426c97461f196bc426330",
        "msg" : "app nav",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/addperson/AddPersonToClazzScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortHeader.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/student/AddPersonToClazzViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/addperson/AddPersonToClazzViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectFilterChipsHeader.kt"
        ],
        "commitId" : "bd2548f64215c9d440651f08f8ca88c52e6766b6",
        "timestamp" : 1754897305000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor: Move AddPersonToClazzViewModel to addperson package\u000a\u000aThe `AddPersonToClazzViewModel` has been moved from the `clazz.student` package to `clazz.addperson`.\u000aImport statements have been updated accordingly in `AppKoinModule.kt`, `AppNavHost.kt`, and `AddPersonToClazzScreen.kt`.\u000a\u000aAdditionally, minor UI adjustments were made:\u000a- Increased spacing between filter chips in `RespectFilterChipsHeader`.\u000a- Increased padding for the dropdown icon in `RespectSortHeader`.\u000a- Removed explicit text color styling in `RespectFilterChipsHeader` as it's now handled by the `FilterChip` itself.\u000a",
        "date" : "2025-08-11 12:58:25 +0530",
        "id" : "bd2548f64215c9d440651f08f8ca88c52e6766b6",
        "msg" : "Refactor: Move AddPersonToClazzViewModel to addperson package",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/addperson/AddPersonToClazzScreen.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/student/AddPersonToClazzViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/addperson/AddPersonToClazzViewModel.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/components/RespectSortHeader.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectFilterChipsHeader.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/util/SortOrderOptionExt.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.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/clazz/detail/ClazzDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortOptionsBottomSheet.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectBottomSheetOption.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortHeader.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/SortOrderOption.kt"
        ],
        "commitId" : "75834b1c18b9a0a1c8fe89d1a9367eab82140bbe",
        "timestamp" : 1754931332000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor sort functionality and introduce bottom sheet option\u000a\u000aThis commit refactors the sort functionality across `ClazzListScreen`, `ClazzDetailScreen`, and `LearningUnitListScreen`.\u000a\u000aKey changes:\u000a- Introduced `SortOrderOption` data class to represent sort options with field, flag, and order.\u000a- Updated ViewModels (`ClazzListViewModel`, `ClazzDetailViewModel`, `LearningUnitListViewModel`) to use `SortOrderOption` and manage active sort state.\u000a- Modified `RespectSortHeader` to `RespectListSortHeader`, now accepting `SortOrderOption` and handling sort order changes.\u000a- Added `RespectSortOptionsBottomSheet` composable for displaying sort options in a bottom sheet.\u000a- Added `RespectBottomSheetOption` composable for standard bottom sheet list items.\u000a- Added string resources for \"ascending\", \"descending\", \"sort_by\", and \"language\".\u000a- Added `SortOrderOptionExt.kt` for a `description()` extension function to format sort option display.\u000a- `RespectListSortHeader` now supports both `POPUP` and `BOTTOM_SHEET` modes for displaying sort options, with `BOTTOM_SHEET` as the default.\u000a",
        "date" : "2025-08-11 22:25:32 +0530",
        "id" : "75834b1c18b9a0a1c8fe89d1a9367eab82140bbe",
        "msg" : "Refactor sort functionality and introduce bottom sheet option",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortOptionsBottomSheet.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/SortOrderOption.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectBottomSheetOption.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortHeader.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/SortOrderOptionExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortHeader.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectFilterChipsHeader.kt"
        ],
        "commitId" : "7e1a4ba8dfce9626ccd1edbd5baa580aed631130",
        "timestamp" : 1754931814000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Remove unused imports and constants\u000a\u000aThe following changes have been made:\u000a- Removed unused imports from `RespectFilterChipsHeader.kt` and `RespectSortHeader.kt`.\u000a- Removed the unused constant `NAME` from `ClazzDetailViewModel.kt`.\u000a- Removed the unused import `NAME` from `ClazzListViewModel.kt`.\u000a",
        "date" : "2025-08-11 22:33:34 +0530",
        "id" : "7e1a4ba8dfce9626ccd1edbd5baa580aed631130",
        "msg" : "Remove unused imports and constants",
        "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/components/RespectFilterChipsHeader.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortHeader.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/OneRosterRosterDataSource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "30bd1a9bef397f3079b9e1cab96277d15214d1a9",
        "timestamp" : 1754934605000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Add `getClazzBySourcedId` function to OneRosterDataSource\u000a\u000aThis commit introduces a new function `getClazzBySourcedId` to the `OneRosterRosterDataSource` interface and its implementation in `FakeRosterDataSource`.\u000a\u000aThe `ClazzDetailScreen` has also been updated to include a \"description\" list item.\u000a",
        "date" : "2025-08-11 23:20:05 +0530",
        "id" : "30bd1a9bef397f3079b9e1cab96277d15214d1a9",
        "msg" : "Add `getClazzBySourcedId` function to OneRosterDataSource",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/OneRosterRosterDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.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-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/OneRosterRosterDataSource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt"
        ],
        "commitId" : "9340a19583e11a8b2baa3d3050af2cf76683fb35",
        "timestamp" : 1754934873000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Add `getClazzBySourcedId` function to OneRosterDataSource\u000a\u000aThis commit introduces a new function `getClazzBySourcedId` to the `OneRosterRosterDataSource` interface and its implementation in `FakeRosterDataSource`.\u000a\u000aThe `ClazzDetailScreen` has also been updated to include a \"description\" list item.\u000a",
        "date" : "2025-08-11 23:24:33 +0530",
        "id" : "9340a19583e11a8b2baa3d3050af2cf76683fb35",
        "msg" : "Add `getClazzBySourcedId` function to OneRosterDataSource",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/OneRosterRosterDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/addclazz/AddClazzScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "909f215b3a43c1da2b91dcb1c5ef50404c00ccfe",
        "timestamp" : 1754936184000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor ClazzDetailScreen and ClazzListScreen for UI consistency\u000a\u000a- Removed explicit sizing and font scaling from `RespectPersonAvatar` in `ClazzDetailScreen` and `ClazzListScreen` for consistent avatar appearance.\u000a- Replaced `LazyColumn` with a vertically scrollable `Column` in `AddClazzScreen` for simpler layout.\u000a- Added `onClickAcceptInvite` and `onClickDismissInvite` functions to `ClazzDetailViewModel`.\u000a- Implemented click handlers for accept and dismiss icons in `ClazzDetailScreen`'s pending user items.\u000a",
        "date" : "2025-08-11 23:46:24 +0530",
        "id" : "909f215b3a43c1da2b91dcb1c5ef50404c00ccfe",
        "msg" : "Refactor ClazzDetailScreen and ClazzListScreen for UI consistency",
        "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/clazz/list/ClazzListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/addclazz/AddClazzScreen.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/composeResources/values/strings.xml",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPersonAvatar.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.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/list/ClazzListScreen.kt"
        ],
        "commitId" : "ae27aaf0c41939ab9654be1c02a23045e6fc1852",
        "timestamp" : 1754937422000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Add \"Edit\" string resource and update ClazzDetailViewModel\u000a\u000aThis commit introduces a new string resource \"Edit\" and updates the `ClazzDetailViewModel` to utilize it.\u000a\u000aSpecifically, the following changes were made:\u000a- Added `<string name=\"edit\">Edit</string>` to `strings.xml`.\u000a- In `ClazzDetailViewModel`:\u000a    - Updated `_appUiState` to set the title to \"Classes\", hide the back button, and configure the FAB:\u000a        - Set FAB visibility to true.\u000a        - Set FAB icon to `FabUiState.FabIcon.EDIT`.\u000a        - Set FAB text to the newly added \"Edit\" string resource.\u000a        - Set FAB `onClick` to navigate to `AddClazz`.\u000a- The start destination in `AppNavHost.kt` was changed from `Acknowledgement` to `RespectAppLauncher`.\u000a- Added `FabUiState.FabIcon.EDIT` to the `when` statement in `App.kt` to handle the edit icon for the FAB.\u000a- Set a default size of `40.dp` for `RespectPersonAvatar` in `RespectPersonAvatar.kt`.\u000a- Removed an extra newline in `ClazzListScreen.kt` within the `RespectPersonAvatar` composable.\u000a",
        "date" : "2025-08-12 00:07:02 +0530",
        "id" : "ae27aaf0c41939ab9654be1c02a23045e6fc1852",
        "msg" : "Add \"Edit\" string resource and update ClazzDetailViewModel",
        "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/app/AppNavHost.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/app/App.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPersonAvatar.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt"
        ],
        "commitId" : "d4b7d7bea2cedf9903192458f88d8f5d825c4b72",
        "timestamp" : 1754937544000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Removed unused import from ClazzListScreen\u000a",
        "date" : "2025-08-12 00:09:04 +0530",
        "id" : "d4b7d7bea2cedf9903192458f88d8f5d825c4b72",
        "msg" : "Removed unused import from ClazzListScreen",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "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/addclazz/AddClazzViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/addclazz/AddClazzScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt"
        ],
        "commitId" : "ca60ee4c93762edcdf08245cc732d4e2e9bd87c7",
        "timestamp" : 1754984137000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Add calendar icon to date fields in AddClazzScreen\u000a\u000aThis commit introduces a calendar icon to the start and end date input fields in the `AddClazzScreen`. Clicking the icon will eventually trigger a date picker.\u000a\u000aAdditionally, the following changes were made:\u000a- Set the default start destination in `AppNavHost.kt` to `Acknowledgement`.\u000a- Removed an unused function `onStartDateChange` from `AddClazzViewModel.kt`.\u000a- Displayed start and end dates in `ClazzDetailScreen.kt`.\u000a- Minor code formatting in `ClazzListScreen.kt`.\u000a",
        "date" : "2025-08-12 13:05:37 +0530",
        "id" : "ca60ee4c93762edcdf08245cc732d4e2e9bd87c7",
        "msg" : "Add calendar icon to date fields in AddClazzScreen",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.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/clazz/addclazz/AddClazzScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/addclazz/AddClazzViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterClass.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/addclazz/AddClazzViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
        ],
        "commitId" : "847caa4b4e4bafc23c643e7ff1804f9041049a3a",
        "timestamp" : 1754991378000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Expand fake class data and integrate with UI\u000a\u000aThe fake roster data for classes now includes `description`, `startDate`, and `endDate`.\u000a\u000aThe `ClazzListScreen` has been updated:\u000a- It now uses `ClazzList` for navigation instead of `Clazz`.\u000a- The `onClickClazz` function now accepts a `sourceId` to navigate to the correct class detail.\u000a- The UI displays the class titles from the `oneRoasterClass` list in the UI state.\u000a\u000aThe `AddClazzViewModel` has been updated to include the new fields (`description`, `startDate`, `endDate`) when creating a new class.\u000a",
        "date" : "2025-08-12 15:06:18 +0530",
        "id" : "847caa4b4e4bafc23c643e7ff1804f9041049a3a",
        "msg" : "Expand fake class data and integrate with UI",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterClass.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/addclazz/AddClazzViewModel.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/oneroster/rostering/FakeRosterDataSource.kt"
          },
          {
            "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/viewmodel/clazz/list/ClazzListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortHeader.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/addclazz/AddClazzScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPersonAvatar.kt"
        ],
        "commitId" : "6f20d285e9b90c11e79549575720d830d384f10a",
        "timestamp" : 1754993816000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor: Use default item padding in AddClazzScreen\u000a\u000aThe `AddClazzScreen` has been updated to use the `defaultItemPadding` modifier for consistent padding across its child elements. This replaces individual padding definitions for various `OutlinedTextField` components.\u000a",
        "date" : "2025-08-12 15:46:56 +0530",
        "id" : "6f20d285e9b90c11e79549575720d830d384f10a",
        "msg" : "Refactor: Use default item padding in AddClazzScreen",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortHeader.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/addclazz/AddClazzScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPersonAvatar.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPersonAvatar.kt"
        ],
        "commitId" : "aca85a2586636c67bcbd3bba1baf0b953369fab8",
        "timestamp" : 1754993953000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "RespectPersonAvatar component updated\u000a\u000aThe `RespectPersonAvatar` component now accepts `firstName` and `lastName` parameters directly, instead of a `RespectPerson` object. This simplifies the component's API and makes it more reusable.\u000a\u000aThe component's logic for generating the avatar color and initials has been updated to use the new `firstName` and `lastName` parameters.\u000a",
        "date" : "2025-08-12 15:49:13 +0530",
        "id" : "aca85a2586636c67bcbd3bba1baf0b953369fab8",
        "msg" : "RespectPersonAvatar component updated",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPersonAvatar.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/clazz/list/ClazzListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/addclazz/AddClazzViewModel.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.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/edit/ClazzEditScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/addclazz/AddClazzScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
        ],
        "commitId" : "daaaaaeee340df48641810e5d98f647f8b872693",
        "timestamp" : 1755001136000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor: Rename AddClazz to ClazzEdit\u000a\u000aThis commit refactors the `AddClazz` functionality to `ClazzEdit`.\u000a\u000aThe following changes were made:\u000a- Renamed `AddClazzScreen.kt` to `ClazzEditScreen.kt` and updated its package and internal references.\u000a- Updated `AppKoinModule.kt` to use `ClazzEditViewModel` instead of `AddClazzViewModel`.\u000a- Renamed the `AddClazz` route object to `ClazzEdit` in `AppRoutes.kt`.\u000a- Updated `ClazzDetailViewModel.kt` and `ClazzListViewModel.kt` to navigate to `ClazzEdit` instead of `AddClazz`.\u000a- Renamed `AddClazzViewModel.kt` to `ClazzEditViewModel.kt` and updated its package and internal references, including `AddClazzUiState` to `ClazzEditUiState`.\u000a",
        "date" : "2025-08-12 17:48:56 +0530",
        "id" : "daaaaaeee340df48641810e5d98f647f8b872693",
        "msg" : "Refactor: Rename AddClazz to ClazzEdit",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/addclazz/AddClazzScreen.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/navigation/AppRoutes.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/addclazz/AddClazzViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.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/clazz/detail/ClazzDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
        ],
        "commitId" : "8bb61e2f96ddec429d7d85b64c2cd018cd5402b7",
        "timestamp" : 1755001141000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor: Rename AddClazz to ClazzEdit\u000a\u000aThis commit refactors the `AddClazz` functionality to `ClazzEdit`.\u000a\u000aThe following changes were made:\u000a- Renamed `AddClazzScreen.kt` to `ClazzEditScreen.kt` and updated its package and internal references.\u000a- Updated `AppKoinModule.kt` to use `ClazzEditViewModel` instead of `AddClazzViewModel`.\u000a- Renamed the `AddClazz` route object to `ClazzEdit` in `AppRoutes.kt`.\u000a- Updated `ClazzDetailViewModel.kt` and `ClazzListViewModel.kt` to navigate to `ClazzEdit` instead of `AddClazz`.\u000a- Renamed `AddClazzViewModel.kt` to `ClazzEditViewModel.kt` and updated its package and internal references, including `AddClazzUiState` to `ClazzEditUiState`.\u000a",
        "date" : "2025-08-12 17:49:01 +0530",
        "id" : "8bb61e2f96ddec429d7d85b64c2cd018cd5402b7",
        "msg" : "Refactor: Rename AddClazz to ClazzEdit",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterClass.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.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/clazz/detail/ClazzDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
        ],
        "commitId" : "d12c541ee6a0319ff03b9779d8761308f7945e66",
        "timestamp" : 1755064724000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor: Simplify `OneRosterClass` and update `ClazzDetailViewModel`\u000a\u000aRemoved `description`, `startDate`, and `endDate` fields from `OneRosterClass`.\u000a\u000aUpdated `ClazzDetailViewModel`'s `onClickAcceptInvite` and `onClickDismissInvite` methods to accept a `OneRosterUser` parameter, and adjusted call sites in `ClazzDetailScreen` accordingly.\u000a\u000aThe `ClazzEditViewModel` was also updated to reflect the changes in `OneRosterClass` by removing the assignment of the removed fields.\u000a",
        "date" : "2025-08-13 11:28:44 +0530",
        "id" : "d12c541ee6a0319ff03b9779d8761308f7945e66",
        "msg" : "Refactor: Simplify `OneRosterClass` and update `ClazzDetailViewModel`",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterClass.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"
          }
        ]
      },
      {
        "_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/edit/ClazzEditScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
        ],
        "commitId" : "3bed6f80ecaddc1051d6862c02e2f2d28abb7231",
        "timestamp" : 1755079277000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor ClazzEditScreen to use OneRosterClass for data binding\u000a\u000aThe `ClazzEditScreen` and `ClazzEditViewModel` have been updated to use a `OneRosterClass` object (`entity`) in the UI state for managing class details. This simplifies data handling by directly modifying the `entity` instead of individual string fields.\u000a\u000aThe `onClazzChanged` function in the ViewModel now updates the `entity` in the UI state.\u000a\u000aAdditionally, the start destination of the `NavHost` in `AppNavHost.kt` has been changed from `Acknowledgement` to `RespectAppLauncher`. A new string resource `edit_clazz` has also been added.\u000a",
        "date" : "2025-08-13 15:31:17 +0530",
        "id" : "3bed6f80ecaddc1051d6862c02e2f2d28abb7231",
        "msg" : "Refactor ClazzEditScreen to use OneRosterClass for data binding",
        "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/viewmodel/clazz/edit/ClazzEditViewModel.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/clazz/edit/ClazzEditScreen.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/list/ClazzListViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.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" : "ede2aa8ed49ad541500a010d7db50c2bbd738405",
        "timestamp" : 1755092486000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor: Update ClazzEditScreen with class name validation\u000a\u000aThis commit refactors the `ClazzEditScreen` to include validation for the class name field.\u000a\u000a- The `OutlinedTextField` for the class name now displays an error message if the field is empty and indicates that it is a required field.\u000a- The `onClazzChanged` callback now accepts a non-nullable `OneRosterClass`.\u000a- The `FakeRosterDataSource` is now an object (singleton) and its `putClass` method will update an existing class or add a new one.\u000a- The `ClazzEditViewModel` now initializes with an existing class if `sourcedId` is provided, otherwise, it creates a new `OneRosterClass`.\u000a- The `onSaveClass` method in `ClazzEditViewModel` now performs validation for the class name before saving and updates the `dateLastModified` timestamp.\u000a- A new string resource `required` has been added.\u000a",
        "date" : "2025-08-13 19:11:26 +0530",
        "id" : "ede2aa8ed49ad541500a010d7db50c2bbd738405",
        "msg" : "Refactor: Update ClazzEditScreen with class name validation",
        "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/clazz/list/ClazzListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.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/clazz/list/ClazzListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "4013b9d6bdae34c9743b9c014ece1eee334d3abf",
        "timestamp" : 1755099327000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Updated `ClazzDetail` route to accept `sourcedId` as a parameter.\u000a\u000aThe `ClazzDetailViewModel` now retrieves and displays the class title based on the `sourcedId` from the route.\u000aThe `ClazzListViewModel` now navigates to `ClazzDetail` with the `sourcedId` when a class is clicked.\u000a",
        "date" : "2025-08-13 21:05:27 +0530",
        "id" : "4013b9d6bdae34c9743b9c014ece1eee334d3abf",
        "msg" : "Updated `ClazzDetail` route to accept `sourcedId` as a parameter.",
        "paths" : [
          {
            "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/clazz/detail/ClazzDetailViewModel.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/navigation/AppRoutes.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/clazz/detail/ClazzDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
        ],
        "commitId" : "5df3280da87b3165000161051b52f77c4158dc74",
        "timestamp" : 1755100928000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor `ClazzEdit` route to accept `sourcedId`\u000a\u000aThe `ClazzEdit` route has been modified to accept an optional `sourcedId` parameter.\u000a\u000a- If `sourcedId` is provided, the `ClazzEditViewModel` will fetch the corresponding class data for editing.\u000a- If `sourcedId` is null, a new class will be created.\u000a\u000aThis change allows for both editing existing classes and creating new ones through the same route and view model. Navigations from `ClazzDetailViewModel` and `ClazzListViewModel` have been updated to utilize this new `ClazzEdit` route structure.\u000a",
        "date" : "2025-08-13 21:32:08 +0530",
        "id" : "5df3280da87b3165000161051b52f77c4158dc74",
        "msg" : "Refactor `ClazzEdit` route to accept `sourcedId`",
        "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/list/ClazzListViewModel.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/navigation/AppRoutes.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/ModifierExt.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
        ],
        "commitId" : "91970e96f3e58488951bb23985fefe952f17f26a",
        "timestamp" : 1755103463000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Enhance class editing with description and date fields\u000a\u000aThis commit introduces several improvements to the class editing functionality:\u000a\u000a- **Description Field:** Added an `OutlinedTextField` for users to input a description (location) for the class. This field is now saved when the class is updated.\u000a- **Date Fields (UI only):** Added `OutlinedTextField` components for start and end dates. These are currently UI elements and not yet connected to data or saving logic.\u000a- **Padding Standardization:** Introduced an `editScreenPadding` modifier for consistent padding across edit screen elements.\u000a- **Fake Data Update:** The `FakeRosterDataSource` now includes a `location` (description) field for dummy class data.\u000a- **ViewModel Logic:** The `ClazzEditViewModel` now handles saving the class description.\u000a",
        "date" : "2025-08-13 22:14:23 +0530",
        "id" : "91970e96f3e58488951bb23985fefe952f17f26a",
        "msg" : "Enhance class editing with description and date fields",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/ModifierExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt"
        ],
        "commitId" : "fdd8847f3a30a1295a91aec628930ab44aad53a6",
        "timestamp" : 1755103495000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Remove unused imports from ClazzEditScreen\u000a\u000aThe imports `androidx.compose.ui.platform.testTag` and `world.respect.app.components.defaultItemPadding` were removed as they were no longer being used in the `ClazzEditScreen.kt` file.\u000a",
        "date" : "2025-08-13 22:14:55 +0530",
        "id" : "fdd8847f3a30a1295a91aec628930ab44aad53a6",
        "msg" : "Remove unused imports from ClazzEditScreen",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
        ],
        "commitId" : "065cee60d906e68840393ccb510176c84392409c",
        "timestamp" : 1755103571000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Set Acknowledgement as start destination\u000a",
        "date" : "2025-08-13 22:16:11 +0530",
        "id" : "065cee60d906e68840393ccb510176c84392409c",
        "msg" : "Set Acknowledgement as start destination",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
        ],
        "commitId" : "0cce2c7a61899a9df7216ede8ba0fc09ddf1d3bf",
        "timestamp" : 1755103602000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Set Acknowledgement as start destination\u000a",
        "date" : "2025-08-13 22:16:42 +0530",
        "id" : "0cce2c7a61899a9df7216ede8ba0fc09ddf1d3bf",
        "msg" : "Set Acknowledgement as start destination",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.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/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/clazz/detail/ClazzDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/addperson/AddPersonToClazzViewModel.kt"
        ],
        "commitId" : "f2fc77be097219d710b4a0cf978a13ffaa8c721f",
        "timestamp" : 1755503986000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor AddPersonToClazz route to accept roleType\u000a\u000aThe `AddPersonToClazz` route has been updated to accept a `roleType` parameter. This allows the `AddPersonToClazzViewModel` to dynamically set the screen title based on whether a teacher or student is being added.\u000a\u000aThe `ClazzDetailViewModel` and `ClazzDetailScreen` have been updated to pass the appropriate `roleType` when navigating to the `AddPersonToClazz` screen.\u000a\u000aAdditionally, the `ClazzDetailScreen` now displays the class location if available.\u000a",
        "date" : "2025-08-18 13:29:46 +0530",
        "id" : "f2fc77be097219d710b4a0cf978a13ffaa8c721f",
        "msg" : "Refactor AddPersonToClazz route to accept roleType",
        "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-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/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/addperson/AddPersonToClazzViewModel.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/list/ClazzListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/addperson/AddPersonToClazzViewModel.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" : "10c9a0c729d3708cdf9f6a805faf0c10f12381b7",
        "timestamp" : 1755516475000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "using asUiText\u000a",
        "date" : "2025-08-18 16:57:55 +0530",
        "id" : "10c9a0c729d3708cdf9f6a805faf0c10f12381b7",
        "msg" : "using asUiText",
        "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/addperson/AddPersonToClazzViewModel.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/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/addperson/AddPersonToClazzViewModel.kt"
        ],
        "commitId" : "f313fe448f5112e13023793183a9150e73878ea9",
        "timestamp" : 1755516495000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "using asUiText\u000a",
        "date" : "2025-08-18 16:58:15 +0530",
        "id" : "f313fe448f5112e13023793183a9150e73878ea9",
        "msg" : "using asUiText",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/addperson/AddPersonToClazzViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
        ],
        "commitId" : "43cb162bfbe74af17144076445ae0c10f93af598",
        "timestamp" : 1755542507000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "I hva ecommented the description UI once description field is added it will be uncommented ad functional\u000a",
        "date" : "2025-08-19 00:11:47 +0530",
        "id" : "43cb162bfbe74af17144076445ae0c10f93af598",
        "msg" : "I hva ecommented the description UI once description field is added it will be uncommented ad functional",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.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/clazz/edit/ClazzEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.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/clazz/list/ClazzListViewModel.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" : "f5276dfca725ea47c330c4fe83d3e9a84b1fca48",
        "timestamp" : 1755590718000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "I hvae commented the description UI once description field is added it will be uncommented ad functional\u000a",
        "date" : "2025-08-19 13:35:18 +0530",
        "id" : "f5276dfca725ea47c330c4fe83d3e9a84b1fca48",
        "msg" : "I hvae commented the description UI once description field is added it will be uncommented ad functional",
        "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/navigation/AppRoutes.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/clazz/list/ClazzListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
        ],
        "commitId" : "6b8f67b39c413cd4f972e7eec2d2acfe07693c37",
        "timestamp" : 1755594740000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Remove unused location property in ClazzEditViewModel\u000a\u000aThe `location` property was being copied from `initEntity` to `updatedEntity` without modification in `ClazzEditViewModel`. This redundant assignment has been removed.\u000a\u000aAdditionally, several unused imports were removed from `AppKoinModule.kt`.\u000a",
        "date" : "2025-08-19 14:42:20 +0530",
        "id" : "6b8f67b39c413cd4f972e7eec2d2acfe07693c37",
        "msg" : "Remove unused location property in ClazzEditViewModel",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
        ],
        "commitId" : "a8035e4588f15ffc3814c325f0c8cbcdd5bdb03f",
        "timestamp" : 1755604103000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor FakeRosterDataSource to be a class and inject it\u000a\u000aThe `FakeRosterDataSource` has been changed from an `object` to a `class`. This allows it to be injected as a dependency into ViewModels.\u000a\u000aThe following ViewModels have been updated to accept `OneRosterRosterDataSource` as a constructor parameter:\u000a- `ClazzEditViewModel`\u000a- `ClazzListViewModel`\u000a- `ClazzDetailViewModel`\u000a\u000aA Koin binding for `OneRosterRosterDataSource` has been added in `AppKoinModule.kt`, providing an instance of `FakeRosterDataSource`.\u000a",
        "date" : "2025-08-19 17:18:23 +0530",
        "id" : "a8035e4588f15ffc3814c325f0c8cbcdd5bdb03f",
        "msg" : "Refactor FakeRosterDataSource to be a class and inject it",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.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/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.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" : "7b8f8c955a1b6da5b848cd1e563f06e57631664d",
        "timestamp" : 1755605951000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Add collapsible sections to ClazzDetailScreen\u000a\u000aThis commit introduces collapsible sections for Pending Invites, Teachers, and Students in the `ClazzDetailScreen`. Users can now expand or collapse these sections to better manage the displayed information.\u000a\u000aChanges include:\u000a- Added `isPendingExpanded`, `isTeachersExpanded`, and `isStudentsExpanded` boolean flags to `ClazzDetailUiState` to manage the visibility of each section.\u000a- Implemented `onTogglePendingSection`, `onToggleTeachersSection`, and `onToggleStudentsSection` functions in `ClazzDetailViewModel` to update the UI state.\u000a- Updated `ClazzDetailScreen` to use these new state flags and functions to conditionally render the content of each section and handle user interactions for expanding/collapsing.\u000a- Added a new string resource `dismiss_invite`.\u000a- Added content descriptions for accessibility to various icons.\u000a",
        "date" : "2025-08-19 17:49:11 +0530",
        "id" : "7b8f8c955a1b6da5b848cd1e563f06e57631664d",
        "msg" : "Add collapsible sections to ClazzDetailScreen",
        "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-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/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "4643f7d106cc61e7f853d11044eb696af18a1962",
        "timestamp" : 1755606136000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Remove extraneous blank lines\u000a\u000aExtraneous blank lines have been removed from the `ClazzDetailScreen` when the teacher and student lists are expanded.\u000a",
        "date" : "2025-08-19 17:52:16 +0530",
        "id" : "4643f7d106cc61e7f853d11044eb696af18a1962",
        "msg" : "Remove extraneous blank lines",
        "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-test-end-to-end/android-maestro/e2e-tests/003_create_classes_test.yaml",
          "respect-test-end-to-end/android-maestro/e2e-tests/001_browse_lessons_test.yaml"
        ],
        "commitId" : "0643d111c7d24ea050688aeb681a378e0eb6630a",
        "timestamp" : 1755609340000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "maestro test added - as per prototype for classes\u000a",
        "date" : "2025-08-19 17:15:40 +0400",
        "id" : "0643d111c7d24ea050688aeb681a378e0eb6630a",
        "msg" : "maestro test added - as per prototype for classes",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-test-end-to-end/android-maestro/e2e-tests/001_browse_lessons_test.yaml"
          },
          {
            "editType" : "add",
            "file" : "respect-test-end-to-end/android-maestro/e2e-tests/003_create_classes_test.yaml"
          }
        ]
      },
      {
        "_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"
        ],
        "commitId" : "9a2963fd60ed21e8a149878379be6eb65c58e19b",
        "timestamp" : 1755770360000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Add content descriptions to expand/collapse icons in ClazzDetailScreen\u000a\u000aAdded new string resources for expand/collapse actions for pending invites, teachers, and student lists.\u000aUpdated ClazzDetailScreen to use these strings for the contentDescription of the expand/collapse icons.\u000a",
        "date" : "2025-08-21 15:29:20 +0530",
        "id" : "9a2963fd60ed21e8a149878379be6eb65c58e19b",
        "msg" : "Add content descriptions to expand/collapse icons in ClazzDetailScreen",
        "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"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-test-end-to-end/android-maestro/e2e-tests/003_create_classes_test.yaml",
          "respect-test-end-to-end/android-maestro/e2e-tests/001_browse_lessons_test.yaml"
        ],
        "commitId" : "545d969c2b153ef298687888ee7c77e6ce9969f6",
        "timestamp" : 1755783587000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "maestro test login updated\u000a",
        "date" : "2025-08-21 17:39:47 +0400",
        "id" : "545d969c2b153ef298687888ee7c77e6ce9969f6",
        "msg" : "maestro test login updated",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-test-end-to-end/android-maestro/e2e-tests/003_create_classes_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : "respect-test-end-to-end/android-maestro/e2e-tests/001_browse_lessons_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
        ],
        "commitId" : "0a04537025e61b132359b6208947f071af77ad63",
        "timestamp" : 1755854320000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor string resource usage and remove unused strings\u000a\u000a- Updated `ClazzEditViewModel` to use `Res.string.save.asUiText()` instead of `getString(Res.string.save)`.\u000a- Removed unused string resources: `last_name`, `save`, and `edit` from `strings.xml`.\u000a- Added imports for `people` and `PersonList` in `App.kt`.\u000a",
        "date" : "2025-08-22 14:48:40 +0530",
        "id" : "0a04537025e61b132359b6208947f071af77ad63",
        "msg" : "Refactor string resource usage and remove unused strings",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt"
          },
          {
            "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/edit/ClazzEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.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" : "d08cc53bd6375efe331a11af00c510cd8ab0aee9",
        "timestamp" : 1756103047000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor class ViewModels to use method references for FAB and action bar clicks.\u000a",
        "date" : "2025-08-25 11:54:07 +0530",
        "id" : "d08cc53bd6375efe331a11af00c510cd8ab0aee9",
        "msg" : "Refactor class ViewModels to use method references for FAB and action bar clicks.",
        "paths" : [
          {
            "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/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/OneRosterRosterDataSource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/RealmTypeConverters.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/realm/RealmPrimaryKeyGenerator.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDataSourceDb.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDatabase.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectRealmDataSource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/composites/ClazzListDetails.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterClass.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectRealmDataSourceRepository.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/entities/OneRoasterClassEntity.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/OneRoasterClassDataSourceDb.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectRealmDatabase/1.json",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/dao/OneRoasterClassEntityDao.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRoasterClassAdapter.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
        ],
        "commitId" : "9e67837f347500f6deda04dd6a949463d5c60110",
        "timestamp" : 1756139972000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "feat: Implement OneRosterClass data layer and integrate with UI\u000a\u000aThis commit introduces the data layer for `OneRosterClass`, including:\u000a- Room entity (`OneRosterClassEntity`), DAO (`OneRoasterClassEntityDao`), and database integration.\u000a- Data source implementation (`OneRoasterClassDataSourceDb`) for database operations.\u000a- Adapter for mapping between `OneRosterClass` model and `OneRosterClassEntity`.\u000a- `ClazzListDetails` data class for list view.\u000a- Type converters for `OneRosterBaseStatusEnum` and `JsonObject`.\u000a\u000aUpdates include:\u000a- `RespectRealmDatabase` and `RespectAppDatabase` schemas to include `OneRosterClassEntity`.\u000a- `OneRosterRosterDataSource` interface with new methods for class operations.\u000a- `ClazzEditViewModel` to use the new data source, manage UI state for class editing/creation, and handle saving.\u000a- `ClazzEditScreen` to use the updated `ClazzEditViewModel`.\u000a- `RealmPrimaryKeyGenerator` to include `OneRosterClass.TABLE_ID`.\u000a- `FakeRosterDataSource` is now an abstract class.\u000a- Added `onRoasterDataSource` to `RespectRealmDataSource` and its implementations.\u000a",
        "date" : "2025-08-25 22:09:32 +0530",
        "id" : "9e67837f347500f6deda04dd6a949463d5c60110",
        "msg" : "feat: Implement OneRosterClass data layer and integrate with UI",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/composites/ClazzListDetails.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDatabase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/OneRoasterClassDataSourceDb.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/dao/OneRoasterClassEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/realm/RealmPrimaryKeyGenerator.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/RealmTypeConverters.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRoasterClassAdapter.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectRealmDatabase/1.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterClass.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/entities/OneRoasterClassEntity.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectRealmDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectRealmDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/OneRosterRosterDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/OneRosterRosterDataSource.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/oneroaster/OneRoasterSourceRepository.kt"
        ],
        "commitId" : "662e28c5cf9066741da0749417c2445900c32d8b",
        "timestamp" : 1756197002000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor: Remove unused imports and function from OneRosterRosterDataSource\u000a\u000aRemoved `Person` and `PersonListDetails` imports and the `searchByTitle` function from `OneRosterRosterDataSource.kt` as they were unused.\u000a\u000aAdded new file `OneRoasterSourceRepository.kt`.\u000a",
        "date" : "2025-08-26 14:00:02 +0530",
        "id" : "662e28c5cf9066741da0749417c2445900c32d8b",
        "msg" : "Refactor: Remove unused imports and function from OneRosterRosterDataSource",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/oneroaster/OneRoasterSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/OneRosterRosterDataSource.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectRealmDatabase/2.json"
        ],
        "commitId" : "42ffd533ea8349211f73d0dda60aec2c82ab0d9a",
        "timestamp" : 1756365411000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "feat: Add OneRosterClassEntity to database schema\u000a\u000aThis commit introduces the `OneRosterClassEntity` to the database schema.\u000a\u000aThe `OneRosterClassEntity` includes the following fields:\u000a* `classSourcedId` (Primary Key)\u000a* `classStatus`\u000a* `classDateLastModified`\u000a* `classTitle`\u000a* `classLocation`\u000a* `classMetadata`\u000a\u000aThe database version is updated to 2.\u000a",
        "date" : "2025-08-28 12:46:51 +0530",
        "id" : "42ffd533ea8349211f73d0dda60aec2c82ab0d9a",
        "msg" : "feat: Add OneRosterClassEntity to database schema",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectRealmDatabase/2.json"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/OneRosterRosterDataSource.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/OneRoasterDataSourceLocal.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDataSourceDb.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectRealmDataSource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/OneRosterDataSource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/OneRosterDataSource.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/oneroaster/OneRoasterSourceRepository.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/composites/ClazzListDetails.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/OneRoasterDataSourceDb.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectRealmDataSourceRepository.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.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/oneroaster/OneRoasterClassDataSourceDb.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/dao/OneRoasterClassEntityDao.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
        ],
        "commitId" : "eeae70f1720a83dcc1d3d129e815a43f558c103b",
        "timestamp" : 1756395851000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor OneRosterDataSource and related classes\u000a\u000aThis commit refactors the OneRosterDataSource interface and its implementations.\u000a- Renamed `OneRosterRosterDataSource` to `OneRosterDataSource`.\u000a- Introduced `OneRoasterDataSourceLocal` interface.\u000a- Updated `OneRoasterDataSourceDb` to implement `OneRoasterDataSourceLocal` and added methods for fetching and putting class data.\u000a- Updated `ClazzListDetails` to have a non-nullable title.\u000a- Modified `ClazzEdit` route to remove `modeEdit` parameter.\u000a- Added `deleteBySourcedId` and `findAllListDetailsAsFlow` methods to `OneRoasterClassEntityDao`.\u000a- Updated ViewModels and UI screens to reflect these changes, including fetching class details using flows and adjusting UI based on data loading states.\u000a",
        "date" : "2025-08-28 21:14:11 +0530",
        "id" : "eeae70f1720a83dcc1d3d129e815a43f558c103b",
        "msg" : "Refactor OneRosterDataSource and related classes",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/OneRosterDataSource.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/OneRoasterClassDataSourceDb.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/OneRosterRosterDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectRealmDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/oneroaster/OneRoasterSourceRepository.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/OneRosterDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/OneRoasterDataSourceLocal.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/OneRoasterDataSourceDb.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/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/dao/OneRoasterClassEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/composites/ClazzListDetails.kt"
          },
          {
            "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/viewmodel/clazz/edit/ClazzEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectRealmDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDataSourceDb.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
        ],
        "commitId" : "6c1f8287c21455bae17c070ee820f47a209e8136",
        "timestamp" : 1756395929000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor: Remove unused imports\u000a\u000aRemoved unused imports from various files to improve code cleanliness.\u000a",
        "date" : "2025-08-28 21:15:29 +0530",
        "id" : "6c1f8287c21455bae17c070ee820f47a209e8136",
        "msg" : "Refactor: Remove unused imports",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDataSourceDb.kt"
          },
          {
            "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/viewmodel/clazz/edit/ClazzEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/entities/OneRosterClassEntity.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/OneRoasterDataSourceLocal.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/entities/OneRosterUserEntity.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRosterClassAdapter.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDataSourceDb.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDatabase.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/oneroaster/OneRoasterSourceRepository.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRosterUserAdapter.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/OneRoasterDataSourceDb.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/entities/OneRoasterClassEntity.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/OneRosterDataSourceDb.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectRealmDatabase/1.json",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/dao/OneRosterClassEntityDao.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/dao/OneRoasterClassEntityDao.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRoasterClassAdapter.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/OneRosterDataSourceLocal.kt"
        ],
        "commitId" : "4088f95f8fd66941323073bbe0020dcbbb7692bb",
        "timestamp" : 1756404635000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor: Rename OneRoaster to OneRoster and add User entity\u000a\u000aThis commit renames all instances of \"OneRoaster\" to \"OneRoster\" for consistency.\u000aIt also introduces the `OneRosterUserEntity` and its corresponding adapter and DAO methods.\u000aThe `FakeRosterDataSource.getAllUsers()` method has been commented out.\u000aDatabase schemas have been updated to reflect the new entity and name changes.\u000a",
        "date" : "2025-08-28 23:40:35 +0530",
        "id" : "4088f95f8fd66941323073bbe0020dcbbb7692bb",
        "msg" : "Refactor: Rename OneRoaster to OneRoster and add User entity",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/entities/OneRosterClassEntity.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRoasterClassAdapter.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/OneRosterDataSourceDb.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/OneRosterDataSourceLocal.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDatabase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/dao/OneRosterClassEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectRealmDatabase/1.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/oneroaster/OneRoasterSourceRepository.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRosterUserAdapter.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/entities/OneRoasterClassEntity.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDataSourceDb.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/entities/OneRosterUserEntity.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRosterClassAdapter.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/OneRoasterDataSourceDb.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/dao/OneRoasterClassEntityDao.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/OneRoasterDataSourceLocal.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRosterUserAdapter.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRosterClassAdapter.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt"
        ],
        "commitId" : "62792d5ba945fac38e011b75929bdce010409850",
        "timestamp" : 1756404725000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor OneRoster adapters and FakeRosterDataSource\u000a\u000a- Remove XXStringHasher dependency from `toEntities` functions in `OneRosterUserAdapter` and `OneRosterClassAdapter`.\u000a- Remove commented-out code for `getAllUsers` from `FakeRosterDataSource`.\u000a- Remove unused imports from `FakeRosterDataSource`.\u000a",
        "date" : "2025-08-28 23:42:05 +0530",
        "id" : "62792d5ba945fac38e011b75929bdce010409850",
        "msg" : "Refactor OneRoster adapters and FakeRosterDataSource",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRosterUserAdapter.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRosterClassAdapter.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRosterClassAdapter.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRosterUserAdapter.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/ClazzViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
        ],
        "commitId" : "7ef5eb9a1725efbd3de9b285ab43e2ac9d671e55",
        "timestamp" : 1756405961000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Add input validation for class name in ClazzEditViewModel.\u000a\u000a- Added `clazzNameError` to `ClazzEditUiState` to display validation errors.\u000a- Implemented `onClickSave` to validate if the class name is blank and update `clazzNameError` accordingly.\u000a- Added `onClearError` function to clear `clazzNameError`.\u000a- Updated `ClazzEditScreen` to display the error message and clear it when the input changes.\u000a- Modified `OneRosterUser.toEntities` and `OneRosterClass.toEntities` to accept `XXStringHasher` as a parameter.\u000a- Deleted `ClazzViewModel.kt`.\u000a",
        "date" : "2025-08-29 00:02:41 +0530",
        "id" : "7ef5eb9a1725efbd3de9b285ab43e2ac9d671e55",
        "msg" : "Add input validation for class name in ClazzEditViewModel.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRosterClassAdapter.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/ClazzViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRosterUserAdapter.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClassGUIDRef.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUser.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterOrgGUIDRef.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/OneRosterDataSource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/OneRosterDataSource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterUser.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserProfile.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/GenderToString.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterRole.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/dao/OneRosterClassEntityDao.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRole.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterGUIDRef.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterEnrollment.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGenderEnum.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectRedeemInviteRequest.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/RealmTypeConverters.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterGenderEnum.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterResourceGUIDRef.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/composites/ClazzListDetails.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterClass.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserGUIDRef.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterClassGUIDRef.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterRoleEnum.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/OneRosterDataSourceDb.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleTypeEnum.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBase.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/signup/SignUpScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterRoleEnumExt.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRosterClassAdapter.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterRoleTypeEnum.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/realm/RealmPrimaryKeyGenerator.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterUserGUIDRef.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectRealmDataSource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterEnrollment.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/oneroaster/OneRoasterSourceRepository.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/addperson/AddPersonToClazzViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserId.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/OneRosterDataSourceLocal.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/mock/MockGetInviteInfoUseCase.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterOrgGUIDRef.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnumExt.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterUserId.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterUserProfile.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/composites/ClazzListDetails.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterResourceGUIDRef.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGUIDRef.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDataSourceDb.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/createinviteredeemrequest/RespectRedeemInviteRequestUseCase.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectInviteInfo.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRosterUserAdapter.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClass.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectRealmDataSourceRepository.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterBaseStatusEnum.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBaseStatusEnum.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterBase.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnum.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/OneRosterDataSourceLocal.kt"
        ],
        "commitId" : "e7571aea5e7833f00bd309640fb9eb9d5c5f443b",
        "timestamp" : 1756409986000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor: Move OneRoster models and remove FakeRosterDataSource\u000a\u000a- Moved OneRoster model classes from `world.respect.datalayer.oneroster.rostering.model` to `world.respect.datalayer.oneroster.model`.\u000a- Moved `ClazzListDetails` from `world.respect.datalayer.oneroster.rostering.model.composites` to `world.respect.datalayer.oneroster.composites`.\u000a- Moved `OneRosterDataSource` and `OneRosterDataSourceLocal` from `world.respect.datalayer.oneroster.rostering` to `world.respect.datalayer.oneroster`.\u000a- Deleted `FakeRosterDataSource.kt`.\u000a- Removed `OneRosterBaseStatusEnum` and `JsonObject` type converters from `RealmTypeConverters.kt`.\u000a- Removed `OneRosterClassEntity` and `OneRosterUserEntity` from `RespectAppDatabase`.\u000a- Updated database schema version and identity hash.\u000a- Updated import statements across multiple files to reflect the new package structure.\u000a",
        "date" : "2025-08-29 01:09:46 +0530",
        "id" : "e7571aea5e7833f00bd309640fb9eb9d5c5f443b",
        "msg" : "Refactor: Move OneRoster models and remove FakeRosterDataSource",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterBase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectRedeemInviteRequest.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterOrgGUIDRef.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnum.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDataSourceDb.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnumExt.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGenderEnum.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterResourceGUIDRef.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectRealmDataSourceRepository.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterGenderEnum.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/OneRosterDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterResourceGUIDRef.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterGUIDRef.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserId.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/OneRosterDataSourceDb.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterUserGUIDRef.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClassGUIDRef.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/createinviteredeemrequest/RespectRedeemInviteRequestUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUser.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserGUIDRef.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterRole.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/composites/ClazzListDetails.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterUserProfile.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRosterClassAdapter.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGUIDRef.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserProfile.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRosterUserAdapter.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/OneRosterDataSourceLocal.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/OneRosterDataSource.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterRoleTypeEnum.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/GenderToString.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/RealmTypeConverters.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClass.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectRealmDataSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/composites/ClazzListDetails.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterClassGUIDRef.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterEnrollment.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/signup/SignUpScreen.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterClass.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectInviteInfo.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterUser.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/OneRosterDataSourceLocal.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBaseStatusEnum.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/dao/OneRosterClassEntityDao.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleTypeEnum.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterOrgGUIDRef.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRole.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/oneroaster/OneRoasterSourceRepository.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterRoleEnumExt.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterRoleEnum.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/mock/MockGetInviteInfoUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/addperson/AddPersonToClazzViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/FakeRosterDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/realm/RealmPrimaryKeyGenerator.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterEnrollment.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterBaseStatusEnum.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterUserId.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/RealmTypeConverters.kt"
        ],
        "commitId" : "f8861bb86ba4ba566aa2c28306e9721382ca16e8",
        "timestamp" : 1756410063000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Remove unused imports in RealmTypeConverters.kt.\u000a",
        "date" : "2025-08-29 01:11:03 +0530",
        "id" : "f8861bb86ba4ba566aa2c28306e9721382ca16e8",
        "msg" : "Remove unused imports in RealmTypeConverters.kt.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/RealmTypeConverters.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/RealmTypeConverters.kt"
        ],
        "commitId" : "db4b50064acccde2962e88e6e0bbf99a060aac86",
        "timestamp" : 1756410335000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Add `TypeConverter`s for `OneRosterBaseStatusEnum` and `JsonObject`\u000a\u000aThis commit introduces `TypeConverter`s to handle the conversion between `OneRosterBaseStatusEnum` and `String`, as well as `JsonObject` and `String` for Realm database persistence.\u000a",
        "date" : "2025-08-29 01:15:35 +0530",
        "id" : "db4b50064acccde2962e88e6e0bbf99a060aac86",
        "msg" : "Add `TypeConverter`s for `OneRosterBaseStatusEnum` and `JsonObject`",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/RealmTypeConverters.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/oneroaster/OneRoasterDataSourceRepository.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/dao/OneRosterEntityDao.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/dao/OneRosterClassEntityDao.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/oneroaster/OneRoasterSourceRepository.kt"
        ],
        "commitId" : "f98bc73c2d469a61fa274313dee5f674cb62209b",
        "timestamp" : 1756449794000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor: Rename OneRoasterSourceRepository and OneRosterClassEntityDao\u000a\u000a- Renamed `OneRoasterSourceRepository.kt` to `OneRoasterDataSourceRepository.kt` and updated the class name accordingly.\u000a- Renamed `OneRosterClassEntityDao.kt` to `OneRosterEntityDao.kt`.\u000a",
        "date" : "2025-08-29 12:13:14 +0530",
        "id" : "f98bc73c2d469a61fa274313dee5f674cb62209b",
        "msg" : "Refactor: Rename OneRoasterSourceRepository and OneRosterClassEntityDao",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/oneroaster/OneRoasterSourceRepository.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/dao/OneRosterClassEntityDao.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/oneroaster/OneRoasterDataSourceRepository.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/dao/OneRosterEntityDao.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolPrimaryKeyGenerator.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectInviteInfo.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/mock/MockGetInviteInfoUseCase.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/OneRosterDataSourceDb.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/1.json"
        ],
        "commitId" : "9b3f8a8995accd5efb8ff23fc232859404d3dcc9",
        "timestamp" : 1756461317000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor: Rename Realm to School\u000a\u000aThis commit refactors the codebase to replace references to \"Realm\" with \"School\" to better reflect the domain model.\u000a\u000aSpecific changes include:\u000a- Renamed `RespectRealmDataSource` to `SchoolDataSource`.\u000a- Renamed `RealmPrimaryKeyGenerator` to `SchoolPrimaryKeyGenerator`.\u000a- Updated `RespectInviteInfo` to use `SchoolDirectoryEntry` instead of `RespectRealm`.\u000a- Moved OneRoster related entities (`OneRosterClassEntity`, `OneRosterUserEntity`) and DAOs to `RespectSchoolDatabase` schema.\u000a- Updated `OneRosterDataSourceDb` to use `RespectSchoolDatabase` instead of `RespectRealmDatabase`.\u000a- Adjusted type converters and ViewModel dependencies accordingly.\u000a",
        "date" : "2025-08-29 15:25:17 +0530",
        "id" : "9b3f8a8995accd5efb8ff23fc232859404d3dcc9",
        "msg" : "Refactor: Rename Realm to School",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.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/domain/school/SchoolPrimaryKeyGenerator.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectInviteInfo.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/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/OneRosterDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/1.json"
          },
          {
            "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/domain/mock/MockGetInviteInfoUseCase.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt"
        ],
        "commitId" : "30a42888ad42742bfec2a1de238a089fc51f3381",
        "timestamp" : 1756464437000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "remove\u000a",
        "date" : "2025-08-29 16:17:17 +0530",
        "id" : "30a42888ad42742bfec2a1de238a089fc51f3381",
        "msg" : "remove",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "2d70a44bafbd608b9920a6c9f4ec7ffe3ea4e3c4",
        "timestamp" : 1756464576000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "refactor\u000a",
        "date" : "2025-08-29 16:19:36 +0530",
        "id" : "2d70a44bafbd608b9920a6c9f4ec7ffe3ea4e3c4",
        "msg" : "refactor",
        "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-test-end-to-end/android-maestro/e2e-tests/003_create_classes_test.yaml",
          "respect-test-end-to-end/android-maestro/e2e-tests/001_browse_lessons_test.yaml",
          "respect-test-end-to-end/android-maestro/e2e-tests/common/school_admin_login_flow.yaml"
        ],
        "commitId" : "fa30eecb80ea957f9b799be74c9a0f02c386ea00",
        "timestamp" : 1756713607000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "changes made as per review comments\u000a",
        "date" : "2025-09-01 12:00:07 +0400",
        "id" : "fa30eecb80ea957f9b799be74c9a0f02c386ea00",
        "msg" : "changes made as per review comments",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-test-end-to-end/android-maestro/e2e-tests/003_create_classes_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : "respect-test-end-to-end/android-maestro/e2e-tests/001_browse_lessons_test.yaml"
          },
          {
            "editType" : "add",
            "file" : "respect-test-end-to-end/android-maestro/e2e-tests/common/school_admin_login_flow.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/oneroaster/OneRoasterDataSourceRepository.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/oneroaster/OneRosterDataSourceRepository.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/oneroaster/OneRosterDataSourceDb.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/OneRosterDataSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRosterUserAdapter.kt"
        ],
        "commitId" : "25fd20fe11b4570190a7004fb20d140e2df65e21",
        "timestamp" : 1756720400000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "using PersonEntity\u000a",
        "date" : "2025-09-01 15:23:20 +0530",
        "id" : "25fd20fe11b4570190a7004fb20d140e2df65e21",
        "msg" : "using PersonEntity",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/OneRosterDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRosterUserAdapter.kt"
          },
          {
            "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/daos/PersonEntityDao.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/oneroaster/OneRosterDataSourceRepository.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/oneroaster/OneRoasterDataSourceRepository.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/oneroaster/OneRosterDataSourceDb.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/oneroaster/OneRosterDataSourceRepository.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/OneRosterDataSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/OneRosterDataSourceDb.kt"
        ],
        "commitId" : "685806d38aec39aabdea6514064d763ef230d32d",
        "timestamp" : 1756722008000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "using PersonEntity\u000a",
        "date" : "2025-09-01 15:50:08 +0530",
        "id" : "685806d38aec39aabdea6514064d763ef230d32d",
        "msg" : "using PersonEntity",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/OneRosterDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/oneroaster/OneRosterDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/OneRosterDataSource.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "412c3323e3ede6bbe98ad425564702c6ac151f66",
        "timestamp" : 1756722045000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "using PersonEntity\u000a",
        "date" : "2025-09-01 15:50:45 +0530",
        "id" : "412c3323e3ede6bbe98ad425564702c6ac151f66",
        "msg" : "using PersonEntity",
        "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-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.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/list/ClazzListScreen.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.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/clazz/edit/ClazzEditScreen.kt"
        ],
        "commitId" : "54a132f53705128391efb55f90820a61020c8016",
        "timestamp" : 1756799423000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor: Add sourcedId parameter to getAllUsers\u000a\u000aThis commit updates the `getAllUsers` method across the data layer and view models to include a `sourcedId` parameter. This allows filtering users by a specific source.\u000a\u000aChanges include:\u000a- Modified `PersonDataSource`, `PersonDataSourceDb`, `PersonDataSourceRepository`, and `PersonEntityDao` to accept `sourcedId` in `getAllUsers`.\u000a- Updated `ClazzDetailViewModel` to pass `sourcedId` when fetching users.\u000a- Refactored lambda expressions to member references in `ClazzDetailScreen`, `ClazzEditScreen`, and `ClazzListScreen` for conciseness.\u000a",
        "date" : "2025-09-02 13:20:23 +0530",
        "id" : "54a132f53705128391efb55f90820a61020c8016",
        "msg" : "Refactor: Add sourcedId parameter to getAllUsers",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.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/daos/PersonEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "gradle/libs.versions.toml",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "71582c4651db1cb83aa088ced213210a23458513",
        "timestamp" : 1757406015000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor: Update AGP version and ClazzListScreen UI\u000a\u000aThis commit updates the Android Gradle Plugin (AGP) version from 8.12.0 to 8.12.2.\u000a\u000aIt also refactors the `ClazzListScreen` and `ClazzDetailScreen`:\u000a- In `ClazzListScreen`:\u000a    - Renamed `onSortOrderChanged` parameter to `onClickSortOption` for clarity.\u000a    - Introduced a new `sortListMode` parameter to customize the sorting UI, defaulting to `defaultSortListMode()`.\u000a    - Passed the `sortListMode` to the `RespectListSortHeader`.\u000a- In `ClazzDetailScreen`:\u000a    - Minor code formatting changes for readability, primarily adding explicit `items` parameter names in `itemsIndexed` calls and adjusting newlines.\u000a",
        "date" : "2025-09-09 13:50:15 +0530",
        "id" : "71582c4651db1cb83aa088ced213210a23458513",
        "msg" : "Refactor: Update AGP version and ClazzListScreen UI",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "gradle/libs.versions.toml"
          },
          {
            "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/clazz/list/ClazzListScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/OneRosterPrimaryKeyGenerator.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
        ],
        "commitId" : "16fced69090d5955fed6be4222d4c9641efd60d5",
        "timestamp" : 1757496883000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor: Implement OneRoster primary key generation and update data sources\u000a\u000aThis commit introduces `OneRosterPrimaryKeyGenerator` for creating primary keys specific to OneRoster entities. It also updates `PersonDataSourceHttp` and `SchoolDataSourceHttp` to align with OneRoster data handling.\u000a\u000aChanges include:\u000a- Added `OneRosterPrimaryKeyGenerator` data class.\u000a- Implemented `getAllUsers(sourcedId: String)` in `PersonDataSourceHttp`.\u000a- Added `onRoasterDataSource` property to `SchoolDataSourceHttp`.\u000a- Removed unused imports and updated dependencies in `AppKoinModule.kt`.\u000a",
        "date" : "2025-09-10 15:04:43 +0530",
        "id" : "16fced69090d5955fed6be4222d4c9641efd60d5",
        "msg" : "Refactor: Implement OneRoster primary key generation and update data sources",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/OneRosterPrimaryKeyGenerator.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-test-end-to-end/android-maestro/e2e-tests/common/setDate.js",
          "respect-test-end-to-end/android-maestro/e2e-tests/003_create_classes_test.yaml"
        ],
        "commitId" : "a0e663830b7ef1939a4b242f3708a919d7a0215f",
        "timestamp" : 1757503076000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "fix date\u000a",
        "date" : "2025-09-10 15:17:56 +0400",
        "id" : "a0e663830b7ef1939a4b242f3708a919d7a0215f",
        "msg" : "fix date",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-test-end-to-end/android-maestro/e2e-tests/common/setDate.js"
          },
          {
            "editType" : "edit",
            "file" : "respect-test-end-to-end/android-maestro/e2e-tests/003_create_classes_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
        ],
        "commitId" : "bdbfacaed82d329f03f70d34ca35bcaeedab2d10",
        "timestamp" : 1757509916000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor: Remove unused imports and string resources\u000a\u000aThis commit removes unused imports from `AppNavHost.kt` and deletes unused string resources related to \"Language\" and \"Description\". It also standardizes \"Report\" and \"Reports\" string resources.\u000a\u000aChanges include:\u000a- Removed `ReportScreen` and `ReportViewModel` imports from `AppNavHost.kt`.\u000a- Removed `RespectAppLauncher` and `RespectAppList` navigation imports from `AppNavHost.kt`.\u000a- Updated `strings.xml` to have both singular \"Report\" and plural \"Reports\".\u000a- Removed \"language\" and \"description\" string resources from `strings.xml`.\u000a",
        "date" : "2025-09-10 18:41:56 +0530",
        "id" : "bdbfacaed82d329f03f70d34ca35bcaeedab2d10",
        "msg" : "Refactor: Remove unused imports and string resources",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt"
        ],
        "commitId" : "df8ab60e67726539bfe3e3acc82043fbe52ebe3c",
        "timestamp" : 1757576046000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor: Remove nested launch in ClazzListViewModel\u000a\u000aThis commit simplifies the `ClazzListViewModel` by removing a nested `viewModelScope.launch` within the collection of `schoolDataSource.onRoasterDataSource.findAll`. The inner launch was redundant as the collection itself is performed within a coroutine scope.\u000a",
        "date" : "2025-09-11 13:04:06 +0530",
        "id" : "df8ab60e67726539bfe3e3acc82043fbe52ebe3c",
        "msg" : "Refactor: Remove nested launch in ClazzListViewModel",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSource.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/ModifierExt.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClazzEntityDao.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/SharedConverters.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.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/adapters/ClassAdapter.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Clazz.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/list/IndicatorListScreen.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/FilterChipsOption.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectRememberPager.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/detail/IndicatorDetailScreen.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSourceLocal.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/1.json",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
        ],
        "commitId" : "324a0ddf4c5b71f498f8478030bb8bbf61902046",
        "timestamp" : 1757598334000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Refactoring class datasource.\u000a",
        "date" : "2025-09-11 17:45:34 +0400",
        "id" : "324a0ddf4c5b71f498f8478030bb8bbf61902046",
        "msg" : "Refactoring class datasource.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/FilterChipsOption.kt"
          },
          {
            "editType" : "add",
            "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/SchoolDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt"
          },
          {
            "editType" : "add",
            "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/SchoolDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Clazz.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSourceLocal.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClazzEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/1.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/ModifierExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.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/clazz/list/ClazzListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/SharedConverters.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/detail/IndicatorDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectRememberPager.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/list/IndicatorListScreen.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/edit/ClazzEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/detail/IndicatorDetailScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt"
        ],
        "commitId" : "6d22e01d8f5e443b1aec21b4001503c6334e3ebb",
        "timestamp" : 1757599189000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Fix defaultItemPadding usage.\u000a",
        "date" : "2025-09-11 17:59:49 +0400",
        "id" : "6d22e01d8f5e443b1aec21b4001503c6334e3ebb",
        "msg" : "Fix defaultItemPadding usage.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/detail/IndicatorDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/list/IndicatorListScreen.kt"
        ],
        "commitId" : "c5d4c1e52965dafad8a4450f82b2aa742f3aa16e",
        "timestamp" : 1757601631000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Fix defaultItemPadding usage.\u000a",
        "date" : "2025-09-11 18:40:31 +0400",
        "id" : "c5d4c1e52965dafad8a4450f82b2aa742f3aa16e",
        "msg" : "Fix defaultItemPadding usage.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/list/IndicatorListScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/entities/OneRosterClassEntity.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRosterClassAdapter.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/entities/OneRosterUserEntity.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ClassAdapter.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/dao/OneRosterEntityDao.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/OneRosterDataSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRosterUserAdapter.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/OneRosterDataSourceLocal.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/oneroaster/OneRosterDataSourceRepository.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/OneRosterDataSourceDb.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/1.json"
        ],
        "commitId" : "ec9ba3de26dc7289d03609985ef6ae5ec467476e",
        "timestamp" : 1757661885000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Remove OneRoster data source / entity classes.\u000a",
        "date" : "2025-09-12 11:24:45 +0400",
        "id" : "ec9ba3de26dc7289d03609985ef6ae5ec467476e",
        "msg" : "Remove OneRoster data source / entity classes.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/oneroaster/OneRosterDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/1.json"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRosterClassAdapter.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/dao/OneRosterEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ClassAdapter.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/OneRosterDataSourceLocal.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/entities/OneRosterClassEntity.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/entities/OneRosterUserEntity.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/OneRosterDataSource.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/adapter/OneRosterUserAdapter.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/oneroaster/OneRosterDataSourceDb.kt"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
      "fullName" : "Mike Dawson"
    },
    {
      "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
      "fullName" : "Pooja Ravi"
    },
    {
      "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
      "fullName" : "mandvi.verma"
    }
  ]
}