{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.triggers.TimerTrigger$TimerTriggerCause",
          "shortDescription" : "Started by timer"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/dev-enrollment" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 3,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "73c70579c4c2153082a2ee10cc11b2f8730818d7",
            "branch" : [
              {
                "SHA1" : "73c70579c4c2153082a2ee10cc11b2f8730818d7",
                "name" : "refs/remotes/origin/dev-enrollment"
              }
            ]
          },
          "revision" : {
            "SHA1" : "73c70579c4c2153082a2ee10cc11b2f8730818d7",
            "branch" : [
              {
                "SHA1" : "73c70579c4c2153082a2ee10cc11b2f8730818d7",
                "name" : "refs/remotes/origin/dev-enrollment"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "73c70579c4c2153082a2ee10cc11b2f8730818d7",
        "branch" : [
          {
            "SHA1" : "73c70579c4c2153082a2ee10cc11b2f8730818d7",
            "name" : "refs/remotes/origin/dev-enrollment"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/UstadMobile/Respect.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    {
      "displayPath" : "respect-app-compose-debug.apk",
      "fileName" : "respect-app-compose-debug.apk",
      "relativePath" : "respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk"
    },
    {
      "displayPath" : "respect-app-compose-release.apk",
      "fileName" : "respect-app-compose-release.apk",
      "relativePath" : "respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk"
    },
    {
      "displayPath" : "respect-app-compose-debug.aab",
      "fileName" : "respect-app-compose-debug.aab",
      "relativePath" : "respect-app-compose/build/outputs/bundle/debug/respect-app-compose-debug.aab"
    },
    {
      "displayPath" : "respect-app-compose-release.aab",
      "fileName" : "respect-app-compose-release.aab",
      "relativePath" : "respect-app-compose/build/outputs/bundle/release/respect-app-compose-release.aab"
    },
    {
      "displayPath" : "mapping.txt",
      "fileName" : "mapping.txt",
      "relativePath" : "respect-app-compose/build/outputs/mapping/release/mapping.txt"
    },
    {
      "displayPath" : "respect-cli.zip",
      "fileName" : "respect-cli.zip",
      "relativePath" : "respect-cli/build/distributions/respect-cli.zip"
    },
    {
      "displayPath" : "respect-server-1.0.0.zip",
      "fileName" : "respect-server-1.0.0.zip",
      "relativePath" : "respect-server/build/distributions/respect-server-1.0.0.zip"
    },
    {
      "displayPath" : "respect-server-shadow-1.0.0.zip",
      "fileName" : "respect-server-shadow-1.0.0.zip",
      "relativePath" : "respect-server/build/distributions/respect-server-shadow-1.0.0.zip"
    }
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#3",
  "duration" : 152233,
  "estimatedDuration" : 130715,
  "executor" : None,
  "fullDisplayName" : "RESPECT-dev-enrollment #3",
  "id" : "3",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 3,
  "queueId" : 4198,
  "result" : "SUCCESS",
  "timestamp" : 1762881600957,
  "url" : "https://devserver3.ustadmobile.com/jenkins/job/RESPECT-dev-enrollment/3/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/Application.kt",
          "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDb.kt",
          "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AddChildAccountRoute.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseClient.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCase.kt",
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt",
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/util/toPerson.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt"
        ],
        "commitId" : "4e708351f18e476e5de8a75cbdf663fc8a8d0b77",
        "timestamp" : 1759486111000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "addchild usecase added\u000a",
        "date" : "2025-10-03 15:38:31 +0530",
        "id" : "4e708351f18e476e5de8a75cbdf663fc8a8d0b77",
        "msg" : "addchild usecase added",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AddChildAccountRoute.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/util/toPerson.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/Application.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDb.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseClient.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonRelatedPersonEntity.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json",
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDb.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseClient.kt",
          "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AddChildAccountRoute.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCase.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt"
        ],
        "commitId" : "e1374d6d70128e2a73dc8f7615ecba135533203e",
        "timestamp" : 1759751418000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "CHANGES relatd to adding child\u000a",
        "date" : "2025-10-06 17:20:18 +0530",
        "id" : "e1374d6d70128e2a73dc8f7615ecba135533203e",
        "msg" : "CHANGES relatd to adding child",
        "paths" : [
          {
            "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/domain/account/child/AddChildAccountUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseClient.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AddChildAccountRoute.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonRelatedPersonEntity.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/Application.kt",
          "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt",
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDb.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseClient.kt",
          "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AddChildAccountRoute.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCase.kt",
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/util/toPerson.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/toPerson.kt"
        ],
        "commitId" : "f0aa9448365392bebd27a510c31b63bfe686c06c",
        "timestamp" : 1759832970000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "CHANGES relatd to adding child\u000a",
        "date" : "2025-10-07 15:59:30 +0530",
        "id" : "f0aa9448365392bebd27a510c31b63bfe686c06c",
        "msg" : "CHANGES relatd to adding child",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/toPerson.kt"
          },
          {
            "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/domain/account/child/AddChildAccountUseCaseClient.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/util/toPerson.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AddChildAccountRoute.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/Application.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_002_Parent_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows-in-progress/001_003_student_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows-in-progress/001_002_Parent_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows-in-progress/001_004_user_login_via_invite_link_and_browse_lessons_test.yaml",
          ".maestro/flows/001_003_student_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows-in-progress/001_001_user_login_to _app_with_school_name_test.yaml",
          ".maestro/flows-in-progress/003_create_classes_test.yaml",
          ".maestro/flows/subflows/school_admin_login_flow.yaml"
        ],
        "commitId" : "531514b9c23df87713d4b66e9c5feb9b4aa83958",
        "timestamp" : 1759913416000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "user-signup-e2e\u000a",
        "date" : "2025-10-08 12:50:16 +0400",
        "id" : "531514b9c23df87713d4b66e9c5feb9b4aa83958",
        "msg" : "user-signup-e2e",
        "paths" : [
          {
            "editType" : "delete",
            "file" : ".maestro/flows-in-progress/001_002_Parent_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows-in-progress/001_004_user_login_via_invite_link_and_browse_lessons_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_003_student_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/subflows/school_admin_login_flow.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_002_Parent_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows-in-progress/001_003_student_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows-in-progress/001_001_user_login_to _app_with_school_name_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows-in-progress/003_create_classes_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt"
        ],
        "commitId" : "4c8dab8d68769cffcd685e404dd41d6c4894a814",
        "timestamp" : 1759931796000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "crash fix\u000a",
        "date" : "2025-10-08 19:26:36 +0530",
        "id" : "4c8dab8d68769cffcd685e404dd41d6c4894a814",
        "msg" : "crash fix",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/subflows/school_admin_login_flow.yaml"
        ],
        "commitId" : "ad0dc93001152f7db49f0af07c97d1781e410b03",
        "timestamp" : 1759994962000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "added clearstate\u000a",
        "date" : "2025-10-09 11:29:22 +0400",
        "id" : "ad0dc93001152f7db49f0af07c97d1781e410b03",
        "msg" : "added clearstate",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/subflows/school_admin_login_flow.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_003_student_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows/001_002_Parent_user_join_class_using_invitecode_test.yaml"
        ],
        "commitId" : "ff9209d2cb3a067ae24039b2b7af145678b2d8e9",
        "timestamp" : 1759997336000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "added teardown\u000a",
        "date" : "2025-10-09 12:08:56 +0400",
        "id" : "ff9209d2cb3a067ae24039b2b7af145678b2d8e9",
        "msg" : "added teardown",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_Parent_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_003_student_user_join_class_using_invitecode_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_003_student_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows/001_002_Parent_user_join_class_using_invitecode_test.yaml"
        ],
        "commitId" : "8437330c7a85732e3521d185cb8b6ea37bc82407",
        "timestamp" : 1760000746000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Gender commented\u000a",
        "date" : "2025-10-09 13:05:46 +0400",
        "id" : "8437330c7a85732e3521d185cb8b6ea37bc82407",
        "msg" : "Gender commented",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_Parent_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_003_student_user_join_class_using_invitecode_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_002_Parent_user_join_class_using_invitecode_test.yaml"
        ],
        "commitId" : "8a838a418dfb87b424720dd20880e9f64e45ffdd",
        "timestamp" : 1760003579000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "corrected\u000a",
        "date" : "2025-10-09 13:52:59 +0400",
        "id" : "8a838a418dfb87b424720dd20880e9f64e45ffdd",
        "msg" : "corrected",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_Parent_user_join_class_using_invitecode_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt"
        ],
        "commitId" : "9ef4c495c7569ce306550e8b9f2d699dcfe47ed1",
        "timestamp" : 1760077877000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "https://github.com/UstadMobile/Respect/issues/57\u000afixed\u000a",
        "date" : "2025-10-10 12:01:17 +0530",
        "id" : "9ef4c495c7569ce306550e8b9f2d699dcfe47ed1",
        "msg" : "https://github.com/UstadMobile/Respect/issues/57",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt"
        ],
        "commitId" : "cbb8aaecfd425c833fbd330b012756438a36e563",
        "timestamp" : 1760079330000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "account list not scrollable fixed\u000a",
        "date" : "2025-10-10 12:25:30 +0530",
        "id" : "cbb8aaecfd425c833fbd330b012756438a36e563",
        "msg" : "account list not scrollable fixed",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_003_student_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows/001_002_Parent_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows/subflows/setDate.js"
        ],
        "commitId" : "a83dceea9a6825d7f4cd44a111d8db2c42f3d9cc",
        "timestamp" : 1760092544000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Added mandatory field test\u000a",
        "date" : "2025-10-10 14:35:44 +0400",
        "id" : "a83dceea9a6825d7f4cd44a111d8db2c42f3d9cc",
        "msg" : "Added mandatory field test",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_003_student_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_Parent_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/subflows/setDate.js"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/.gitignore"
        ],
        "commitId" : "6678f7d9ea006667edd9200a2337ca50e29f8995",
        "timestamp" : 1760336780000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "~/StudioProjects/RespectTest/respect-server/log - will getignore\u000a",
        "date" : "2025-10-13 10:26:20 +0400",
        "id" : "6678f7d9ea006667edd9200a2337ca50e29f8995",
        "msg" : "~/StudioProjects/RespectTest/respect-server/log - will getignore",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-server/.gitignore"
          }
        ]
      },
      {
        "_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/manageuser/profile/SignupViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/signup/SignUpScreen.kt"
        ],
        "commitId" : "82c50c290f97821a79300da7d56eb2e4affd887d",
        "timestamp" : 1760340106000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "fix for issue 76\u000a",
        "date" : "2025-10-13 12:51:46 +0530",
        "id" : "82c50c290f97821a79300da7d56eb2e4affd887d",
        "msg" : "fix for issue 76",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.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/manageuser/signup/SignUpScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/signup/SignUpScreen.kt"
        ],
        "commitId" : "67df22b6203f3ff790a5eef821bd0d0cdcc8f68e",
        "timestamp" : 1760349952000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "test tag added\u000a",
        "date" : "2025-10-13 15:35:52 +0530",
        "id" : "67df22b6203f3ff790a5eef821bd0d0cdcc8f68e",
        "msg" : "test tag added",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/signup/SignUpScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_003_student_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows/001_002_Parent_user_join_class_using_invitecode_test.yaml"
        ],
        "commitId" : "a17c57a925ac984812806581558e0453401af380",
        "timestamp" : 1760365980000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "commented mandatory field tests\u000a",
        "date" : "2025-10-13 18:33:00 +0400",
        "id" : "a17c57a925ac984812806581558e0453401af380",
        "msg" : "commented mandatory field tests",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_Parent_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_003_student_user_join_class_using_invitecode_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_002_Parent_user_join_class_using_invitecode_test.yaml"
        ],
        "commitId" : "e81f48d0cbc74bd86a488f54b6817294e18eccb0",
        "timestamp" : 1760367382000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Added hideKeyboard command\u000a",
        "date" : "2025-10-13 18:56:22 +0400",
        "id" : "e81f48d0cbc74bd86a488f54b6817294e18eccb0",
        "msg" : "Added hideKeyboard command",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_Parent_user_join_class_using_invitecode_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_005_teacher_user_join_class_using_invitecode_test.yaml"
        ],
        "commitId" : "bea7e425775659e35cdef0b0e4a0b6f590678f03",
        "timestamp" : 1760451246000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Added teacher flow test\u000a",
        "date" : "2025-10-14 18:14:06 +0400",
        "id" : "bea7e425775659e35cdef0b0e4a0b6f590678f03",
        "msg" : "Added teacher flow test",
        "paths" : [
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_005_teacher_user_join_class_using_invitecode_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_003_student_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows/001_005_teacher_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows/001_002_Parent_user_join_class_using_invitecode_test.yaml"
        ],
        "commitId" : "30950bed18a0af6489fd435aca6ce5c7255a6e5d",
        "timestamp" : 1760465030000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "update test\u000a",
        "date" : "2025-10-14 22:03:50 +0400",
        "id" : "30950bed18a0af6489fd435aca6ce5c7255a6e5d",
        "msg" : "update test",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_003_student_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_Parent_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_005_teacher_user_join_class_using_invitecode_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt"
        ],
        "commitId" : "d3d812738d0bb88d24a81631c97ce0a39c77f855",
        "timestamp" : 1760523096000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "duplicate string remove\u000a",
        "date" : "2025-10-15 15:41:36 +0530",
        "id" : "d3d812738d0bb88d24a81631c97ce0a39c77f855",
        "msg" : "duplicate string remove",
        "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/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_005_teacher_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows/001_002_Parent_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows/001_002_admin_add_class_and_members_test.yaml",
          ".maestro/flows/001_003_student_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows-in-progress/004_create_report_test.yaml"
        ],
        "commitId" : "f509e4f2de541a3acbaba727b7fba1adaa024f5e",
        "timestamp" : 1760606871000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "updated test flow - single test\u000a",
        "date" : "2025-10-16 13:27:51 +0400",
        "id" : "f509e4f2de541a3acbaba727b7fba1adaa024f5e",
        "msg" : "updated test flow - single test",
        "paths" : [
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_002_admin_add_class_and_members_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_002_Parent_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_003_student_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows-in-progress/004_create_report_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_005_teacher_user_join_class_using_invitecode_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_002_admin_add_class_and_members_test.yaml"
        ],
        "commitId" : "c2e3286b7a13bf7782778d4c6a919e8132b18116",
        "timestamp" : 1760607841000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "updated to password*\u000a",
        "date" : "2025-10-16 13:44:01 +0400",
        "id" : "c2e3286b7a13bf7782778d4c6a919e8132b18116",
        "msg" : "updated to password*",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_admin_add_class_and_members_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "93eafde7498c259efe1d4cf1dff68c64c9b694b7",
        "timestamp" : 1760613014000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "merged with main\u000a",
        "date" : "2025-10-16 16:40:14 +0530",
        "id" : "93eafde7498c259efe1d4cf1dff68c64c9b694b7",
        "msg" : "merged with main",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_002_admin_add_class_and_members_test.yaml"
        ],
        "commitId" : "9c70cefe0be1f0334a93ce234cc201731c1e30e2",
        "timestamp" : 1760614914000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "updated to date of birth field\u000a",
        "date" : "2025-10-16 15:41:54 +0400",
        "id" : "9c70cefe0be1f0334a93ce234cc201731c1e30e2",
        "msg" : "updated to date of birth field",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_admin_add_class_and_members_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_002_admin_add_class_and_members_test.yaml"
        ],
        "commitId" : "5004d7112c9391cee0894fbda30de53d45fb8722",
        "timestamp" : 1760615511000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Gender and DOB manadatory field tests\u000a",
        "date" : "2025-10-16 15:51:51 +0400",
        "id" : "5004d7112c9391cee0894fbda30de53d45fb8722",
        "msg" : "Gender and DOB manadatory field tests",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_admin_add_class_and_members_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_002_admin_add_class_and_members_test.yaml"
        ],
        "commitId" : "5bd55d5f7927390dae04be3948effa0c1c96712e",
        "timestamp" : 1760615928000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "DOB can't be future date - test added\u000a",
        "date" : "2025-10-16 15:58:48 +0400",
        "id" : "5bd55d5f7927390dae04be3948effa0c1c96712e",
        "msg" : "DOB can't be future date - test added",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_admin_add_class_and_members_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_002_admin_add_class_and_members_test.yaml"
        ],
        "commitId" : "727667900bd0c5fa55984a9dc2954f6cd1b8a8c7",
        "timestamp" : 1760622554000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "DOB updated test\u000a",
        "date" : "2025-10-16 17:49:14 +0400",
        "id" : "727667900bd0c5fa55984a9dc2954f6cd1b8a8c7",
        "msg" : "DOB updated test",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_admin_add_class_and_members_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt"
        ],
        "commitId" : "52b0310147cd819eb8acf8a4bfa889ee0f62414d",
        "timestamp" : 1760679590000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "changes in SignupViewModel.kt\u000a",
        "date" : "2025-10-17 11:09:50 +0530",
        "id" : "52b0310147cd819eb8acf8a4bfa889ee0f62414d",
        "msg" : "changes in SignupViewModel.kt",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.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/manageuser/profile/SignupViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_002_admin_add_class_and_members_test.yaml"
        ],
        "commitId" : "e27d0c45523a70b7fab40516cf1833ec64821490",
        "timestamp" : 1760684290000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "updated student name and flow change\u000a",
        "date" : "2025-10-17 10:58:10 +0400",
        "id" : "e27d0c45523a70b7fab40516cf1833ec64821490",
        "msg" : "updated student name and flow change",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_admin_add_class_and_members_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCase.kt"
        ],
        "commitId" : "b8eb4a2d11b1efd133c09d11e568067b115efd38",
        "timestamp" : 1760719529000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "changes in SignupViewModel.kt\u000a",
        "date" : "2025-10-17 22:15:29 +0530",
        "id" : "b8eb4a2d11b1efd133c09d11e568067b115efd38",
        "msg" : "changes in SignupViewModel.kt",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCase.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt"
        ],
        "commitId" : "c107200f97bedd6944b39e6e666f1963d62666c6",
        "timestamp" : 1760719842000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "changes in SignupViewModel.kt\u000a",
        "date" : "2025-10-17 22:20:42 +0530",
        "id" : "c107200f97bedd6944b39e6e666f1963d62666c6",
        "msg" : "changes in SignupViewModel.kt",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/addchild/AddChildAccountUseCaseDb.kt",
          "respect-server/src/main/kotlin/world/respect/server/Application.kt",
          "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AddChildAccountRoute.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseClient.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCase.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt"
        ],
        "commitId" : "5c27b3a005a6b87fc70cd1c67a9f2ae7890bc52c",
        "timestamp" : 1760857832000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "changes AddChildAccountUseCase.kt\u000a",
        "date" : "2025-10-19 12:40:32 +0530",
        "id" : "5c27b3a005a6b87fc70cd1c67a9f2ae7890bc52c",
        "msg" : "changes AddChildAccountUseCase.kt",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AddChildAccountRoute.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/school/daos/EnrollmentEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/addchild/AddChildAccountUseCaseDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/Application.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseClient.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/downloader/DownloadIntegrationTest.kt"
        ],
        "commitId" : "ee3fab9a4224f3eff93307dcaea1bc5d94bcff0c",
        "timestamp" : 1760859651000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "commented DownloadIntegrationTest.kt as it contain error\u000a",
        "date" : "2025-10-19 13:10:51 +0530",
        "id" : "ee3fab9a4224f3eff93307dcaea1bc5d94bcff0c",
        "msg" : "commented DownloadIntegrationTest.kt as it contain error",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/downloader/DownloadIntegrationTest.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows-in-progress/001_001_user_login_to _app_with_school_name_test.yaml",
          ".maestro/flows-in-progress/003_create_classes_test.yaml",
          ".maestro/flows-in-progress/001_004_user_login_via_invite_link_and_browse_lessons_test.yaml"
        ],
        "commitId" : "d79ec348b732e6d2a785f574f4516f431e7eb6a5",
        "timestamp" : 1761556487000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Restore deleted Maestro flow test not related to this branch\u000a",
        "date" : "2025-10-27 13:14:47 +0400",
        "id" : "d79ec348b732e6d2a785f574f4516f431e7eb6a5",
        "msg" : "Restore deleted Maestro flow test not related to this branch",
        "paths" : [
          {
            "editType" : "add",
            "file" : ".maestro/flows-in-progress/001_001_user_login_to _app_with_school_name_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows-in-progress/003_create_classes_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows-in-progress/001_004_user_login_via_invite_link_and_browse_lessons_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows-in-progress/004_create_report_test.yaml"
        ],
        "commitId" : "51e018b1e07466605e88fa6e7bb7561385ddd67c",
        "timestamp" : 1761556651000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Restore deleted Maestro flow file 004_create_report_test.yaml\u000a",
        "date" : "2025-10-27 13:17:31 +0400",
        "id" : "51e018b1e07466605e88fa6e7bb7561385ddd67c",
        "msg" : "Restore deleted Maestro flow file 004_create_report_test.yaml",
        "paths" : [
          {
            "editType" : "add",
            "file" : ".maestro/flows-in-progress/004_create_report_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_002_admin_add_class_and_members_test.yaml",
          ".maestro/flows/001_001_invite_using_invite_code_test.yaml"
        ],
        "commitId" : "99aa0a481b144d93d48065f24af883048a7bf7f2",
        "timestamp" : 1761825707000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Updated test flow\u000a",
        "date" : "2025-10-30 16:01:47 +0400",
        "id" : "99aa0a481b144d93d48065f24af883048a7bf7f2",
        "msg" : "Updated test flow",
        "paths" : [
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_002_admin_add_class_and_members_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_001_invite_using_invite_code_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/subflows/setDate.js"
        ],
        "commitId" : "458235695f4e9bec36aca7d702067a21c5a7d677",
        "timestamp" : 1761907655000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Updated setDate.js file\u000a",
        "date" : "2025-10-31 14:47:35 +0400",
        "id" : "458235695f4e9bec36aca7d702067a21c5a7d677",
        "msg" : "Updated setDate.js file",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/subflows/setDate.js"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows-in-progress/001_001_invite_using_invite_code_test.yaml",
          ".maestro/flows/001_001_invite_using_invite_code_test.yaml"
        ],
        "commitId" : "f1c565989e7e91e623aba272324a6737ecc710fa",
        "timestamp" : 1762151988000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "updated to main\u000a",
        "date" : "2025-11-03 10:39:48 +0400",
        "id" : "f1c565989e7e91e623aba272324a6737ecc710fa",
        "msg" : "updated to main",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_001_invite_using_invite_code_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows-in-progress/001_001_invite_using_invite_code_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_001_invite_using_invite_code_test.yaml"
        ],
        "commitId" : "712bb5ab5fdf8a3f357887cdcd8b98e603c194de",
        "timestamp" : 1762237451000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "updated mandatory field error\u000a",
        "date" : "2025-11-04 10:24:11 +0400",
        "id" : "712bb5ab5fdf8a3f357887cdcd8b98e603c194de",
        "msg" : "updated mandatory field error",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_001_invite_using_invite_code_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectGenderExposedDropDownMenuField.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/changepassword/ChangePasswordScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/createaccount/CreateAccountScreen.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/signup/CreateAccountViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/enterpasswordsignup/EnterPasswordSignUpScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
        ],
        "commitId" : "cdd7571010217bbb31d6a0239354b44bbf7b76a5",
        "timestamp" : 1762238509000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "string change\u000a",
        "date" : "2025-11-04 12:11:49 +0530",
        "id" : "cdd7571010217bbb31d6a0239354b44bbf7b76a5",
        "msg" : "string change",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/createaccount/CreateAccountScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/signup/SignUpScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/enterpasswordsignup/EnterPasswordSignUpScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.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/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectGenderExposedDropDownMenuField.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/changepassword/ChangePasswordScreen.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-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectGenderExposedDropDownMenuField.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/changepassword/ChangePasswordScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/createaccount/CreateAccountScreen.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-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/enterpasswordsignup/EnterPasswordSignUpScreen.kt"
        ],
        "commitId" : "79b1be58c0404c8f2316d0a4b14e22a8fd4984e0",
        "timestamp" : 1762241778000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "string change\u000a",
        "date" : "2025-11-04 13:06:18 +0530",
        "id" : "79b1be58c0404c8f2316d0a4b14e22a8fd4984e0",
        "msg" : "string change",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectGenderExposedDropDownMenuField.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/changepassword/ChangePasswordScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/createaccount/CreateAccountScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/enterpasswordsignup/EnterPasswordSignUpScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/signup/SignUpScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectGenderExposedDropDownMenuField.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt"
        ],
        "commitId" : "2a1eadda9a1ee5e6078b74ea34eb8850eab960b0",
        "timestamp" : 1762243506000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "string change\u000a",
        "date" : "2025-11-04 13:35:06 +0530",
        "id" : "2a1eadda9a1ee5e6078b74ea34eb8850eab960b0",
        "msg" : "string change",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectGenderExposedDropDownMenuField.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/edit/ClazzEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/addchild/AddChildAccountUseCaseDb.kt",
          "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EnrollmentEntity.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/EnrollmentAdapter.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseClient.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDataSource.kt"
        ],
        "commitId" : "8c2c5547d4124ec56dea96df08d95e42a9b08471",
        "timestamp" : 1762699364000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Fix EnrollmentEntity for database\u000a\u000aEnrollmentEntity did not store the full uid string of the related class and person, it was relying on a join to the class and person entity. This fails when attempting to create a pending enrollment for a student who profile which is being created as part of a parental registration (on the client).\u000a",
        "date" : "2025-11-09 18:42:44 +0400",
        "id" : "8c2c5547d4124ec56dea96df08d95e42a9b08471",
        "msg" : "Fix EnrollmentEntity for database",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/EnrollmentAdapter.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EnrollmentEntity.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseClient.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/addchild/AddChildAccountUseCaseDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt"
        ],
        "commitId" : "66f6df5bd24d0c4c2dfa1b574c2eddfd59536684",
        "timestamp" : 1762699963000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Update PersonListScreen to make it easier for the Maestro test to get the invite code.\u000a",
        "date" : "2025-11-09 18:52:43 +0400",
        "id" : "66f6df5bd24d0c4c2dfa1b574c2eddfd59536684",
        "msg" : "Update PersonListScreen to make it easier for the Maestro test to get the invite code.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "079da7e476b8ed4d8bf01d23175549c97aef0ec6",
        "timestamp" : 1762757866000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Minor tidy changes:\u000a1) Remove personedit padding on column - each field has its own padding\u000a2) Remove \"dob\" as a string - this is short, but not clear.\u000a",
        "date" : "2025-11-10 10:57:46 +0400",
        "id" : "079da7e476b8ed4d8bf01d23175549c97aef0ec6",
        "msg" : "Minor tidy changes:",
        "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/person/edit/PersonEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_001_invite_using_invite_code_test.yaml"
        ],
        "commitId" : "67f40bec899f985f74f0ce1c10684da932654664",
        "timestamp" : 1762758758000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "updated copy-paste - invite code\u000a",
        "date" : "2025-11-10 11:12:38 +0400",
        "id" : "67f40bec899f985f74f0ce1c10684da932654664",
        "msg" : "updated copy-paste - invite code",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_001_invite_using_invite_code_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          ".maestro/flows/subflows/admin_add_app_and_teacher.yaml"
        ],
        "commitId" : "e56d3cd10a7b4aadc4690e596a49ae4665f7518b",
        "timestamp" : 1762763028000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Remove class_name_label string and change admin_add_app_and_teacher to use name not class name.\u000a",
        "date" : "2025-11-10 12:23:48 +0400",
        "id" : "e56d3cd10a7b4aadc4690e596a49ae4665f7518b",
        "msg" : "Remove class_name_label string and change admin_add_app_and_teacher to use name not class name.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/subflows/admin_add_app_and_teacher.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "8bb94992fbc2f2d05c6125a85502ff722271dd8f",
        "timestamp" : 1762766073000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "feat: Navigate to enrollment list from class details\u000a\u000aThis commit introduces the ability to navigate from the class details screen to a new enrollment list screen for a specific person.\u000a\u000aWhen a user clicks the \"Manage enrollments\" option in the user action menu, they are now navigated to a view showing all enrollments for that person within the current class.\u000a\u000aKey changes:\u000a- Added `EnrollmentListScreen` to display a person's enrollments.\u000a- Implemented `EnrollmentListViewModel` to fetch and provide enrollment data.\u000a- Updated `ClazzDetailViewModel` to handle the navigation to `EnrollmentList`, passing the person's details and class title.\u000a- The `EnrollmentList` navigation route now accepts `personGuid`, `personName`, `role`, and `clazzTitle` to construct the new screen.\u000a- Added new string resources for the enrollment list title.\u000a",
        "date" : "2025-11-10 14:44:33 +0530",
        "id" : "8bb94992fbc2f2d05c6125a85502ff722271dd8f",
        "msg" : "feat: Navigate to enrollment list from class details",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.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/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.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/enrollment/list/EnrollmentListScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "7c40d3fbc15f9d3a8f18763d19b20df82f5d24e6",
        "timestamp" : 1762767226000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "feat: Add action menu to enrollment list items\u000a\u000aThis commit introduces a \"More options\" dropdown menu for each item in the enrollment list screen, providing placeholder actions for \"Edit\" and \"Delete.\"\u000a\u000aAdditionally, it refactors the hardcoded \"More options\" content description in the class details screen to use a string resource for better localization and consistency.\u000a\u000aKey changes:\u000a- Added an `IconButton` with a `MoreVert` icon as the `trailingContent` for each `ListItem` in `EnrollmentListScreen`.\u000a- Implemented a `DropdownMenu` with \"Edit\" and \"Delete\" options.\u000a- Added new string resources for `edit` and `delete`.\u000a- Updated `ClazzDetailScreen` to use the `more_options` string resource for the menu's content description.\u000a",
        "date" : "2025-11-10 15:03:46 +0530",
        "id" : "7c40d3fbc15f9d3a8f18763d19b20df82f5d24e6",
        "msg" : "feat: Add action menu to enrollment list items",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.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/navigation/AppRoutes.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/enrollment/list/EnrollmentListViewModel.kt"
        ],
        "commitId" : "aed53db75692b8c0dfa11d78c6e12ef988ff2f5e",
        "timestamp" : 1762769455000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "refactor: Simplify navigation to EnrollmentList screen\u000a\u000aThis commit refactors the navigation from the class details screen to the enrollment list screen. It simplifies the `EnrollmentList` route parameters by removing `personName` and `clazzTitle`, replacing the latter with `clazzGuid`.\u000a\u000aKey changes:\u000a- Updated the `EnrollmentList` navigation route to use `clazzGuid` instead of `clazzTitle` and removed the redundant `personName`.\u000a- Modified `ClazzDetailViewModel` to pass `person.guid`, `role.name`, and `route.guid` (class GUID) when navigating.\u000a- Removed the local `clazzTitle` property from `ClazzDetailViewModel`.\u000a- Simplified `EnrollmentListViewModel` by removing the logic that constructed the app bar title and instead passing list parameters directly to the data source.\u000a",
        "date" : "2025-11-10 15:40:55 +0530",
        "id" : "aed53db75692b8c0dfa11d78c6e12ef988ff2f5e",
        "msg" : "refactor: Simplify navigation to EnrollmentList screen",
        "paths" : [
          {
            "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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/subflows/erase_text_flow.yaml",
          ".maestro/flows/001_001_invite_using_invite_code_test.yaml",
          ".maestro/flows/001_002_add_user_direct_test.yaml"
        ],
        "commitId" : "650f7dc6591f558364393425a85b6aff52437dca",
        "timestamp" : 1762769621000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "updated erase text flow\u000a",
        "date" : "2025-11-10 14:13:41 +0400",
        "id" : "650f7dc6591f558364393425a85b6aff52437dca",
        "msg" : "updated erase text flow",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_add_user_direct_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/subflows/erase_text_flow.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_001_invite_using_invite_code_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_001_invite_using_invite_code_test.yaml"
        ],
        "commitId" : "721578e1708be554785dbce5d6ab09cedd3dce5c",
        "timestamp" : 1762769793000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "updated \"Pending requests.*\"\u000a",
        "date" : "2025-11-10 14:16:33 +0400",
        "id" : "721578e1708be554785dbce5d6ab09cedd3dce5c",
        "msg" : "updated \"Pending requests.*\"",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_001_invite_using_invite_code_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_001_invite_using_invite_code_test.yaml"
        ],
        "commitId" : "fe6c2c716730c7376b9aa9bc490d2803ea81c566",
        "timestamp" : 1762770794000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "updated \".*Pending requests.*\"\u000a",
        "date" : "2025-11-10 14:33:14 +0400",
        "id" : "fe6c2c716730c7376b9aa9bc490d2803ea81c566",
        "msg" : "updated \".*Pending requests.*\"",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_001_invite_using_invite_code_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt",
          ".maestro/flow-passkey/006_user_signup_using_passkey_test.yaml",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateTimeField.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt",
          ".maestro/flows/001_001_invite_using_invite_code_test.yaml"
        ],
        "commitId" : "e8f86daad06456fc45b82b0a6908c43fa8898f0b",
        "timestamp" : 1762771795000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Fix labels on 001_001 invite test to match those currently used\u000aEnsure edit screens have testTags on textfields.\u000a",
        "date" : "2025-11-10 14:49:55 +0400",
        "id" : "e8f86daad06456fc45b82b0a6908c43fa8898f0b",
        "msg" : "Fix labels on 001_001 invite test to match those currently used",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateTimeField.kt"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flow-passkey/006_user_signup_using_passkey_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_001_invite_using_invite_code_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_001_invite_using_invite_code_test.yaml",
          ".maestro/flows/subflows/erase_text_flow.yaml",
          ".maestro/flows/001_002_add_user_direct_test.yaml"
        ],
        "commitId" : "08beed968976b550ab3a4ae2e1394a70b7dfb4a7",
        "timestamp" : 1762773919000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "updated to text\u000a",
        "date" : "2025-11-10 15:25:19 +0400",
        "id" : "08beed968976b550ab3a4ae2e1394a70b7dfb4a7",
        "msg" : "updated to text",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_001_invite_using_invite_code_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/subflows/erase_text_flow.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_add_user_direct_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/subflows/admin_add_app_and_teacher.yaml",
          ".maestro/flow-passkey/006_user_signup_using_passkey_test.yaml"
        ],
        "commitId" : "7f3cdea198a40d2caef24920306f2d374ba02b5d",
        "timestamp" : 1762774659000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Fix label match admin_add_app_and_teacher\u000a\u000aPending requests had the number of requests added to the end, so previous assertvisible failed. Users have role added in brackets.\u000a",
        "date" : "2025-11-10 15:37:39 +0400",
        "id" : "7f3cdea198a40d2caef24920306f2d374ba02b5d",
        "msg" : "Fix label match admin_add_app_and_teacher",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/subflows/admin_add_app_and_teacher.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flow-passkey/006_user_signup_using_passkey_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_001_invite_using_invite_code_test.yaml",
          ".maestro/flows/subflows/erase_text_flow.yaml",
          ".maestro/flows/001_002_add_user_direct_test.yaml"
        ],
        "commitId" : "64427acf679895cdb9fc969147fce856d0fbbc3b",
        "timestamp" : 1762776965000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "updated eraseText\u000a",
        "date" : "2025-11-10 16:16:05 +0400",
        "id" : "64427acf679895cdb9fc969147fce856d0fbbc3b",
        "msg" : "updated eraseText",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_001_invite_using_invite_code_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/subflows/erase_text_flow.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_add_user_direct_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_002_add_user_direct_test.yaml"
        ],
        "commitId" : "e23246210afee71909269a1a9d05015924b2e234",
        "timestamp" : 1762777918000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "test\u000a",
        "date" : "2025-11-10 16:31:58 +0400",
        "id" : "e23246210afee71909269a1a9d05015924b2e234",
        "msg" : "test",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_add_user_direct_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.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"
        ],
        "commitId" : "b714fc5ea5e4d43ece8999420d00eeb9cc99cc15",
        "timestamp" : 1762778071000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "feat: Introduce EnrollmentEdit screen\u000a\u000aThis commit introduces a new screen for creating and editing enrollments. It includes the `EnrollmentEditScreen` composable, its corresponding `EnrollmentEditViewModel`, and the necessary navigation setup.\u000a\u000aThe `EnrollmentEdit` screen displays basic enrollment information and includes a \"Save\" button in the action bar. The ViewModel is initialized to either load an existing enrollment by its UID or prepare a new enrollment based on the navigation parameters.\u000a\u000aKey changes:\u000a- Created `EnrollmentEditScreen.kt` and its `EnrollmentEditViewModel`.\u000a- Added the `EnrollmentEdit` destination to `AppNavHost.kt`.\u000a- Updated the `EnrollmentEdit` navigation route in `AppRoutes.kt` to accept parameters (`uid`, `personGuid`, `role`, `clazzGuid`).\u000a- In `EnrollmentListScreen`, the \"Edit\" menu item now navigates to the new `EnrollmentEdit` screen.\u000a- Removed the redundant `roleLabel` parameter from the `PersonListItemWithMenu` composable, as it was unused.\u000a",
        "date" : "2025-11-10 18:04:31 +0530",
        "id" : "b714fc5ea5e4d43ece8999420d00eeb9cc99cc15",
        "msg" : "feat: Introduce EnrollmentEdit screen",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/subflows/admin_add_app_and_teacher.yaml",
          ".maestro/flows/001_002_add_user_direct_test.yaml"
        ],
        "commitId" : "3f09313a38166f5e1747139f88baba1c2e3dbdad",
        "timestamp" : 1762778933000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "test updated\u000a",
        "date" : "2025-11-10 16:48:53 +0400",
        "id" : "3f09313a38166f5e1747139f88baba1c2e3dbdad",
        "msg" : "test updated",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_add_user_direct_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/subflows/admin_add_app_and_teacher.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/subflows/admin_add_app_and_teacher.yaml"
        ],
        "commitId" : "3017b08f09e38812e53c4fd8b7df5037682df27b",
        "timestamp" : 1762779229000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "test updated\u000a",
        "date" : "2025-11-10 16:53:49 +0400",
        "id" : "3017b08f09e38812e53c4fd8b7df5037682df27b",
        "msg" : "test updated",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/subflows/admin_add_app_and_teacher.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt"
        ],
        "commitId" : "9e6cae13119fc2f6ccceea0479c2affa64001648",
        "timestamp" : 1762797247000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "feat: Implement field validation and state restoration in EnrollmentEdit screen\u000a\u000aThis commit introduces field validation and state restoration on the enrollment edit screen. When creating a new enrollment, the start and end dates are now validated as required fields before saving.\u000a\u000aAdditionally, the screen's state is now preserved and restored, for instance, after a screen rotation. This is achieved by debouncing entity changes and saving them to the `SavedStateHandle`.\u000a\u000aKey changes:\u000a- Added `beginDateError` and `endDateError` with validation logic to `EnrollmentEditUiState`.\u000a- Implemented `onEntityChanged` in the `EnrollmentEditViewModel` to update the UI state and persist the `Enrollment` entity to the `SavedStateHandle` using a `LaunchDebouncer`.\u000a- Simplified the `EnrollmentEdit` navigation route to only require a `uid`.\u000a- Passed the `onEntityChanged` callback from the `EnrollmentEditViewModel` to the `EnrollmentEditScreen`.\u000a",
        "date" : "2025-11-10 23:24:07 +0530",
        "id" : "9e6cae13119fc2f6ccceea0479c2affa64001648",
        "msg" : "feat: Implement field validation and state restoration in EnrollmentEdit screen",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.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-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
        ],
        "commitId" : "a4151cbc0f9336e34259ca82bce82c0af95e05cc",
        "timestamp" : 1762803076000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "feat: Implement enrollment start and end date editing\u000a\u000aThis commit builds out the `EnrollmentEditScreen` to allow editing the start and end dates of an enrollment.\u000a\u000aThe `EnrollmentEdit` navigation route has been updated to include `role`, `personGuid`, and `clazzGuid`. These parameters are now used to correctly initialize and save enrollment data. When a new enrollment is created, it now correctly pops back to the previous screen upon saving.\u000a\u000aKey changes:\u000a- `EnrollmentEditScreen` now contains `RespectLocalDateField` inputs for `beginDate` and `endDate`.\u000a- The `EnrollmentEdit` route now requires `role`, `personGuid`, and `clazzGuid` parameters.\u000a- `EnrollmentListViewModel` now passes the required parameters when navigating to the edit screen.\u000a- `EnrollmentEditViewModel` correctly initializes new enrollments using the route parameters.\u000a- Successfully saving an enrollment now triggers a `NavCommand.PopUp()` to return to the prior screen.\u000a",
        "date" : "2025-11-11 01:01:16 +0530",
        "id" : "a4151cbc0f9336e34259ca82bce82c0af95e05cc",
        "msg" : "feat: Implement enrollment start and end date editing",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.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"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
        ],
        "commitId" : "8e5c14f944c1f285502b5f6b062d724f593f572d",
        "timestamp" : 1762808458000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "refactor: Improve navigation after new enrollment creation\u000a\u000aThis commit refactors the navigation logic after creating a new enrollment. Instead of just popping the current screen, it now navigates to the `EnrollmentList` screen, replacing the `EnrollmentEdit` screen in the back stack. This ensures a more intuitive user flow when creating multiple enrollments.\u000a\u000aFor existing enrollments, the behavior remains the same, popping back to the previous screen upon saving.\u000a\u000aMinor code formatting and cleanup have also been applied to `EnrollmentEditScreen.kt`, `AppKoinModule.kt`, and `EnrollmentEditViewModel.kt`.\u000a",
        "date" : "2025-11-11 02:30:58 +0530",
        "id" : "8e5c14f944c1f285502b5f6b062d724f593f572d",
        "msg" : "refactor: Improve navigation after new enrollment creation",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.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/enrollment/edit/EnrollmentEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "4b750d74d0554884be64fa3493cc954d34dc842f",
        "timestamp" : 1762809903000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "fix: Improve DOB display and enrollment navigation\u000a\u000aThis commit introduces a few small fixes and improvements related to enrollment management and data display.\u000a\u000aIn the `ClazzDetailScreen`, the display for a person's date of birth (DOB) now correctly handles null values by showing a dash (\"-\") instead of crashing.\u000a\u000aThe `EnrollmentListViewModel` now sets the screen title based on the role from the navigation route.\u000a\u000aFinally, the navigation logic in `EnrollmentEditViewModel` has been cleaned up, removing unnecessary parameters when creating a new enrollment, while preserving the pop-up behavior.\u000a\u000aKey changes:\u000a- `ClazzDetailScreen` now displays \"-\" for a null date of birth.\u000a- `EnrollmentListViewModel` sets the screen title using the role from the route.\u000a- Simplified the `Navigate` command in `EnrollmentEditViewModel` for new enrollments.\u000a",
        "date" : "2025-11-11 02:55:03 +0530",
        "id" : "4b750d74d0554884be64fa3493cc954d34dc842f",
        "msg" : "fix: Improve DOB display and enrollment navigation",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.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/enrollment/list/EnrollmentListViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt"
        ],
        "commitId" : "c6440cd8e7bdfcc9fe201d9a52766622252087d3",
        "timestamp" : 1762810685000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "fix: Correct navigation parameter order in EnrollmentListViewModel\u000a\u000aThis commit corrects the order of `personGuid` and `clazzGuid` parameters when navigating from the enrollment list to the `EnrollmentEdit` screen.\u000a\u000aIt also removes now-redundant code from the `init` block that was setting the screen title, as this is handled elsewhere.\u000a",
        "date" : "2025-11-11 03:08:05 +0530",
        "id" : "c6440cd8e7bdfcc9fe201d9a52766622252087d3",
        "msg" : "fix: Correct navigation parameter order in EnrollmentListViewModel",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/Application.kt",
          "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt"
        ],
        "commitId" : "36ca809657353d7e2aa3cb81e48b5340d21ed96e",
        "timestamp" : 1762845564000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Attempt to fix intermittent ConcurrentModificationException on server.\u000a\u000aKoin DI factories can be called concurrently when multiple requests are ongoing. Add ReentrantLock when creating and linking account scope on the server.\u000a",
        "date" : "2025-11-11 11:19:24 +0400",
        "id" : "36ca809657353d7e2aa3cb81e48b5340d21ed96e",
        "msg" : "Attempt to fix intermittent ConcurrentModificationException on server.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/Application.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/ServerAccountScopeManager.kt",
          "respect-server/src/main/kotlin/world/respect/server/Application.kt",
          "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt"
        ],
        "commitId" : "5ffce947ab39fac6831bab9d7bd3e158af10da9c",
        "timestamp" : 1762850100000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Fix Redeem invitation issue caused by change to handling account scope. Add ServerAccountScopeManager to create a single per-school manager of account scopes.\u000a",
        "date" : "2025-11-11 12:35:00 +0400",
        "id" : "5ffce947ab39fac6831bab9d7bd3e158af10da9c",
        "msg" : "Fix Redeem invitation issue caused by change to handling account scope. Add ServerAccountScopeManager to create a single per-school manager of account scopes.",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ServerAccountScopeManager.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/Application.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/DateFormatterExt.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt"
        ],
        "commitId" : "fa0406a495270f0e9499688d828c665fad9c5da6",
        "timestamp" : 1762850657000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "feat: Format enrollment dates on list screen\u000a\u000aThis commit introduces date formatting on the enrollment list screen, changing the display from the `yyyy-MM-dd` format to a localized `dd/MM/yyyy` format.\u000a\u000aA new extension function, `toLocalizedDate`, has been created to handle the conversion. The `EnrollmentListViewModel` now provides an `onDateFormatted` function, which is called by the `EnrollmentListScreen` to display the formatted start and end dates for each enrollment.\u000a\u000aKey changes:\u000a- Added `toLocalizedDate` string extension in `respect-lib-shared`.\u000a- Implemented `onDateFormatted` in `EnrollmentListViewModel` to wrap the new extension.\u000a- Updated `EnrollmentListScreen` to use the formatted begin and end dates in the `ListItem`.\u000a",
        "date" : "2025-11-11 14:14:17 +0530",
        "id" : "fa0406a495270f0e9499688d828c665fad9c5da6",
        "msg" : "feat: Format enrollment dates on list screen",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/DateFormatterExt.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt"
        ],
        "commitId" : "ddcbfb3e0fca13b2e5f9bfc4600643e2c12652a6",
        "timestamp" : 1762851078000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "refactor: Ensure only one enrollment item's menu can be expanded at a time\u000a\u000aThis commit refactors the state management for the dropdown menu in the `EnrollmentListScreen`.\u000a\u000aPreviously, a single boolean `expanded` state was shared across all list items, causing all menus to open simultaneously. This has been replaced with `expandedItemUid`, which stores the UID of the currently expanded item.\u000a\u000aThis change ensures that clicking the \"More\" icon on one list item only opens the menu for that specific item.\u000a",
        "date" : "2025-11-11 14:21:18 +0530",
        "id" : "ddcbfb3e0fca13b2e5f9bfc4600643e2c12652a6",
        "msg" : "refactor: Ensure only one enrollment item's menu can be expanded at a time",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.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/enrollment/edit/EnrollmentEditViewModel.kt"
        ],
        "commitId" : "6ba833405fb70765384fb849a19c2a4fb484d810",
        "timestamp" : 1762851597000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "feat: Add validation for enrollment start and end dates\u000a\u000aThis commit introduces validation to ensure the start date of an enrollment is not later than the end date.\u000a\u000aAn error message will now be displayed on the `EnrollmentEditScreen` if the start date is set after the end date.\u000a\u000aKey changes:\u000a- Added a new string resource `date_later` for the validation error message.\u000a- Updated `EnrollmentEditViewModel` to include logic that compares `beginDate` and `endDate`.\u000a",
        "date" : "2025-11-11 14:29:57 +0530",
        "id" : "6ba833405fb70765384fb849a19c2a4fb484d810",
        "msg" : "feat: Add validation for enrollment start and end dates",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "b2b470a6c056f347b5f2553b12ce6908f27340c3",
        "timestamp" : 1762851987000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "refactor: Conditionally display gender and DOB in ClazzDetailScreen\u000a\u000aThis commit refactors the `ClazzDetailScreen` to conditionally display a person's gender and date of birth (DOB) only if these values are not null or blank.\u000a\u000aPreviously, the labels for \"Gender\" and \"Date of Birth\" would always be shown, even if the corresponding data was missing, leading to awkward formatting like \"Gender: , Date of Birth:\".\u000a\u000aThe logic has been updated to build a list of details and then join them, ensuring that an item is only added to the display string if its value is present. This prevents empty data points from appearing in the UI.\u000a",
        "date" : "2025-11-11 14:36:27 +0530",
        "id" : "b2b470a6c056f347b5f2553b12ce6908f27340c3",
        "msg" : "refactor: Conditionally display gender and DOB in ClazzDetailScreen",
        "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-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "6c159950be996d4b0bab638739957dcaa2930799",
        "timestamp" : 1762852122000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "refactor: Conditionally display gender and DOB in ClazzDetailScreen\u000a",
        "date" : "2025-11-11 14:38:42 +0530",
        "id" : "6c159950be996d4b0bab638739957dcaa2930799",
        "msg" : "refactor: Conditionally display gender and DOB in ClazzDetailScreen",
        "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/enrollment/edit/EnrollmentEditViewModel.kt"
        ],
        "commitId" : "02e0dbabb36fa4e723b1962b11bb04c9dfae69db",
        "timestamp" : 1762852250000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "feat: Display person and class names in EnrollmentEdit screen\u000a\u000aThis commit updates the `EnrollmentEditViewModel` to fetch and display the person's full name and the class's title.\u000a\u000aPreviously, the `init` block only configured the \"Save\" action bar button. Now, it asynchronously fetches the `Person` and `Clazz` entities using the `personGuid` and `clazzGuid` from the route. Although the fetched names (`personName` and `clazzName`) are stored in local variables, they are not yet used in the UI state. This change prepares the ViewModel for displaying more context on the enrollment editing screen.\u000a",
        "date" : "2025-11-11 14:40:50 +0530",
        "id" : "02e0dbabb36fa4e723b1962b11bb04c9dfae69db",
        "msg" : "feat: Display person and class names in EnrollmentEdit screen",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.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/enrollment/list/EnrollmentListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt"
        ],
        "commitId" : "2919955b239a997fea7f8ee82f245413d72be25e",
        "timestamp" : 1762857652000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "refactor: Update enrollment screen titles to use a formatted string\u000a\u000aThis commit refactors the titles on the enrollment list and edit screens to use a new, formatted string resource.\u000a",
        "date" : "2025-11-11 16:10:52 +0530",
        "id" : "2919955b239a997fea7f8ee82f245413d72be25e",
        "msg" : "refactor: Update enrollment screen titles to use a formatted string",
        "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/enrollment/list/EnrollmentListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.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" : "70ed7779c2d5c36db6cce239b376b5852150fcc5",
        "timestamp" : 1762859525000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "refactor: Rename person management functions in ClazzDetail screen\u000a\u000aThis commit renames functions related to person management within the class detail screen for improved clarity and consistency.\u000a\u000aThe `onClickRemovePerson` and `onClickManagePerson` functions have been renamed to `onClickRemovePersonFromClass` and `onClickManageEnrollments` respectively. This change is reflected in the `ClazzDetailScreen`, `ClazzDetailContent`, and `ClazzDetailViewModel` to more accurately describe their actions.\u000a\u000aKey changes:\u000a- Renamed `onClickRemovePerson` to `onClickRemovePersonFromClass` in the `ClazzDetailScreen` and `ClazzDetailViewModel`.\u000a- Renamed `onClickManagePerson` to `onClickManageEnrollments` in the `ClazzDetailScreen` and `ClazzDetailViewModel`.\u000a- Updated the call sites for these functions within the `ClazzDetailContent` composable.\u000a- The `onClickManageEnrollments` function now navigates to the `EnrollmentList` screen.\u000a",
        "date" : "2025-11-11 16:42:05 +0530",
        "id" : "70ed7779c2d5c36db6cce239b376b5852150fcc5",
        "msg" : "refactor: Rename person management functions in ClazzDetail screen",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/Application.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/EnrollmentDataSourceRepository.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/FilterPagingSource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/DataLayerTags.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/AssignmentDataSourceRepository.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/DelegatedInvalidationPagingSource.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryPagingSourceFactory.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ClassDataSourceRepository.kt",
          "respect-server/src/main/kotlin/world/respect/server/logging/LogbackAntilog.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/MapPagingSource.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource2.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolAppDataSourceRepository.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/LogPrefixFunction.kt"
        ],
        "commitId" : "f5bba4004a3de1adc3742ed368cd251d9072b71d",
        "timestamp" : 1762864437000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add a lot of additional datalayer logging for attempt to catch flakey behavior where pending enrollment is not displayed.\u000a",
        "date" : "2025-11-11 16:33:57 +0400",
        "id" : "f5bba4004a3de1adc3742ed368cd251d9072b71d",
        "msg" : "Add a lot of additional datalayer logging for attempt to catch flakey behavior where pending enrollment is not displayed.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.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/shared/paging/RepositoryOffsetLimitPagingSource2.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/AssignmentDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/FilterPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolAppDataSourceRepository.kt"
          },
          {
            "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/shared/paging/MapPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/Application.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/LogPrefixFunction.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ClassDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/EnrollmentDataSourceRepository.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/logging/LogbackAntilog.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/DelegatedInvalidationPagingSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/DataLayerTags.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryPagingSourceFactory.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "a3e86ec7a7e96518b28f8507d2fca732a2d923cc",
        "timestamp" : 1762864959000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor\u000a",
        "date" : "2025-11-11 18:12:39 +0530",
        "id" : "a3e86ec7a7e96518b28f8507d2fca732a2d923cc",
        "msg" : "Refactor",
        "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/enrollment/edit/EnrollmentEditViewModel.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/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "d7fb64e46efdef755b7deedd5afe9325c6d4ec64",
        "timestamp" : 1762866313000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor\u000a",
        "date" : "2025-11-11 18:35:13 +0530",
        "id" : "d7fb64e46efdef755b7deedd5afe9325c6d4ec64",
        "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-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "a28e5513a350fc60d154d71ecddf866b54f89223",
        "timestamp" : 1762866544000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor\u000a",
        "date" : "2025-11-11 18:39:04 +0530",
        "id" : "a28e5513a350fc60d154d71ecddf866b54f89223",
        "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-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt"
        ],
        "commitId" : "c9d488788a556497071bf2c97f05d587dada4045",
        "timestamp" : 1762866633000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "Refactor\u000a",
        "date" : "2025-11-11 18:40:33 +0530",
        "id" : "c9d488788a556497071bf2c97f05d587dada4045",
        "msg" : "Refactor",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.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"
    },
    {
      "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
      "fullName" : "nikunj.sharma"
    }
  ]
}