{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "com.cloudbees.jenkins.GitHubPushCause",
          "shortDescription" : "Started by GitHub push by mikedawson"
        },
        {
          "_class" : "com.cloudbees.jenkins.GitHubPushCause",
          "shortDescription" : "Started by GitHub push by mikedawson"
        }
      ]
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/dev-simplified-onboarding" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 55,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "d11eba451a51fac5b277739157e1990f95c3e859",
            "branch" : [
              {
                "SHA1" : "d11eba451a51fac5b277739157e1990f95c3e859",
                "name" : "refs/remotes/origin/dev-simplified-onboarding"
              }
            ]
          },
          "revision" : {
            "SHA1" : "d11eba451a51fac5b277739157e1990f95c3e859",
            "branch" : [
              {
                "SHA1" : "d11eba451a51fac5b277739157e1990f95c3e859",
                "name" : "refs/remotes/origin/dev-simplified-onboarding"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "d11eba451a51fac5b277739157e1990f95c3e859",
        "branch" : [
          {
            "SHA1" : "d11eba451a51fac5b277739157e1990f95c3e859",
            "name" : "refs/remotes/origin/dev-simplified-onboarding"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/UstadMobile/UstadMobile.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "hudson.tasks.junit.TestResultAction",
      "failCount" : 0,
      "skipCount" : 2,
      "totalCount" : 337,
      "urlName" : "testReport"
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    {
      "displayPath" : "app-android-benchmarkRelease.apk",
      "fileName" : "app-android-benchmarkRelease.apk",
      "relativePath" : "app-android/build/outputs/apk/benchmarkRelease/app-android-benchmarkRelease.apk"
    },
    {
      "displayPath" : "app-android-debug.apk",
      "fileName" : "app-android-debug.apk",
      "relativePath" : "app-android/build/outputs/apk/debug/app-android-debug.apk"
    },
    {
      "displayPath" : "app-android-nonMinifiedRelease.apk",
      "fileName" : "app-android-nonMinifiedRelease.apk",
      "relativePath" : "app-android/build/outputs/apk/nonMinifiedRelease/app-android-nonMinifiedRelease.apk"
    },
    {
      "displayPath" : "app-android-release.apk",
      "fileName" : "app-android-release.apk",
      "relativePath" : "app-android/build/outputs/apk/release/app-android-release.apk"
    },
    {
      "displayPath" : "benchmarkRelease/mapping.txt",
      "fileName" : "mapping.txt",
      "relativePath" : "app-android/build/outputs/mapping/benchmarkRelease/mapping.txt"
    },
    {
      "displayPath" : "release/mapping.txt",
      "fileName" : "mapping.txt",
      "relativePath" : "app-android/build/outputs/mapping/release/mapping.txt"
    },
    {
      "displayPath" : "ustad-server.zip",
      "fileName" : "ustad-server.zip",
      "relativePath" : "app-ktor-server/build/distributions/ustad-server.zip"
    }
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#55",
  "duration" : 614031,
  "estimatedDuration" : 563613,
  "executor" : None,
  "fullDisplayName" : "dev-simplified-onboarding #55",
  "id" : "55",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 55,
  "queueId" : 2734,
  "result" : "SUCCESS",
  "timestamp" : 1747813173227,
  "url" : "https://devserver3.ustadmobile.com/jenkins/job/dev-simplified-onboarding/55/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "lib-ui-compose/src/commonMain/kotlin/com/ustadmobile/libuicompose/view/signup/SignUpScreen.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/username/GetUsernameSuggestionUseCase.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/username/UsernameSuggestionUseCase.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/impl/di/CommonClientDomainModule.kt",
          "app-ktor-server/src/main/kotlin/com/ustadmobile/lib/rest/UmRestApplication.kt",
          "app-react/src/jsMain/kotlin/com/ustadmobile/view/signup/SignUpScreen.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/signup/SignUpViewModel.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/impl/di/CommonDomainModule.kt",
          "app-ktor-server/src/main/kotlin/com/ustadmobile/lib/rest/domain/username/UsernameSuggestionRoute.kt",
          "core/src/jvmTest/kotlin/com/ustadmobile/core/username/UsernameSuggestionUseCaseTest.kt"
        ],
        "commitId" : "b8ec4eee1c3ee93a5d6fda7459e87ed74330df59",
        "timestamp" : 1747044565000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "username suggestions added\u000a",
        "date" : "2025-05-12 15:39:25 +0530",
        "id" : "b8ec4eee1c3ee93a5d6fda7459e87ed74330df59",
        "msg" : "username suggestions added",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/impl/di/CommonDomainModule.kt"
          },
          {
            "editType" : "add",
            "file" : "core/src/jvmTest/kotlin/com/ustadmobile/core/username/UsernameSuggestionUseCaseTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "lib-ui-compose/src/commonMain/kotlin/com/ustadmobile/libuicompose/view/signup/SignUpScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "app-ktor-server/src/main/kotlin/com/ustadmobile/lib/rest/UmRestApplication.kt"
          },
          {
            "editType" : "add",
            "file" : "app-ktor-server/src/main/kotlin/com/ustadmobile/lib/rest/domain/username/UsernameSuggestionRoute.kt"
          },
          {
            "editType" : "add",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/username/GetUsernameSuggestionUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/impl/di/CommonClientDomainModule.kt"
          },
          {
            "editType" : "add",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/username/UsernameSuggestionUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "app-react/src/jsMain/kotlin/com/ustadmobile/view/signup/SignUpScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/signup/SignUpViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/Prf.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/ClientExtensionResults.kt",
          "core/src/androidMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/GetCredentialUseCaseImpl.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/PasskeyWebAuthNResponse.kt",
          "core/build.gradle",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/Response.kt",
          "app-android/src/main/java/com/ustadmobile/port/android/view/AbstractAppActivity.kt",
          "gradle/libs.versions.toml",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/ClientDataJSON.kt",
          "core/src/androidMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/CreatePasskeyUseCaseImpl.kt"
        ],
        "commitId" : "ca2dee9c7dab5194773a7eed9900c9f350b8a7d0",
        "timestamp" : 1747067619000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "Kotlinx Serialization Classes for WebAuthn Passkey Response\u000a",
        "date" : "2025-05-12 22:03:39 +0530",
        "id" : "ca2dee9c7dab5194773a7eed9900c9f350b8a7d0",
        "msg" : "Kotlinx Serialization Classes for WebAuthn Passkey Response",
        "paths" : [
          {
            "editType" : "add",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/Prf.kt"
          },
          {
            "editType" : "edit",
            "file" : "gradle/libs.versions.toml"
          },
          {
            "editType" : "edit",
            "file" : "app-android/src/main/java/com/ustadmobile/port/android/view/AbstractAppActivity.kt"
          },
          {
            "editType" : "add",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/PasskeyWebAuthNResponse.kt"
          },
          {
            "editType" : "add",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/ClientExtensionResults.kt"
          },
          {
            "editType" : "add",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/Response.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/androidMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/CreatePasskeyUseCaseImpl.kt"
          },
          {
            "editType" : "add",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/ClientDataJSON.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/build.gradle"
          },
          {
            "editType" : "edit",
            "file" : "core/src/androidMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/GetCredentialUseCaseImpl.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/Response.kt",
          "core/src/androidMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/CreatePasskeyUseCaseImpl.kt",
          "core/src/androidMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/GetCredentialUseCaseImpl.kt"
        ],
        "commitId" : "e609f9092db16c9d330cadbeddc9cfcc04328309",
        "timestamp" : 1747119129000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "changes in GetCredentialUseCaseImpl\u000a",
        "date" : "2025-05-13 12:22:09 +0530",
        "id" : "e609f9092db16c9d330cadbeddc9cfcc04328309",
        "msg" : "changes in GetCredentialUseCaseImpl",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "core/src/androidMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/CreatePasskeyUseCaseImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/androidMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/GetCredentialUseCaseImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/Response.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "core/src/commonMain/kotlin/com/ustadmobile/core/account/UstadAccountManager.kt",
          "app-android/src/main/java/com/ustadmobile/port/android/impl/UstadApp.kt",
          "app-react/src/jsMain/kotlin/com/ustadmobile/view/signup/SignUpEnterUsernamePasswordScreen.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/signup/SignupEnterUsernamePasswordViewModel.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/CreatePasskeyUseCase.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/signup/OtherSignUpOptionSelectionViewModel.kt",
          "core/src/androidMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/CreatePasskeyUseCaseImpl.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/CreatePasskeyRequestJsonUseCase.kt",
          "lib-ui-compose/src/commonMain/kotlin/com/ustadmobile/libuicompose/view/signup/SignUpEnterUsernamePasswordScreen.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/CreatePasskeyParams.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/person/manageaccount/ManageAccountViewModel.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/signup/SignUpViewModel.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/SavePersonPasskeyUseCase.kt"
        ],
        "commitId" : "d1dbaa87d84f67b23be1621c04d73aacc1d6f59d",
        "timestamp" : 1747147865000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "CreatePasskey use case should be returning the webauthn response\u000aCreating a passkey - use case parameter should be only the username\u000a",
        "date" : "2025-05-13 20:21:05 +0530",
        "id" : "d1dbaa87d84f67b23be1621c04d73aacc1d6f59d",
        "msg" : "CreatePasskey use case should be returning the webauthn response",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/signup/SignupEnterUsernamePasswordViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/androidMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/CreatePasskeyUseCaseImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/account/UstadAccountManager.kt"
          },
          {
            "editType" : "edit",
            "file" : "app-android/src/main/java/com/ustadmobile/port/android/impl/UstadApp.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/SavePersonPasskeyUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/signup/OtherSignUpOptionSelectionViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "lib-ui-compose/src/commonMain/kotlin/com/ustadmobile/libuicompose/view/signup/SignUpEnterUsernamePasswordScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/signup/SignUpViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/CreatePasskeyUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/CreatePasskeyParams.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/CreatePasskeyRequestJsonUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "app-react/src/jsMain/kotlin/com/ustadmobile/view/signup/SignUpEnterUsernamePasswordScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/person/manageaccount/ManageAccountViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/signup/SignUpViewModel.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/username/UsernameSuggestionUseCase.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/username/helper/UsernameErrorException.kt"
        ],
        "commitId" : "4e53f267c642ec2fafa86d6573314f70ff8d1019",
        "timestamp" : 1747209225000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "added UsernameSuggestionUseCase\u000a",
        "date" : "2025-05-14 13:23:45 +0530",
        "id" : "4e53f267c642ec2fafa86d6573314f70ff8d1019",
        "msg" : "added UsernameSuggestionUseCase",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/username/UsernameSuggestionUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/username/helper/UsernameErrorException.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/signup/SignUpViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/PasskeyWebAuthNResponse.kt"
        ],
        "commitId" : "17c2b6052f5542c37d9fc8aa2c2e7ad40dc50d19",
        "timestamp" : 1747215895000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "spec added\u000a",
        "date" : "2025-05-14 15:14:55 +0530",
        "id" : "17c2b6052f5542c37d9fc8aa2c2e7ad40dc50d19",
        "msg" : "spec added",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/PasskeyWebAuthNResponse.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/login/LoginViewModel.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/Response.kt",
          "core/src/jvmTest/kotlin/com/ustadmobile/core/domain/xapi/formatresponse/FormatStatementAuthenticatorAssertionResponseJSONUseCaseTest.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/CreatePasskeyUseCase.kt",
          "gradle/libs.versions.toml",
          "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/signup/OtherSignUpOptionSelectionViewModel.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/GetCredentialUseCase.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/person/manageaccount/ManageAccountViewModel.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/CreatePasskeyParams.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/AuthenticationResponseJSON.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/SavePersonPasskeyUseCase.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/account/UstadAccountManager.kt",
          "core/src/androidMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/GetCredentialUseCaseImpl.kt",
          "app-android/src/main/java/com/ustadmobile/port/android/impl/UstadApp.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/AuthenticationExtensionsClientOutputsJSON.kt",
          "app-android/src/main/java/com/ustadmobile/port/android/view/AbstractAppActivity.kt",
          "core/src/jvmTest/kotlin/com/ustadmobile/core/domain/xapi/formatresponse/FormatStatementResponseUseCaseTest.kt",
          "core/src/androidMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/CreatePasskeyUseCaseImpl.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/AuthenticationExtensionsPRFOutputsJSON.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/CreatePasskeyRequestJsonUseCase.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/AuthenticatorAssertionResponseJSON.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/ClientExtensionResults.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/Prf.kt",
          "lib-database/schemas/com.ustadmobile.core.db.UmAppDatabase/207.json",
          "core/build.gradle",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/PasskeyWebAuthNResponse.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/ClientDataJSON.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/signup/SignUpViewModel.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/account/addaccountselectneworexisting/AddAccountSelectNewOrExistingViewModel.kt"
        ],
        "commitId" : "ee491d68ca69202c48738d7ad4d44ce5a1ed0648",
        "timestamp" : 1747306693000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "changed the name of PasskeyWebAuthNResponse according to spec\u000achange in the flow of signin with passkey\u000a",
        "date" : "2025-05-15 16:28:13 +0530",
        "id" : "ee491d68ca69202c48738d7ad4d44ce5a1ed0648",
        "msg" : "changed the name of PasskeyWebAuthNResponse according to spec",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/account/addaccountselectneworexisting/AddAccountSelectNewOrExistingViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "gradle/libs.versions.toml"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/account/UstadAccountManager.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/SavePersonPasskeyUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/androidMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/CreatePasskeyUseCaseImpl.kt"
          },
          {
            "editType" : "add",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/AuthenticationResponseJSON.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/ClientDataJSON.kt"
          },
          {
            "editType" : "edit",
            "file" : "lib-database/schemas/com.ustadmobile.core.db.UmAppDatabase/207.json"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/person/manageaccount/ManageAccountViewModel.kt"
          },
          {
            "editType" : "delete",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/ClientExtensionResults.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/CreatePasskeyUseCase.kt"
          },
          {
            "editType" : "delete",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/Prf.kt"
          },
          {
            "editType" : "edit",
            "file" : "app-android/src/main/java/com/ustadmobile/port/android/view/AbstractAppActivity.kt"
          },
          {
            "editType" : "delete",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/CreatePasskeyParams.kt"
          },
          {
            "editType" : "delete",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/Response.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/login/LoginViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/AuthenticationExtensionsPRFOutputsJSON.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/androidMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/GetCredentialUseCaseImpl.kt"
          },
          {
            "editType" : "add",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/AuthenticationExtensionsClientOutputsJSON.kt"
          },
          {
            "editType" : "delete",
            "file" : "core/src/jvmTest/kotlin/com/ustadmobile/core/domain/xapi/formatresponse/FormatStatementResponseUseCaseTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/build.gradle"
          },
          {
            "editType" : "delete",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/PasskeyWebAuthNResponse.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/CreatePasskeyRequestJsonUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/GetCredentialUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "app-android/src/main/java/com/ustadmobile/port/android/impl/UstadApp.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/signup/SignUpViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/AuthenticatorAssertionResponseJSON.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/signup/OtherSignUpOptionSelectionViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "core/src/jvmTest/kotlin/com/ustadmobile/core/domain/xapi/formatresponse/FormatStatementAuthenticatorAssertionResponseJSONUseCaseTest.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "core/src/commonMain/kotlin/com/ustadmobile/core/account/UstadAccountManager.kt",
          "core/src/androidMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/GetCredentialUseCaseImpl.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/AuthenticationExtensionsClientOutputsJSON.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/model/AuthenticationExtensionsClientOutputsJSON.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/model/AuthenticationResponseJSON.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/CreatePasskeyUseCase.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/model/ClientDataJSON.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/AuthenticationExtensionsPRFOutputsJSON.kt",
          "core/src/androidMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/CreatePasskeyUseCaseImpl.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/model/AuthenticatorAssertionResponseJSON.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/AuthenticatorAssertionResponseJSON.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/GetCredentialUseCase.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/model/AuthenticationExtensionsPRFOutputsJSON.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/AuthenticationResponseJSON.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/ClientDataJSON.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/SavePersonPasskeyUseCase.kt"
        ],
        "commitId" : "e9652b14275ff728a8ebecc75e96dfdc7833b038",
        "timestamp" : 1747308378000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Move webauthn model into model package.\u000a",
        "date" : "2025-05-15 15:26:18 +0400",
        "id" : "e9652b14275ff728a8ebecc75e96dfdc7833b038",
        "msg" : "Move webauthn model into model package.",
        "paths" : [
          {
            "editType" : "add",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/model/ClientDataJSON.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/SavePersonPasskeyUseCase.kt"
          },
          {
            "editType" : "delete",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/AuthenticationResponseJSON.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/GetCredentialUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/CreatePasskeyUseCase.kt"
          },
          {
            "editType" : "delete",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/AuthenticationExtensionsPRFOutputsJSON.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/account/UstadAccountManager.kt"
          },
          {
            "editType" : "delete",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/ClientDataJSON.kt"
          },
          {
            "editType" : "add",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/model/AuthenticatorAssertionResponseJSON.kt"
          },
          {
            "editType" : "add",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/model/AuthenticationExtensionsPRFOutputsJSON.kt"
          },
          {
            "editType" : "add",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/model/AuthenticationResponseJSON.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/androidMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/CreatePasskeyUseCaseImpl.kt"
          },
          {
            "editType" : "delete",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/AuthenticatorAssertionResponseJSON.kt"
          },
          {
            "editType" : "delete",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/webAuthn/AuthenticationExtensionsClientOutputsJSON.kt"
          },
          {
            "editType" : "add",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/model/AuthenticationExtensionsClientOutputsJSON.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/androidMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/GetCredentialUseCaseImpl.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "core/src/commonJvmMain/kotlin/com/ustadmobile/core/domain/passkey/DecodeUserHandleUseCaseImpl.kt",
          "app-android/src/main/java/com/ustadmobile/port/android/view/AbstractAppActivity.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/request/CreatePublicKeyCredentialCreationOptionsJsonUseCase.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/DecodeUserHandleUseCase.kt",
          "core/src/jvmTest/kotlin/com/ustadmobile/core/domain/passkey/EncodeDecodeUserHandleUseCaseTest.kt",
          "app-desktop/src/main/java/com/ustadmobile/port/desktop/DesktopDomainDiModule.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/EncodeUserHandleUseCase.kt",
          "core/src/commonJvmMain/kotlin/com/ustadmobile/core/domain/passkey/EncodeUserHandleUseCaseImpl.kt",
          "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/account/addaccountselectneworexisting/AddAccountSelectNewOrExistingViewModel.kt"
        ],
        "commitId" : "6d684ccb65a0e58f951a3cdcb1849ecfc6277fd1",
        "timestamp" : 1747382458000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "user handle encoding decoding added with test\u000a",
        "date" : "2025-05-16 13:30:58 +0530",
        "id" : "6d684ccb65a0e58f951a3cdcb1849ecfc6277fd1",
        "msg" : "user handle encoding decoding added with test",
        "paths" : [
          {
            "editType" : "add",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/DecodeUserHandleUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "core/src/commonJvmMain/kotlin/com/ustadmobile/core/domain/passkey/DecodeUserHandleUseCaseImpl.kt"
          },
          {
            "editType" : "add",
            "file" : "core/src/commonJvmMain/kotlin/com/ustadmobile/core/domain/passkey/EncodeUserHandleUseCaseImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "app-android/src/main/java/com/ustadmobile/port/android/view/AbstractAppActivity.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/account/addaccountselectneworexisting/AddAccountSelectNewOrExistingViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "core/src/jvmTest/kotlin/com/ustadmobile/core/domain/passkey/EncodeDecodeUserHandleUseCaseTest.kt"
          },
          {
            "editType" : "add",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/EncodeUserHandleUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/domain/credentials/passkey/request/CreatePublicKeyCredentialCreationOptionsJsonUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "app-desktop/src/main/java/com/ustadmobile/port/desktop/DesktopDomainDiModule.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "core/src/commonMain/kotlin/com/ustadmobile/core/account/UstadAccountManager.kt",
          "app-ktor-server/src/main/kotlin/com/ustadmobile/lib/rest/UmRestApplication.kt",
          "core/src/commonJvmMain/kotlin/com/ustadmobile/core/domain/passkey/DecodeUserHandleUseCaseImpl.kt",
          "core/src/jvmTest/kotlin/com/ustadmobile/core/domain/passkey/EncodeDecodeUserHandleUseCaseTest.kt",
          "app-ktor-server/src/main/kotlin/com/ustadmobile/lib/rest/domain/passkey/verify/VerifySignInWithPasskeyUseCase.kt",
          "core/src/commonJvmMain/kotlin/com/ustadmobile/core/domain/passkey/EncodeUserHandleUseCaseImpl.kt",
          "app-ktor-server/src/main/kotlin/com/ustadmobile/lib/rest/domain/passkey/verify/VerifySignInWithPasskeyRoute.kt"
        ],
        "commitId" : "ccb7cbae52534cce1dad19c3f1d8742e23f5450e",
        "timestamp" : 1747395377000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "clean up encoding decoding\u000a",
        "date" : "2025-05-16 17:06:17 +0530",
        "id" : "ccb7cbae52534cce1dad19c3f1d8742e23f5450e",
        "msg" : "clean up encoding decoding",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "core/src/jvmTest/kotlin/com/ustadmobile/core/domain/passkey/EncodeDecodeUserHandleUseCaseTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "app-ktor-server/src/main/kotlin/com/ustadmobile/lib/rest/UmRestApplication.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonJvmMain/kotlin/com/ustadmobile/core/domain/passkey/EncodeUserHandleUseCaseImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "app-ktor-server/src/main/kotlin/com/ustadmobile/lib/rest/domain/passkey/verify/VerifySignInWithPasskeyUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "app-ktor-server/src/main/kotlin/com/ustadmobile/lib/rest/domain/passkey/verify/VerifySignInWithPasskeyRoute.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/account/UstadAccountManager.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonJvmMain/kotlin/com/ustadmobile/core/domain/passkey/DecodeUserHandleUseCaseImpl.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/signup/SignUpViewModel.kt",
          "app-react/src/jsMain/kotlin/com/ustadmobile/view/signup/SignUpScreen.kt"
        ],
        "commitId" : "40e3bfcc22f39905980d076f28f4b223d2fa7f5a",
        "timestamp" : 1747640180000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
          "fullName" : "nikunj.sharma"
        },
        "authorEmail" : "nikunj.sharma@sutara.org",
        "comment" : "username issue fixed for web\u000a",
        "date" : "2025-05-19 13:06:20 +0530",
        "id" : "40e3bfcc22f39905980d076f28f4b223d2fa7f5a",
        "msg" : "username issue fixed for web",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/viewmodel/signup/SignUpViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "app-react/src/jsMain/kotlin/com/ustadmobile/view/signup/SignUpScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "core/src/commonMain/kotlin/com/ustadmobile/core/account/UstadAccountManager.kt",
          "app-ktor-server/src/main/kotlin/com/ustadmobile/lib/rest/domain/passkey/verify/VerifySignInWithPasskeyUseCase.kt",
          "app-ktor-server/src/main/kotlin/com/ustadmobile/lib/rest/domain/passkey/verify/VerifySignInWithPasskeyRoute.kt",
          "core/src/jvmTest/kotlin/com/ustadmobile/core/username/UsernameSuggestionUseCaseTest.kt"
        ],
        "commitId" : "f7c5868fc4f88bf520b5564e93464c6c0484de89",
        "timestamp" : 1747812756000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Minor tidyup - remove commented out code etc.\u000a",
        "date" : "2025-05-21 11:32:36 +0400",
        "id" : "f7c5868fc4f88bf520b5564e93464c6c0484de89",
        "msg" : "Minor tidyup - remove commented out code etc.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app-ktor-server/src/main/kotlin/com/ustadmobile/lib/rest/domain/passkey/verify/VerifySignInWithPasskeyUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/commonMain/kotlin/com/ustadmobile/core/account/UstadAccountManager.kt"
          },
          {
            "editType" : "edit",
            "file" : "app-ktor-server/src/main/kotlin/com/ustadmobile/lib/rest/domain/passkey/verify/VerifySignInWithPasskeyRoute.kt"
          },
          {
            "editType" : "edit",
            "file" : "core/src/jvmTest/kotlin/com/ustadmobile/core/username/UsernameSuggestionUseCaseTest.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "gradle/libs.versions.toml",
          "core/build.gradle"
        ],
        "commitId" : "5c8f8cabb797b2e0e4eea2a0412d662be67317ed",
        "timestamp" : 1747813134000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Remove unused json codegen dependency.\u000a",
        "date" : "2025-05-21 11:38:54 +0400",
        "id" : "5c8f8cabb797b2e0e4eea2a0412d662be67317ed",
        "msg" : "Remove unused json codegen dependency.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "core/build.gradle"
          },
          {
            "editType" : "edit",
            "file" : "gradle/libs.versions.toml"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma",
      "fullName" : "nikunj.sharma"
    },
    {
      "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
      "fullName" : "Mike Dawson"
    }
  ]
}