{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.triggers.TimerTrigger$TimerTriggerCause",
          "shortDescription" : "Started by timer"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/main" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 8,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "0f1e9bf8b77f88fb0f05b5a17f1e5fd968ce303e",
            "branch" : [
              {
                "SHA1" : "0f1e9bf8b77f88fb0f05b5a17f1e5fd968ce303e",
                "name" : "refs/remotes/origin/main"
              }
            ]
          },
          "revision" : {
            "SHA1" : "0f1e9bf8b77f88fb0f05b5a17f1e5fd968ce303e",
            "branch" : [
              {
                "SHA1" : "0f1e9bf8b77f88fb0f05b5a17f1e5fd968ce303e",
                "name" : "refs/remotes/origin/main"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "0f1e9bf8b77f88fb0f05b5a17f1e5fd968ce303e",
        "branch" : [
          {
            "SHA1" : "0f1e9bf8b77f88fb0f05b5a17f1e5fd968ce303e",
            "name" : "refs/remotes/origin/main"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/UstadMobile/Respect.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#8",
  "duration" : 383504,
  "estimatedDuration" : 357239,
  "executor" : None,
  "fullDisplayName" : "respect-manage-users-fixes-End-To-End-Tests #8",
  "id" : "8",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 8,
  "queueId" : 3480,
  "result" : "FAILURE",
  "timestamp" : 1755219960467,
  "url" : "https://devserver3.ustadmobile.com/jenkins/view/all/job/respect-manage-users-fixes-End-To-End-Tests/8/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/GenderToString.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/signup/SignUpScreen.kt"
        ],
        "commitId" : "67921bb803b7ef95faf1b9f481a1075b9ae8ad3a",
        "timestamp" : 1753250274000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "used gender label\u000a",
        "date" : "2025-07-23 11:27:54 +0530",
        "id" : "67921bb803b7ef95faf1b9f481a1075b9ae8ad3a",
        "msg" : "used gender label",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/GenderToString.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/signup/SignUpScreen.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-credentials/src/main/java/world/respect/credentials/passkey/request/CreatePublicKeyCredentialRequestOptionsJsonUseCase.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/request/EncodeUserHandleUseCase.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/request/CreatePublicKeyCredentialCreationOptionsJsonUseCase.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/StringExt.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/username/CreateCredentialUsernameUseCase.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/request/DecodeUserHandleUseCase.kt"
        ],
        "commitId" : "d37f04aa16a26d061ec205f12d7df04c9196f20a",
        "timestamp" : 1753346545000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "adding passkey files\u000a",
        "date" : "2025-07-24 14:12:25 +0530",
        "id" : "d37f04aa16a26d061ec205f12d7df04c9196f20a",
        "msg" : "adding passkey files",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/request/CreatePublicKeyCredentialRequestOptionsJsonUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/request/CreatePublicKeyCredentialCreationOptionsJsonUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/request/DecodeUserHandleUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/StringExt.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/request/EncodeUserHandleUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/username/CreateCredentialUsernameUseCase.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/signup/SignUpScreen.kt"
        ],
        "commitId" : "5dd9fcd3c47f7a42205659b094198ab4c968d45c",
        "timestamp" : 1753684639000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "fixes\u000a",
        "date" : "2025-07-28 12:07:19 +0530",
        "id" : "5dd9fcd3c47f7a42205659b094198ab4c968d45c",
        "msg" : "fixes",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/signup/SignUpScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-credentials/src/main/java/world/respect/credentials/passkey/CreatePasskeyUseCase.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/EncodeUserHandleUseCaseImpl.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-app-compose/build.gradle.kts",
          "respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCaseImpl.kt",
          "gradle/libs.versions.toml",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/GetCredentialUseCase.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/GetCredentialUseCaseImpl.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/util/StringExt.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/username/ParseCredentialUsernameUseCase.kt"
        ],
        "commitId" : "8fb30cdf36765213a409693a837180f02ee35c86",
        "timestamp" : 1753775611000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "passkey file added\u000a",
        "date" : "2025-07-29 13:23:31 +0530",
        "id" : "8fb30cdf36765213a409693a837180f02ee35c86",
        "msg" : "passkey file added",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/GetCredentialUseCaseImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "gradle/libs.versions.toml"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/GetCredentialUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCaseImpl.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/CreatePasskeyUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/util/StringExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/build.gradle.kts"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/EncodeUserHandleUseCaseImpl.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/username/ParseCredentialUsernameUseCase.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-credentials/src/main/java/world/respect/credentials/passkey/request/CreatePublicKeyCredentialRequestOptionsJsonUseCase.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/DecodeUserHandleUseCase.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/model/PublicKeyCredentialRpEntity.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationExtensionsClientOutputsJSON.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialRequestOptionsJsonUseCase.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/model/PublicKeyCredentialParameters.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/model/PublicKeyCredentialDescriptorJSON.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/model/AuthenticationExtensionsClientOutputsJSON.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialParameters.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialDescriptorJSON.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/model/PublicKeyCredentialUserEntityJSON.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/model/ClientDataJSON.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/CreatePasskeyUseCase.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/model/AuthenticatorAssertionResponseJSON.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/ClientDataJSON.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/login/LoginScreen.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialCreationOptionsJSON.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/util/StringExt.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialCreationOptionsJsonUseCase.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticatorAssertionResponseJSON.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/username/CreateCredentialUsernameUseCase.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/request/CreatePublicKeyCredentialCreationOptionsJsonUseCase.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/username/CreateCredentialUsernameUseCase.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialUserEntityJSON.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/model/PublicKeyCredentialRequestOptionsJSON.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticatorSelectionCriteria.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/util/StringExt.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationResponseJSON.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/request/EncodeUserHandleUseCase.kt",
          "respect-lib-shared/build.gradle.kts",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/username/ParseCredentialUsernameUseCase.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/username/ParseCredentialUsernameUseCase.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/GetCredentialUseCase.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-app-compose/build.gradle.kts",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationExtensionsPRFOutputsJSON.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/EncodeUserHandleUseCase.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/request/DecodeUserHandleUseCase.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/model/AuthenticationExtensionsPRFOutputsJSON.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/createaccount/CreateAccountScreen.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialRequestOptionsJSON.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCase.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/model/AuthenticationResponseJSON.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/model/PublicKeyCredentialCreationOptionsJSON.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialRpEntity.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/model/AuthenticatorSelectionCriteria.kt",
          "respect-credentials/src/main/java/world/respect/credentials/passkey/GetCredentialUseCase.kt"
        ],
        "commitId" : "eb83fe885582d92fd0d0e3afb3f87adae939478c",
        "timestamp" : 1753857720000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "passkey file added in signup and LoginScreen\u000a",
        "date" : "2025-07-30 12:12:00 +0530",
        "id" : "eb83fe885582d92fd0d0e3afb3f87adae939478c",
        "msg" : "passkey file added in signup and LoginScreen",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/util/StringExt.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialDescriptorJSON.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationExtensionsPRFOutputsJSON.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/request/CreatePublicKeyCredentialRequestOptionsJsonUseCase.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/util/StringExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/createaccount/CreateAccountScreen.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/model/PublicKeyCredentialRequestOptionsJSON.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/login/LoginScreen.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/model/ClientDataJSON.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/DecodeUserHandleUseCase.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/CreatePasskeyUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/request/EncodeUserHandleUseCase.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/model/AuthenticationExtensionsPRFOutputsJSON.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/ClientDataJSON.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/model/AuthenticatorAssertionResponseJSON.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialCreationOptionsJSON.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/username/CreateCredentialUsernameUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialRpEntity.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/model/AuthenticationExtensionsClientOutputsJSON.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialUserEntityJSON.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/model/AuthenticationResponseJSON.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/model/PublicKeyCredentialUserEntityJSON.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/build.gradle.kts"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/model/PublicKeyCredentialRpEntity.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/username/ParseCredentialUsernameUseCase.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/GetCredentialUseCase.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/model/PublicKeyCredentialParameters.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationExtensionsClientOutputsJSON.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialParameters.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialRequestOptionsJSON.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/username/CreateCredentialUsernameUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCase.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/model/PublicKeyCredentialCreationOptionsJSON.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/build.gradle.kts"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationResponseJSON.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/request/CreatePublicKeyCredentialCreationOptionsJsonUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialRequestOptionsJsonUseCase.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/request/DecodeUserHandleUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/GetCredentialUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/username/ParseCredentialUsernameUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialCreationOptionsJsonUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticatorSelectionCriteria.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticatorAssertionResponseJSON.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/model/AuthenticatorSelectionCriteria.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/EncodeUserHandleUseCase.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/main/java/world/respect/credentials/passkey/model/PublicKeyCredentialDescriptorJSON.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/createaccount/CreateAccountScreen.kt"
        ],
        "commitId" : "2e84cce88c7d3a679e0374784e32872069024ba9",
        "timestamp" : 1753870597000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "required msg showing\u000a",
        "date" : "2025-07-30 15:46:37 +0530",
        "id" : "2e84cce88c7d3a679e0374784e32872069024ba9",
        "msg" : "required msg showing",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/createaccount/CreateAccountScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt",
          "respect-app-compose/src/androidMain/AndroidManifest.xml",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
        ],
        "commitId" : "2b29774eb6910af97cf1b7b3ea016be09b225044",
        "timestamp" : 1754033494000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "passkey creation and login working\u000a",
        "date" : "2025-08-01 13:01:34 +0530",
        "id" : "2b29774eb6910af97cf1b7b3ea016be09b225044",
        "msg" : "passkey creation and login working",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/AndroidManifest.xml"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.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/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/StringExt.android.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/DecodeUserHandleUseCaseImpl.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/StringExt.kt",
          "respect-app-compose/src/androidMain/AndroidManifest.xml",
          "respect-credentials/build.gradle.kts",
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/util/StringExt.jvm.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt",
          "respect-credentials/src/androidTest/java/world/respect/credentials/EncodeDecodeUserHandleUseCaseTest.kt",
          "respect-credentials/src/jvmTest/kotlin/world/respect/credentials/GetCredentialUseCaseTest.kt"
        ],
        "commitId" : "ea3904974f9c7e47b13aef73a7de538dad52773b",
        "timestamp" : 1754292173000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "passkey test added\u000a",
        "date" : "2025-08-04 12:52:53 +0530",
        "id" : "ea3904974f9c7e47b13aef73a7de538dad52773b",
        "msg" : "passkey test added",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/util/StringExt.jvm.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-credentials/build.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/jvmTest/kotlin/world/respect/credentials/GetCredentialUseCaseTest.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/DecodeUserHandleUseCaseImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/StringExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/AndroidManifest.xml"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/StringExt.android.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/androidTest/java/world/respect/credentials/EncodeDecodeUserHandleUseCaseTest.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-directory/src/commonMain/kotlin/world/respect/datalayer/directory/RespectDirectoryDataSource.kt",
          "respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/domain/account/RespectAccountManagerScopeTest.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/mock/MockGetInviteInfoUseCase.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectRealm.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccount.kt",
          "respect-server/src/main/kotlin/world/respect/server/routes/RespectRealmDirectoryRoute.kt",
          "settings.gradle.kts",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt",
          "respect-datalayer-directory/build.gradle.kts",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectRealmDirectory.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/directory/RespectDirectoryServersConfig.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/AccountDepComponent.kt"
        ],
        "commitId" : "9ac60482e15b7b568dab26c0dc022a1d5a46c676",
        "timestamp" : 1754311999000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Work in progress: add initial directory implementation skeleton\u000a",
        "date" : "2025-08-04 16:53:19 +0400",
        "id" : "9ac60482e15b7b568dab26c0dc022a1d5a46c676",
        "msg" : "Work in progress: add initial directory implementation skeleton",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-datalayer-directory/src/commonMain/kotlin/world/respect/datalayer/directory/RespectDirectoryDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectRealm.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/AccountDepComponent.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectRealmDirectory.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/directory/RespectDirectoryServersConfig.kt"
          },
          {
            "editType" : "edit",
            "file" : "settings.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/mock/MockGetInviteInfoUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/domain/account/RespectAccountManagerScopeTest.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-directory/build.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccount.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/routes/RespectRealmDirectoryRoute.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/ServerAppMain.kt",
          "respect-server/src/main/kotlin/world/respect/server/Application.kt",
          "respect-server/build.gradle.kts",
          "respect-server/src/main/kotlin/world/respect/Application.kt",
          "respect-server/src/main/resources/application.conf"
        ],
        "commitId" : "4617bdafd6da51b0a48f5092f86d28bc3d00dd60",
        "timestamp" : 1754315196000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add ServerAppMain class\u000a",
        "date" : "2025-08-04 17:46:36 +0400",
        "id" : "4617bdafd6da51b0a48f5092f86d28bc3d00dd60",
        "msg" : "Add ServerAppMain class",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ServerAppMain.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/build.gradle.kts"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/Application.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-server/src/main/kotlin/world/respect/Application.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/main/resources/application.conf"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/Application.kt",
          "respect-datalayer-directory/src/commonMain/kotlin/world/respect/datalayer/directory/RespectDirectoryDataSource.kt",
          "respect-server/.gitignore",
          "respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt",
          "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt",
          "respect-datalayer-directory/src/commonMain/kotlin/world/respect/datalayer/directory/RespectDirectoryDataSourceLocal.kt",
          "respect-server/src/main/kotlin/world/respect/server/AppConfigExt.kt",
          "respect-server/src/main/kotlin/world/respect/server/ServerAppMain.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/realm/add/AddRealmUseCase.kt",
          "respect-server/build.gradle.kts",
          "gradle/libs.versions.toml"
        ],
        "commitId" : "55c3c2a4cc3681acaa93d0357586293bbe46f51b",
        "timestamp" : 1754321322000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Server work in progress: saving/reading manager server options/credentials works.\u000a",
        "date" : "2025-08-04 19:28:42 +0400",
        "id" : "55c3c2a4cc3681acaa93d0357586293bbe46f51b",
        "msg" : "Server work in progress: saving/reading manager server options/credentials works.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "gradle/libs.versions.toml"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/Application.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/realm/add/AddRealmUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-directory/src/commonMain/kotlin/world/respect/datalayer/directory/RespectDirectoryDataSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-server/.gitignore"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-directory/src/commonMain/kotlin/world/respect/datalayer/directory/RespectDirectoryDataSourceLocal.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/AppConfigExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ServerAppMain.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/build.gradle.kts"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/GenderToString.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialCreationOptionsJsonUseCase.kt"
        ],
        "commitId" : "f7d51fc8e29e074231aee481d500e806eb0a6d30",
        "timestamp" : 1754371288000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "small fix\u000a",
        "date" : "2025-08-05 10:51:28 +0530",
        "id" : "f7d51fc8e29e074231aee481d500e806eb0a6d30",
        "msg" : "small fix",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/GenderToString.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialCreationOptionsJsonUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "ARCHITECTURE.md"
        ],
        "commitId" : "899832ff49b2b5b643b8b540a91a5e9dbb77076c",
        "timestamp" : 1754400829000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add Architecture explanation.\u000a",
        "date" : "2025-08-05 17:33:49 +0400",
        "id" : "899832ff49b2b5b643b8b540a91a5e9dbb77076c",
        "msg" : "Add Architecture explanation.",
        "paths" : [
          {
            "editType" : "add",
            "file" : "ARCHITECTURE.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "ARCHITECTURE.md"
        ],
        "commitId" : "35d5fbe13eeb5621dd27f9740c13a3699181a351",
        "timestamp" : 1754401256000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Update Architecture explanation.\u000a",
        "date" : "2025-08-05 17:40:56 +0400",
        "id" : "35d5fbe13eeb5621dd27f9740c13a3699181a351",
        "msg" : "Update Architecture explanation.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "ARCHITECTURE.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "ARCHITECTURE.md"
        ],
        "commitId" : "9f0f13206e335e708b0477fab32be60fcf07720e",
        "timestamp" : 1754401426000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Update Architecture explanation.\u000a",
        "date" : "2025-08-05 17:43:46 +0400",
        "id" : "9f0f13206e335e708b0477fab32be60fcf07720e",
        "msg" : "Update Architecture explanation.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "ARCHITECTURE.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "ARCHITECTURE.md"
        ],
        "commitId" : "e8ee2c37508b03567c4cf496fb1ae914033c5993",
        "timestamp" : 1754401465000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Update Architecture explanation.\u000a",
        "date" : "2025-08-05 17:44:25 +0400",
        "id" : "e8ee2c37508b03567c4cf496fb1ae914033c5993",
        "msg" : "Update Architecture explanation.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "ARCHITECTURE.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectDatabase.kt",
          "respect-datalayer-directory/src/commonMain/kotlin/world/respect/datalayer/directory/RespectDirectoryDataSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/CompatibleAppDataSourceDb.kt",
          "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepositoryTest.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt",
          "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt",
          "respect-datalayer-directory/build.gradle.kts",
          "respect-server/build.gradle.kts",
          "respect-server/src/main/kotlin/world/respect/server/domain/realm/add/AddRealmUseCase.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/directory/RespectDirectoryDataSource.kt",
          "respect-datalayer-directory/src/commonMain/kotlin/world/respect/datalayer/directory/RespectDirectoryDataSourceLocal.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/directory/entities/RespectDirectoryEntity.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/directory/RespectDirectoryDataSourceLocal.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectDatabase/1.json",
          "respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestOpdsPublicationEntityAdapter.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDataSourceDb.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.kt",
          "settings.gradle.kts",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/directory/entities/RespectRealmEntity.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/directory/RespectDirectoryDataSourceDb.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSource.kt",
          "respect-datalayer-db/schemas/world.respect.datasource.db.RespectDatabase/1.json",
          "ARCHITECTURE.md"
        ],
        "commitId" : "19362de7fdae7c65a65844a2ee0b72354ed4dd8a",
        "timestamp" : 1754459036000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Move realm directory datasource into the main datasource module.\u000a",
        "date" : "2025-08-06 09:43:56 +0400",
        "id" : "19362de7fdae7c65a65844a2ee0b72354ed4dd8a",
        "msg" : "Move realm directory datasource into the main datasource module.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "ARCHITECTURE.md"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestOpdsPublicationEntityAdapter.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDataSourceDb.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/schemas/world.respect.datasource.db.RespectDatabase/1.json"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/directory/RespectDirectoryDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-directory/src/commonMain/kotlin/world/respect/datalayer/directory/RespectDirectoryDataSourceLocal.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/directory/RespectDirectoryDataSourceLocal.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/directory/entities/RespectDirectoryEntity.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/build.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "settings.gradle.kts"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/directory/RespectDirectoryDataSourceDb.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/directory/entities/RespectRealmEntity.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectDatabase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/realm/add/AddRealmUseCase.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-directory/src/commonMain/kotlin/world/respect/datalayer/directory/RespectDirectoryDataSource.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectDatabase/1.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/CompatibleAppDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepositoryTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-directory/build.gradle.kts"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/joinclazzwithcode/JoinClazzWithCodeScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/joinclazzwithcode/JoinClazzWithCodeViewModel.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/otheroption/OtherOptionsScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt"
        ],
        "commitId" : "abb638727db5c86b3a73e9fa52b4e69cafa26953",
        "timestamp" : 1754463931000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "small chnges and added other option screen\u000a",
        "date" : "2025-08-06 12:35:31 +0530",
        "id" : "abb638727db5c86b3a73e9fa52b4e69cafa26953",
        "msg" : "small chnges and added other option screen",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/joinclazzwithcode/JoinClazzWithCodeViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/otheroption/OtherOptionsScreen.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/composeResources/values/strings.xml"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/joinclazzwithcode/JoinClazzWithCodeScreen.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-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt",
          "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/RealmDirectoryDataSourceDb.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/daos/RealmDirectoryEntityDao.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/realm/add/AddRealmUseCase.kt",
          "respect-server/build.gradle.kts",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/directory/RespectDirectoryDataSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/adapters/RealmAdapter.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/LangMapEntity.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-server/src/main/kotlin/world/respect/server/routes/RespectRealmDirectoryRoute.kt",
          "respect-server/src/main/kotlin/world/respect/server/ServerAppMain.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/directory/entities/RespectDirectoryEntity.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/directory/RespectDirectoryDataSourceLocal.kt",
          "respect-server/src/main/kotlin/world/respect/server/Application.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/daos/RealmEntityDao.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSourceLocal.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDataSourceDb.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/directory/entities/RespectRealmEntity.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realmdirectory/RealmDirectoryDataSourceLocal.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/directory/RespectDirectoryDataSourceDb.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/entities/RealmDirectoryEntity.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/entities/RealmEntity.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realmdirectory/RealmDirectoryDataSource.kt"
        ],
        "commitId" : "d1ffa5a57a03cff132201dab50eb847bc3c2cdfc",
        "timestamp" : 1754471900000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Initial implementation of adding a realm via server command line interface.\u000a",
        "date" : "2025-08-06 13:18:20 +0400",
        "id" : "d1ffa5a57a03cff132201dab50eb847bc3c2cdfc",
        "msg" : "Initial implementation of adding a realm via server command line interface.",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/directory/RespectDirectoryDataSourceLocal.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/realm/add/AddRealmUseCase.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/directory/RespectDirectoryDataSourceDb.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/entities/RealmEntity.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/Application.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/LangMapEntity.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ServerAppMain.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/directory/entities/RespectRealmEntity.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/RealmDirectoryDataSourceDb.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/directory/entities/RespectDirectoryEntity.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realmdirectory/RealmDirectoryDataSourceLocal.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/ManagerServerCLI.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSourceLocal.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realmdirectory/RealmDirectoryDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/build.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/entities/RealmDirectoryEntity.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/directory/RespectDirectoryDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/routes/RespectRealmDirectoryRoute.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/daos/RealmDirectoryEntityDao.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/daos/RealmEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/adapters/RealmAdapter.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/Application.kt",
          "respect-server/build.gradle.kts",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/entities/RealmEntity.kt",
          "gradle/libs.versions.toml",
          "respect-server/src/main/kotlin/world/respect/server/routes/RespectRealmDirectoryRoute.kt"
        ],
        "commitId" : "c448cdd03a8443a9178488596ec735a86d816326",
        "timestamp" : 1754474020000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add basic auth to respect realm directory admin.\u000a",
        "date" : "2025-08-06 13:53:40 +0400",
        "id" : "c448cdd03a8443a9178488596ec735a86d816326",
        "msg" : "Add basic auth to respect realm directory admin.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/entities/RealmEntity.kt"
          },
          {
            "editType" : "edit",
            "file" : "gradle/libs.versions.toml"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/Application.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/routes/RespectRealmDirectoryRoute.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/build.gradle.kts"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt",
          "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/realm/RespectRealmPath.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/RealmDirectoryDataSourceDb.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectRealm.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/entities/PersonEntity.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/realm/add/AddRealmUseCase.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectRealmDirectory.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDatabase.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/adapters/RealmAdapter.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/ext/RespectRealmExt.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/entities/RealmConfigEntity.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/daos/RealmConfigEntityDao.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/realm/add/AddServerManagedDirectoryCallback.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/serialization/InstantISO8601Serializer.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/Person.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realmdirectory/RealmDirectoryDataSourceLocal.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectInviteInfo.kt",
          "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt",
          "respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectRealmDatabase/1.json",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/daos/PersonEntityDao.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/entities/RealmEntity.kt"
        ],
        "commitId" : "8c5a25bdcbb3ed7460a9f6ced15e9d8a708ac268",
        "timestamp" : 1754492106000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Initial implementation of adding a realm that creates a realm-specific database.\u000aUse Koin's scope to provide realm-specific database.\u000a",
        "date" : "2025-08-06 18:55:06 +0400",
        "id" : "8c5a25bdcbb3ed7460a9f6ced15e9d8a708ac268",
        "msg" : "Initial implementation of adding a realm that creates a realm-specific database.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/realm/add/AddServerManagedDirectoryCallback.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/serialization/InstantISO8601Serializer.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/RealmDirectoryDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectRealm.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectRealmDatabase/1.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectInviteInfo.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/daos/PersonEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realmdirectory/RealmDirectoryDataSourceLocal.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/realm/add/AddRealmUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/entities/PersonEntity.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectRealmDirectory.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/Person.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/entities/RealmEntity.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/daos/RealmConfigEntityDao.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/realm/RespectRealmPath.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDatabase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/entities/RealmConfigEntity.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/ext/RespectRealmExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/adapters/RealmAdapter.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/ServerAppMain.kt",
          "respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/daos/RealmConfigEntityDao.kt",
          "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt"
        ],
        "commitId" : "6c2124f493f8297fb2b2aaff1247bbc57146effb",
        "timestamp" : 1754549713000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Update handling of RealmConfigEntity to set realm database path.\u000a",
        "date" : "2025-08-07 10:55:13 +0400",
        "id" : "6c2124f493f8297fb2b2aaff1247bbc57146effb",
        "msg" : "Update handling of RealmConfigEntity to set realm database path.",
        "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/ServerAppMain.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/daos/RealmConfigEntityDao.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/manageuser/otheroption/OtherOptionsViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/otheroption/OtherOptionsScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/createaccount/CreateAccountScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/howpasskeywork/HowPasskeyWorksScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/createinviteredeemrequest/RespectRedeemInviteRequestUseCase.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/otheroptionsignup/OtherOptionsSignupScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/enterpasswordsignup/EnterPasswordSignUpScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "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/howpasskeywork/GetStartedViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroptionsignup/OtherOptionsSignupViewModel.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
        ],
        "commitId" : "c6d4b8473013ab3abd3ed6490ea0ee8dd770372f",
        "timestamp" : 1754552825000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "added screens\u000a",
        "date" : "2025-08-07 13:17:05 +0530",
        "id" : "c6d4b8473013ab3abd3ed6490ea0ee8dd770372f",
        "msg" : "added screens",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroptionsignup/OtherOptionsSignupViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/createinviteredeemrequest/RespectRedeemInviteRequestUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/otheroption/OtherOptionsScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.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/createaccount/CreateAccountScreen.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/getstarted/GetStartedViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/howpasskeywork/GetStartedViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/otheroptionsignup/OtherOptionsSignupScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/howpasskeywork/HowPasskeyWorksScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/enterpasswordsignup/EnterPasswordSignUpScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-test-end-to-end/android-maestro/e2e-tests/001_browse_lessons_test.yaml"
        ],
        "commitId" : "1a580026014be0651c632351db9a834189cb37b6",
        "timestamp" : 1754572215000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Modified test flow as per new design\u000a",
        "date" : "2025-08-07 17:10:15 +0400",
        "id" : "1a580026014be0651c632351db9a834189cb37b6",
        "msg" : "Modified test flow as per new design",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-test-end-to-end/android-maestro/e2e-tests/001_browse_lessons_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/confirmation/ConfirmationViewModel.kt",
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/otheroption/OtherOptionsScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt"
        ],
        "commitId" : "d58b6138c3a244cc9fe53f24e5972d6802f841cc",
        "timestamp" : 1754632939000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "issues fixed\u000a",
        "date" : "2025-08-08 11:32:19 +0530",
        "id" : "d58b6138c3a244cc9fe53f24e5972d6802f841cc",
        "msg" : "issues fixed",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/otheroption/OtherOptionsScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/confirmation/ConfirmationViewModel.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/getstarted/GetStartedViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/PersonDataSourceLocal.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectRealmDataSourceLocal.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/SetPasswordUseCase.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/adapters/PersonAdapter.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/entities/PersonEntity.kt",
          "respect-server/build.gradle.kts",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDatabase.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectRealmDataSource.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithUsernameAndPassword.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/PersonDataSource.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/AuthResponse.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/Person.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/account/setpassword/SetPasswordUseDbImpl.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/daos/AuthTokenEntityDao.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/account/authwithpassword/GetTokenAndUserProfileWithUsernameAndPasswordDbImpl.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/adapters/AuthTokenAdapter.kt",
          "respect-datalayer-db/build.gradle.kts",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/AuthToken.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/PersonDataSourceDb.kt",
          "respect-server/src/test/kotlin/world/respect/server/domain/account/authwithpassword/AuthWithPasswordIntegrationTest.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/entities/PersonPasswordEntity.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/entities/AuthTokenEntity.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectRealmDatabase/1.json",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/daos/PersonEntityDao.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/Person.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/daos/PersonPasswordEntityDao.kt"
        ],
        "commitId" : "5b32fc5940805a1edff75d537772333216ed48f0",
        "timestamp" : 1754643187000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Initial implementation of server side password encryption/hashing.\u000a",
        "date" : "2025-08-08 12:53:07 +0400",
        "id" : "5b32fc5940805a1edff75d537772333216ed48f0",
        "msg" : "Initial implementation of server side password encryption/hashing.",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithUsernameAndPassword.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectRealmDataSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/entities/AuthTokenEntity.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/account/authwithpassword/GetTokenAndUserProfileWithUsernameAndPasswordDbImpl.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/daos/AuthTokenEntityDao.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/PersonDataSourceLocal.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/Person.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/AuthToken.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/entities/PersonEntity.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/SetPasswordUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectRealmDatabase/1.json"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/entities/PersonPasswordEntity.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/Person.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/AuthResponse.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/PersonDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDatabase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/test/kotlin/world/respect/server/domain/account/authwithpassword/AuthWithPasswordIntegrationTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/daos/PersonEntityDao.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectRealmDataSourceLocal.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/account/setpassword/SetPasswordUseDbImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/build.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/build.gradle.kts"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/PersonDataSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/adapters/AuthTokenAdapter.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/adapters/PersonAdapter.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/daos/PersonPasswordEntityDao.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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/daos/AuthTokenEntityDao.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/TimeInMillis.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/adapters/AuthTokenAdapter.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/account/authwithpassword/GetTokenAndUserProfileWithUsernameAndPasswordDbImpl.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/entities/PersonEntity.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/realm/add/AddRealmUseCase.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithUsernameAndPasswordUseCase.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/account/validateauth/ValidateAuthorizationUseCaseDbImpl.kt",
          "respect-server/src/test/kotlin/world/respect/server/domain/account/authwithpassword/AuthWithPasswordIntegrationTest.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithUsernameAndPassword.kt",
          "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/TimeInMillis.android.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateauth/ValidateAuthorizationUseCase.kt",
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/util/TimeInMillis.jvm.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/entities/AuthTokenEntity.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectRealmDatabase/1.json",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/AuthenticatedUserPrincipalId.kt"
        ],
        "commitId" : "a13c8564c635fd4761c8889abca65e4e6ef6ea21",
        "timestamp" : 1754904139000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Initial implementation of authentication token creation.\u000a",
        "date" : "2025-08-11 13:22:19 +0400",
        "id" : "a13c8564c635fd4761c8889abca65e4e6ef6ea21",
        "msg" : "Initial implementation of authentication token creation.",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/TimeInMillis.android.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectRealmDatabase/1.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateauth/ValidateAuthorizationUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/adapters/AuthTokenAdapter.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/test/kotlin/world/respect/server/domain/account/authwithpassword/AuthWithPasswordIntegrationTest.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/AuthenticatedUserPrincipalId.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/account/authwithpassword/GetTokenAndUserProfileWithUsernameAndPasswordDbImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/daos/AuthTokenEntityDao.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/account/validateauth/ValidateAuthorizationUseCaseDbImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/entities/AuthTokenEntity.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithUsernameAndPasswordUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/util/TimeInMillis.jvm.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/entities/PersonEntity.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/TimeInMillis.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithUsernameAndPassword.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/Application.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/realm/add/AddRealmUseCase.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/domain/account/setpassword/SetPasswordUseDbImpl.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/account/authwithpassword/GetTokenAndUserProfileWithUsernameAndPasswordDbImpl.kt",
          "respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/domain/account/AuthWithPasswordIntegrationTest.kt",
          "respect-lib-shared/build.gradle.kts",
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/validateauth/ValidateAuthorizationUseCaseDbImpl.kt",
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/setpassword/SetPasswordUseDbImpl.kt",
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithUsernameAndPasswordDbImpl.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/account/validateauth/ValidateAuthorizationUseCaseDbImpl.kt",
          "respect-server/src/test/kotlin/world/respect/server/domain/account/authwithpassword/AuthWithPasswordIntegrationTest.kt"
        ],
        "commitId" : "d726292260483bfeebdcb05b6ecea8501b6d09fd",
        "timestamp" : 1754906220000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Move db based implementations of account use cases to lib-shared.\u000a",
        "date" : "2025-08-11 13:57:00 +0400",
        "id" : "d726292260483bfeebdcb05b6ecea8501b6d09fd",
        "msg" : "Move db based implementations of account use cases to lib-shared.",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/account/authwithpassword/GetTokenAndUserProfileWithUsernameAndPasswordDbImpl.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/setpassword/SetPasswordUseDbImpl.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/account/validateauth/ValidateAuthorizationUseCaseDbImpl.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithUsernameAndPasswordDbImpl.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/account/setpassword/SetPasswordUseDbImpl.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/validateauth/ValidateAuthorizationUseCaseDbImpl.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-server/src/test/kotlin/world/respect/server/domain/account/authwithpassword/AuthWithPasswordIntegrationTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/build.gradle.kts"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/domain/account/AuthWithPasswordIntegrationTest.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectRealmDataSourceLocal.kt",
          "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/PersonDataSource.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/SetPasswordUseCase.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/adapters/PersonAdapter.kt",
          "respect-server/src/main/kotlin/world/respect/server/ServerAppMain.kt",
          "respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/domain/account/AuthWithPasswordIntegrationTest.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/realm/add/AddRealmUseCase.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDataSourceDb.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/PersonDataSourceDb.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/AuthenticatedUserPrincipalId.kt"
        ],
        "commitId" : "c5fcae7be6799c107c84a8055a631e381b673594",
        "timestamp" : 1754915201000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Initial implementation where adding a Realm using manage server cli will have an admin user set.\u000a",
        "date" : "2025-08-11 16:26:41 +0400",
        "id" : "c5fcae7be6799c107c84a8055a631e381b673594",
        "msg" : "Initial implementation where adding a Realm using manage server cli will have an admin user set.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/adapters/PersonAdapter.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/PersonDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectRealmDataSourceLocal.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/AuthenticatedUserPrincipalId.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/domain/account/AuthWithPasswordIntegrationTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/PersonDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/SetPasswordUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/realm/add/AddRealmUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ServerAppMain.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.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/util/ext/ApplicationCallExt.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectTokenManager.kt",
          "respect-server/build.gradle.kts",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithUsernameAndPasswordUseCase.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt",
          "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/exceptionwithstatuscode/ExceptionWithStatusCode.kt",
          "respect-server/src/main/kotlin/world/respect/server/routes/AuthRoute.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/AuthTokenProvider.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithUsernameAndPasswordUseCaseClient.kt",
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithUsernameAndPasswordDbImpl.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/ForbiddenException.kt"
        ],
        "commitId" : "c8ca8df1f94801fe076530fbd101d215fe89c593",
        "timestamp" : 1754926784000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Work in progress architecture to make authentication tokens available via dependency injection on client.\u000a",
        "date" : "2025-08-11 19:39:44 +0400",
        "id" : "c8ca8df1f94801fe076530fbd101d215fe89c593",
        "msg" : "Work in progress architecture to make authentication tokens available via dependency injection on client.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-server/build.gradle.kts"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/routes/AuthRoute.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithUsernameAndPasswordUseCaseClient.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithUsernameAndPasswordUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/exceptionwithstatuscode/ExceptionWithStatusCode.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithUsernameAndPasswordDbImpl.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-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/ForbiddenException.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/AuthTokenProvider.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectTokenManager.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/EncodeUserHandleUseCaseImpl.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/DecodeUserHandleUseCase.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/signup/SignupCredential.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/createaccount/CreateAccountScreen.kt",
          "respect-credentials/src/jvmTest/kotlin/world/respect/credentials/EncodeDecodeUserHandleUseCaseTest.kt",
          "gradle/libs.versions.toml",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/username/ParseCredentialUsernameUseCase.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCase.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt",
          "respect-credentials/src/androidTest/java/world/respect/credentials/EncodeDecodeUserHandleUseCaseTest.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/signup/SignupUseCase.kt",
          "respect-credentials/src/jvmTest/kotlin/world/respect/credentials/GetCredentialUseCaseTest.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/username/CreateCredentialUsernameUseCase.kt",
          "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/otheroptionsignup/OtherOptionsSignupViewModel.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/DecodeUserHandleUseCaseImpl.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCaseImpl.kt",
          "respect-app-compose/src/commonMain/kotlin/passkey/DecodeUserHandleUseCaseImpl.kt",
          "respect-app-compose/src/commonMain/kotlin/passkey/EncodeUserHandleUseCaseImpl.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialCreationOptionsJsonUseCase.kt"
        ],
        "commitId" : "316661b49d16904217eed9086cad9e26234994aa",
        "timestamp" : 1754983572000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "added Signupusecase\u000a",
        "date" : "2025-08-12 12:56:12 +0530",
        "id" : "316661b49d16904217eed9086cad9e26234994aa",
        "msg" : "added Signupusecase",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/createaccount/CreateAccountScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/signup/SignupCredential.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/username/CreateCredentialUsernameUseCase.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/username/ParseCredentialUsernameUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroptionsignup/OtherOptionsSignupViewModel.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/EncodeUserHandleUseCaseImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialCreationOptionsJsonUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/DecodeUserHandleUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCaseImpl.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/jvmTest/kotlin/world/respect/credentials/GetCredentialUseCaseTest.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-credentials/src/androidTest/java/world/respect/credentials/EncodeDecodeUserHandleUseCaseTest.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-credentials/src/jvmTest/kotlin/world/respect/credentials/EncodeDecodeUserHandleUseCaseTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/passkey/DecodeUserHandleUseCaseImpl.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/DecodeUserHandleUseCaseImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "gradle/libs.versions.toml"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/passkey/EncodeUserHandleUseCaseImpl.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/signup/SignupUseCase.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/realm/MakeRealmPathDirUseCase.kt",
          "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/realm/MakeRealmPathDirUseCaseAndroid.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt"
        ],
        "commitId" : "8cf629b89d465eb3e56435712ccbd76d21d183b1",
        "timestamp" : 1755066291000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "WOrk in progress: login functionality.\u000a",
        "date" : "2025-08-13 10:24:51 +0400",
        "id" : "8cf629b89d465eb3e56435712ccbd76d21d183b1",
        "msg" : "WOrk in progress: login functionality.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/realm/MakeRealmPathDirUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/realm/MakeRealmPathDirUseCaseAndroid.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.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/navigation/AppRoutes.kt",
          "respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt",
          "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithUsernameAndPasswordUseCaseClient.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/RespectAppDataSourceHttp.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepository.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt"
        ],
        "commitId" : "dc62362a13eaba6f6032738700a3cf839f62487b",
        "timestamp" : 1755071365000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Login functionality work in progress\u000a",
        "date" : "2025-08-13 11:49:25 +0400",
        "id" : "dc62362a13eaba6f6032738700a3cf839f62487b",
        "msg" : "Login functionality work in progress",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithUsernameAndPasswordUseCaseClient.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/RespectAppDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/exceptionwithstatuscode/ExceptionWithStatusCode.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/ForbiddenException.kt"
        ],
        "commitId" : "2822e1bdccc81cb9926b3ab95144c6627e54303b",
        "timestamp" : 1755089879000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Remove ExceptionWithStatusCode\u000a",
        "date" : "2025-08-13 16:57:59 +0400",
        "id" : "2822e1bdccc81cb9926b3ab95144c6627e54303b",
        "msg" : "Remove ExceptionWithStatusCode",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/ForbiddenException.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/exceptionwithstatuscode/ExceptionWithStatusCode.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-lib-util/build.gradle.kts",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/login/LoginScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt"
        ],
        "commitId" : "03e78d1dcd91b9f70c50feb8984821f74b556451",
        "timestamp" : 1755092126000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Update login screen to handle showing exception\u000a",
        "date" : "2025-08-13 17:35:26 +0400",
        "id" : "03e78d1dcd91b9f70c50feb8984821f74b556451",
        "msg" : "Update login screen to handle showing exception",
        "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/login/LoginViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/login/LoginScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-util/build.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/domain/account/RespectAccountManagerScopeTest.kt",
          "respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/domain/account/AuthWithPasswordIntegrationTest.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/realm/add/AddRealmUseCase.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/SetPasswordUseCase.kt",
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/setpassword/SetPasswordUseDbImpl.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/ForbiddenException.kt"
        ],
        "commitId" : "ea06c09162183cb976decea44746ef2a9eaf069b",
        "timestamp" : 1755093177000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Update SetPasswordUseCase.kt to check authenticated user.\u000a",
        "date" : "2025-08-13 17:52:57 +0400",
        "id" : "ea06c09162183cb976decea44746ef2a9eaf069b",
        "msg" : "Update SetPasswordUseCase.kt to check authenticated user.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/setpassword/SetPasswordUseDbImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/domain/account/AuthWithPasswordIntegrationTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/ForbiddenException.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/realm/add/AddRealmUseCase.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/domain/account/RespectAccountManagerScopeTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/SetPasswordUseCase.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectRealm.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/RealmDirectoryDataSourceDb.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccount.kt",
          "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/ListExt.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonExt.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/PersonDataSource.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectConstants.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-server/src/main/kotlin/world/respect/server/Application.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/daos/RealmEntityDao.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPersonAvatar.kt",
          "respect-server/src/main/kotlin/world/respect/server/routes/RespectRealmJsonRoute.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/PersonDataSourceDb.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectRealmDataSourceRepository.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/realm/PersonDataSourceRepository.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/daos/PersonEntityDao.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountAndPerson.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realmdirectory/RealmDirectoryDataSource.kt"
        ],
        "commitId" : "d6b92b365b1caab4482992b339fe8d84fa114b36",
        "timestamp" : 1755174603000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Initial implementation of AccountList screen.\u000a",
        "date" : "2025-08-14 16:30:03 +0400",
        "id" : "d6b92b365b1caab4482992b339fe8d84fa114b36",
        "msg" : "Initial implementation of AccountList screen.",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectRealmDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPersonAvatar.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/daos/PersonEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectConstants.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccount.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/routes/RespectRealmJsonRoute.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/realm/PersonDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realmdirectory/RealmDirectoryDataSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountAndPerson.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/PersonDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectRealm.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/PersonDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/RealmDirectoryDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/ListExt.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/Application.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realmdirectory/daos/RealmEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt"
        ],
        "commitId" : "0f1e9bf8b77f88fb0f05b5a17f1e5fd968ce303e",
        "timestamp" : 1755176073000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Update acknowledgement screen to navigate to app launcher if already logged in.\u000a",
        "date" : "2025-08-14 16:54:33 +0400",
        "id" : "0f1e9bf8b77f88fb0f05b5a17f1e5fd968ce303e",
        "msg" : "Update acknowledgement screen to navigate to app launcher if already logged in.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.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/nikunj.sharma",
      "fullName" : "nikunj.sharma"
    }
  ]
}