<freeStyleBuild _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesorigindev-student-grouping _class='hudson.plugins.git.util.Build'><buildNumber>22</buildNumber><marked><SHA1>55622a2f0afe5a450075f99565269f95d6df58c0</SHA1><branch><SHA1>55622a2f0afe5a450075f99565269f95d6df58c0</SHA1><name>refs/remotes/origin/dev-student-grouping</name></branch></marked><revision><SHA1>55622a2f0afe5a450075f99565269f95d6df58c0</SHA1><branch><SHA1>55622a2f0afe5a450075f99565269f95d6df58c0</SHA1><name>refs/remotes/origin/dev-student-grouping</name></branch></revision></refsremotesorigindev-student-grouping></buildsByBranchName><lastBuiltRevision><SHA1>55622a2f0afe5a450075f99565269f95d6df58c0</SHA1><branch><SHA1>55622a2f0afe5a450075f99565269f95d6df58c0</SHA1><name>refs/remotes/origin/dev-student-grouping</name></branch></lastBuiltRevision><remoteUrl>https://github.com/UstadMobile/Respect.git</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'><artifactsUrl>https://devserver3.ustadmobile.com/jenkins/job/dev-student-grouping-end-to-end-test/lastBuild/artifact</artifactsUrl><changesUrl>https://devserver3.ustadmobile.com/jenkins/job/dev-student-grouping-end-to-end-test/changes</changesUrl><displayUrl>https://devserver3.ustadmobile.com/jenkins/job/dev-student-grouping-end-to-end-test/lastBuild/</displayUrl><testsUrl>https://devserver3.ustadmobile.com/jenkins/job/dev-student-grouping-end-to-end-test/lastBuild/testReport</testsUrl></action><artifact><displayPath>001_001_invite_users_using_qr_code_or_link_test.mp4</displayPath><fileName>001_001_invite_users_using_qr_code_or_link_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_users_using_qr_code_or_link_test.mp4</relativePath></artifact><artifact><displayPath>001_002_add_user_direct_test.mp4</displayPath><fileName>001_002_add_user_direct_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_002_add_user_direct_test.mp4</relativePath></artifact><artifact><displayPath>001_003_login_using_school_link_test.mp4</displayPath><fileName>001_003_login_using_school_link_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_003_login_using_school_link_test.mp4</relativePath></artifact><artifact><displayPath>001_005_add_school_self_registration_test.mp4</displayPath><fileName>001_005_add_school_self_registration_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_005_add_school_self_registration_test.mp4</relativePath></artifact><artifact><displayPath>002_browse_lessons_test.mp4</displayPath><fileName>002_browse_lessons_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/002_browse_lessons_test.mp4</relativePath></artifact><artifact><displayPath>004_001_add_groups_to_a_class_test.mp4</displayPath><fileName>004_001_add_groups_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/004_001_add_groups_to_a_class_test.mp4</relativePath></artifact><artifact><displayPath>001_001_invite_users_using_qr_code_or_link_test.png</displayPath><fileName>001_001_invite_users_using_qr_code_or_link_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_users_using_qr_code_or_link_test.png</relativePath></artifact><artifact><displayPath>001_002_add_user_direct_test.png</displayPath><fileName>001_002_add_user_direct_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_002_add_user_direct_test.png</relativePath></artifact><artifact><displayPath>001_003_login_using_school_link_test.png</displayPath><fileName>001_003_login_using_school_link_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_003_login_using_school_link_test.png</relativePath></artifact><artifact><displayPath>001_005_add_school_self_registration_test.png</displayPath><fileName>001_005_add_school_self_registration_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_005_add_school_self_registration_test.png</relativePath></artifact><artifact><displayPath>002_browse_lessons_test.png</displayPath><fileName>002_browse_lessons_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/002_browse_lessons_test.png</relativePath></artifact><artifact><displayPath>004_001_add_groups_to_a_class_test.png</displayPath><fileName>004_001_add_groups_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/004_001_add_groups_to_a_class_test.png</relativePath></artifact><artifact><displayPath>00_Main_Dashboard.png</displayPath><fileName>00_Main_Dashboard.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/00_Main_Dashboard.png</relativePath></artifact><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli.zip</displayPath><fileName>respect-cli.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.0.zip</displayPath><fileName>respect-server-1.0.0.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.0.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.0.zip</displayPath><fileName>respect-server-shadow-1.0.0.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.0.zip</relativePath></artifact><building>false</building><displayName>#22</displayName><duration>1258412</duration><estimatedDuration>1221231</estimatedDuration><fullDisplayName>dev-student-grouping-end-to-end-test #22</fullDisplayName><id>22</id><inProgress>false</inProgress><keepLog>false</keepLog><number>22</number><queueId>8554</queueId><result>SUCCESS</result><timestamp>1779246000994</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/dev-student-grouping-end-to-end-test/22/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><commitId>cf4a9f42b8e7f871329c51279c628fd59fd02757</commitId><timestamp>1779104756000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Pass assignment activity id through learning unit detail to launch app use case.
</comment><date>2026-05-18 15:45:56 +0400</date><id>cf4a9f42b8e7f871329c51279c628fd59fd02757</id><msg>Pass assignment activity id through learning unit detail to launch app use case.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt</affectedPath><affectedPath>respect-lib-util/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt</affectedPath><commitId>50b45575b509674831d86091945b25b8e1275920</commitId><timestamp>1779107470000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update GetXapiLaunchUrlUseCase to include assignment activity id in the path.
</comment><date>2026-05-18 16:31:10 +0400</date><id>50b45575b509674831d86091945b25b8e1275920</id><msg>Update GetXapiLaunchUrlUseCase to include assignment activity id in the path.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-util/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiForbiddenException.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiBadRequestException.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiException.kt</affectedPath><commitId>175af5b50914120881058f512916023093144712</commitId><timestamp>1779126551000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement initial support for statement voiding.
</comment><date>2026-05-18 21:49:11 +0400</date><id>175af5b50914120881058f512916023093144712</id><msg>Implement initial support for statement voiding.</msg><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiBadRequestException.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiException.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiForbiddenException.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><commitId>c6dee1e5ab71a4595e2568c6d29ac442826472b6</commitId><timestamp>1779182286000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor `ClazzDetailViewModel.kt` to clean up formatting and whitespace.
</comment><date>2026-05-19 14:48:06 +0530</date><id>c6dee1e5ab71a4595e2568c6d29ac442826472b6</id><msg>Refactor `ClazzDetailViewModel.kt` to clean up formatting and whitespace.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName><id>mandvi.verma</id></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName><id>mike</id></culprit></freeStyleBuild>