<freeStyleProject _class='hudson.model.FreeStyleProject'><action></action><action _class='hudson.plugins.jobConfigHistory.JobConfigHistoryProjectAction'></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.JobDisplayAction'><displayUrl>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/</displayUrl></action><action _class='com.cloudbees.plugins.credentials.ViewCredentialsAction'><stores></stores></action><description>change-history-backup</description><displayName>change-history-end-to-end</displayName><fullDisplayName>change-history-end-to-end</fullDisplayName><fullName>change-history-end-to-end</fullName><name>change-history-end-to-end</name><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/</url><buildable>true</buildable><build _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><refsremotesoriginchange-history-backup _class='hudson.plugins.git.util.Build'><buildNumber>27</buildNumber><marked><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><branch><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></marked><revision><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><branch><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></revision></refsremotesoriginchange-history-backup><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>18</buildNumber><marked><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><branch><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><name>refs/remotes/origin/change-history-backup</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'></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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>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><building>false</building><displayName>#27</displayName><duration>175992</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #27</fullDisplayName><id>27</id><inProgress>false</inProgress><keepLog>false</keepLog><number>27</number><queueId>7060</queueId><result>FAILURE</result><timestamp>1775178660577</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/27/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>635519e5577887607af9cfccecfda0c4e8f42850</commitId><timestamp>1774358734000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update README.md
</comment><date>2026-03-24 17:25:34 +0400</date><id>635519e5577887607af9cfccecfda0c4e8f42850</id><msg>Update README.md</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>bfa39b2a3c882f4d1a6bd38434113917aa9fd04f</commitId><timestamp>1774359709000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Create CONTRIBUTING.md
</comment><date>2026-03-24 17:41:49 +0400</date><id>bfa39b2a3c882f4d1a6bd38434113917aa9fd04f</id><msg>Create CONTRIBUTING.md</msg><path><editType>add</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>4d2d577c074261d46b7da9fd78869c41335c815b</commitId><timestamp>1774359812000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md to clarify contribution types

Expanded contribution guidelines to include non-coding contributions.
</comment><date>2026-03-24 17:43:32 +0400</date><id>4d2d577c074261d46b7da9fd78869c41335c815b</id><msg>Update CONTRIBUTING.md to clarify contribution types</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>255c9ea9b8c73cd3984a3a39fa98bfd76a5f0be3</commitId><timestamp>1774373152000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Revise CONTRIBUTING.md
</comment><date>2026-03-24 21:25:52 +0400</date><id>255c9ea9b8c73cd3984a3a39fa98bfd76a5f0be3</id><msg>Revise CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>66d6c3acce0f2f9e6d67ee69a50ed0052135ea6b</commitId><timestamp>1774374472000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Revise CONTRIBUTING.md
</comment><date>2026-03-24 21:47:52 +0400</date><id>66d6c3acce0f2f9e6d67ee69a50ed0052135ea6b</id><msg>Revise CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD</affectedPath><commitId>3adb525ecee9881eeecb0701badac5cb1dfa4fb8</commitId><timestamp>1774378557000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Add issue template for app catalog requests
</comment><date>2026-03-24 22:55:57 +0400</date><id>3adb525ecee9881eeecb0701badac5cb1dfa4fb8</id><msg>Add issue template for app catalog requests</msg><path><editType>add</editType><file>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>d41eee02111a434cd28e8aaf46ec80aca4d17252</commitId><timestamp>1774378654000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md
</comment><date>2026-03-24 22:57:34 +0400</date><id>d41eee02111a434cd28e8aaf46ec80aca4d17252</id><msg>Update CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.github/ISSUE_TEMPLATE/localization.MD</affectedPath><commitId>1436b71a08c919402daf54676335d6f762ceeaf2</commitId><timestamp>1774381716000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Create localization.MD
</comment><date>2026-03-24 23:48:36 +0400</date><id>1436b71a08c919402daf54676335d6f762ceeaf2</id><msg>Create localization.MD</msg><path><editType>add</editType><file>.github/ISSUE_TEMPLATE/localization.MD</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>bef105b18bfdc9b0a6f50b71a583e255dcd24b32</commitId><timestamp>1774381915000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md
</comment><date>2026-03-24 23:51:55 +0400</date><id>bef105b18bfdc9b0a6f50b71a583e255dcd24b32</id><msg>Update CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>508d677cb32637726a803e6a92bae4ad3b3fac34</commitId><timestamp>1774382049000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md
</comment><date>2026-03-24 23:54:09 +0400</date><id>508d677cb32637726a803e6a92bae4ad3b3fac34</id><msg>Update CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>1abbff4ce9a48a56e39ac1aaaceabede35dc9ea2</commitId><timestamp>1774382305000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update contributing.md
</comment><date>2026-03-24 23:58:25 +0400</date><id>1abbff4ce9a48a56e39ac1aaaceabede35dc9ea2</id><msg>Update contributing.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>1c61153609b7b0f4f77fd75a7385ac22fe62fc2c</commitId><timestamp>1774382402000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Add contributing guidelines to README

Added a contributing section to the README to encourage community involvement.
</comment><date>2026-03-25 00:00:02 +0400</date><id>1c61153609b7b0f4f77fd75a7385ac22fe62fc2c</id><msg>Add contributing guidelines to README</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</commitId><timestamp>1774382441000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Fix link formatting in README.md
</comment><date>2026-03-25 00:00:41 +0400</date><id>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</id><msg>Fix link formatting in README.md</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>5e6b93f7cebe6c0a82390618f3bcbb3f1e044ff8</commitId><timestamp>1774776985000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix issue #209

Attempting to self-register a new school failed when URL is included in verified app links as per the Android Manifest.
</comment><date>2026-03-29 13:36:25 +0400</date><id>5e6b93f7cebe6c0a82390618f3bcbb3f1e044ff8</id><msg>Fix issue #209</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>c86cd41b696bc6a2c81db3363dc0a0b2a4d30956</commitId><timestamp>1774777246000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update LaunchCustomTabUseCase to use Url type.
</comment><date>2026-03-29 13:40:46 +0400</date><id>c86cd41b696bc6a2c81db3363dc0a0b2a4d30956</id><msg>Update LaunchCustomTabUseCase to use Url type.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>c20ab8c871ed3a46390d51d4b9db99d3108783e3</commitId><timestamp>1774778744000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update default base catalog url.
</comment><date>2026-03-29 14:05:44 +0400</date><id>c20ab8c871ed3a46390d51d4b9db99d3108783e3</id><msg>Update default base catalog url.</msg><path><editType>edit</editType><file>respect-server/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</commitId><timestamp>1774789982000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Bump version number.
</comment><date>2026-03-29 17:13:02 +0400</date><id>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</id><msg>Bump version number.</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/ClassRoute.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ChangeHistoryProvider.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/ext/ReceiveDataAndChangeHistory.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/EnrollmentRoute.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryProviderDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryMarkSentToServerDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/changehistory/ChangeHistoryViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</affectedPath><commitId>f5dddb913dc8b0473c277b0c17d5e0b1a2cc86af</commitId><timestamp>1774954701000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-03-31 16:28:21 +0530</date><id>f5dddb913dc8b0473c277b0c17d5e0b1a2cc86af</id><msg>commit</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/changehistory/ChangeHistoryViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/ClassRoute.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/EnrollmentRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/util/ext/ReceiveDataAndChangeHistory.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ChangeHistoryProvider.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryMarkSentToServerDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryProviderDb.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>DESIGN_GUIDELINES.md</affectedPath><commitId>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</commitId><timestamp>1774955089000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Add confirmation feedback guideline for user actions

Added guideline for user action confirmation feedback.
</comment><date>2026-03-31 15:04:49 +0400</date><id>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</id><msg>Add confirmation feedback guideline for user actions</msg><path><editType>edit</editType><file>DESIGN_GUIDELINES.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></build><build _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><refsremotesoriginchange-history-backup _class='hudson.plugins.git.util.Build'><buildNumber>26</buildNumber><marked><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><branch><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></marked><revision><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><branch><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></revision></refsremotesoriginchange-history-backup><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>18</buildNumber><marked><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><branch><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><name>refs/remotes/origin/change-history-backup</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'></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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>#26</displayName><duration>1691661</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #26</fullDisplayName><id>26</id><inProgress>false</inProgress><keepLog>false</keepLog><number>26</number><queueId>6994</queueId><result>SUCCESS</result><timestamp>1774919460663</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/26/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet></build><build _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><refsremotesoriginchange-history-backup _class='hudson.plugins.git.util.Build'><buildNumber>25</buildNumber><marked><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><branch><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></marked><revision><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><branch><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></revision></refsremotesoriginchange-history-backup><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>18</buildNumber><marked><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><branch><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><name>refs/remotes/origin/change-history-backup</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'></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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>#25</displayName><duration>1695198</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #25</fullDisplayName><id>25</id><inProgress>false</inProgress><keepLog>false</keepLog><number>25</number><queueId>6963</queueId><result>SUCCESS</result><timestamp>1774833060663</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/25/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet></build><build _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><refsremotesoriginchange-history-backup _class='hudson.plugins.git.util.Build'><buildNumber>24</buildNumber><marked><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><branch><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></marked><revision><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><branch><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></revision></refsremotesoriginchange-history-backup><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>18</buildNumber><marked><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><branch><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><name>refs/remotes/origin/change-history-backup</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'></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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>#24</displayName><duration>1685894</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #24</fullDisplayName><id>24</id><inProgress>false</inProgress><keepLog>false</keepLog><number>24</number><queueId>6933</queueId><result>SUCCESS</result><timestamp>1774746660663</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/24/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></build><build _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><refsremotesoriginchange-history-backup _class='hudson.plugins.git.util.Build'><buildNumber>23</buildNumber><marked><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><branch><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></marked><revision><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><branch><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></revision></refsremotesoriginchange-history-backup><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>18</buildNumber><marked><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><branch><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><name>refs/remotes/origin/change-history-backup</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'></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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>#23</displayName><duration>1300464</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #23</fullDisplayName><id>23</id><inProgress>false</inProgress><keepLog>false</keepLog><number>23</number><queueId>6907</queueId><result>FAILURE</result><timestamp>1774660260664</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/23/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ChangeHistoryEntry.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/changehistory/ChangeHistoryViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ChangeHistoryAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/findDifference.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/changehistory/ChangeHistoryScreen.kt</affectedPath><commitId>da0a66d5aa17544340c5357fd6bffff75b0c9321</commitId><timestamp>1774599108000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-03-27 13:41:48 +0530</date><id>da0a66d5aa17544340c5357fd6bffff75b0c9321</id><msg>commit</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/findDifference.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/changehistory/ChangeHistoryScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ChangeHistoryEntry.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ChangeHistoryAdapter.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/changehistory/ChangeHistoryViewModel.kt</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></build><build _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><refsremotesoriginchange-history-backup _class='hudson.plugins.git.util.Build'><buildNumber>22</buildNumber><marked><SHA1>f98536eccf4c213bd08bb0c7836c33dad9d6c54c</SHA1><branch><SHA1>f98536eccf4c213bd08bb0c7836c33dad9d6c54c</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></marked><revision><SHA1>f98536eccf4c213bd08bb0c7836c33dad9d6c54c</SHA1><branch><SHA1>f98536eccf4c213bd08bb0c7836c33dad9d6c54c</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></revision></refsremotesoriginchange-history-backup><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>18</buildNumber><marked><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>f98536eccf4c213bd08bb0c7836c33dad9d6c54c</SHA1><branch><SHA1>f98536eccf4c213bd08bb0c7836c33dad9d6c54c</SHA1><name>refs/remotes/origin/change-history-backup</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'></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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>1706755</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #22</fullDisplayName><id>22</id><inProgress>false</inProgress><keepLog>false</keepLog><number>22</number><queueId>6877</queueId><result>SUCCESS</result><timestamp>1774573860664</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/22/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UserIdCause'><shortDescription>Started by user Nikunj Sharma</shortDescription><userId>nikunj</userId><userName>Nikunj Sharma</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginchange-history-backup _class='hudson.plugins.git.util.Build'><buildNumber>21</buildNumber><marked><SHA1>f98536eccf4c213bd08bb0c7836c33dad9d6c54c</SHA1><branch><SHA1>f98536eccf4c213bd08bb0c7836c33dad9d6c54c</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></marked><revision><SHA1>f98536eccf4c213bd08bb0c7836c33dad9d6c54c</SHA1><branch><SHA1>f98536eccf4c213bd08bb0c7836c33dad9d6c54c</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></revision></refsremotesoriginchange-history-backup><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>18</buildNumber><marked><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>f98536eccf4c213bd08bb0c7836c33dad9d6c54c</SHA1><branch><SHA1>f98536eccf4c213bd08bb0c7836c33dad9d6c54c</SHA1><name>refs/remotes/origin/change-history-backup</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'></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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>#21</displayName><duration>1683038</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #21</fullDisplayName><id>21</id><inProgress>false</inProgress><keepLog>false</keepLog><number>21</number><queueId>6860</queueId><result>SUCCESS</result><timestamp>1774519828664</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/21/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ChangeHistoryEntity.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/14.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ChangeHistoryAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ChangeHistoryDao.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ChangeHistoryEntry.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/EnrollmentRoute.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/changehistory/ChangeHistoryScreen.kt</affectedPath><commitId>f3cf255fe1a9f8451ed2931f6f124caf6206b03b</commitId><timestamp>1774508487000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-03-26 12:31:27 +0530</date><id>f3cf255fe1a9f8451ed2931f6f124caf6206b03b</id><msg>commit</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/changehistory/ChangeHistoryScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ChangeHistoryEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ChangeHistoryDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/EnrollmentRoute.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ChangeHistoryAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/14.json</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ChangeHistoryEntry.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>f98536eccf4c213bd08bb0c7836c33dad9d6c54c</commitId><timestamp>1774519205000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-03-26 15:30:05 +0530</date><id>f98536eccf4c213bd08bb0c7836c33dad9d6c54c</id><msg>commit</msg><path><editType>edit</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></build><build _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><refsremotesoriginchange-history-backup _class='hudson.plugins.git.util.Build'><buildNumber>20</buildNumber><marked><SHA1>e422c2d5a166935165cae22aa4b6a626e987c63a</SHA1><branch><SHA1>e422c2d5a166935165cae22aa4b6a626e987c63a</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></marked><revision><SHA1>e422c2d5a166935165cae22aa4b6a626e987c63a</SHA1><branch><SHA1>e422c2d5a166935165cae22aa4b6a626e987c63a</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></revision></refsremotesoriginchange-history-backup><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>18</buildNumber><marked><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>e422c2d5a166935165cae22aa4b6a626e987c63a</SHA1><branch><SHA1>e422c2d5a166935165cae22aa4b6a626e987c63a</SHA1><name>refs/remotes/origin/change-history-backup</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'></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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>#20</displayName><duration>1624918</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #20</fullDisplayName><id>20</id><inProgress>false</inProgress><keepLog>false</keepLog><number>20</number><queueId>6847</queueId><result>FAILURE</result><timestamp>1774487460923</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/20/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>5636c41202ac5c253fe6ded5236ddd91b43d5520</commitId><timestamp>1774445360000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-03-25 18:59:20 +0530</date><id>5636c41202ac5c253fe6ded5236ddd91b43d5520</id><msg>commit</msg><path><editType>edit</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>edit</editType><file>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ChangeHistoryAdapter.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/changehistory/ChangeHistoryScreen.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ChangeHistoryTableEnum.kt</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>32d855ef6f143f2b6881dd33ad9007a83a1e944b</commitId><timestamp>1774463298000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-03-25 23:58:18 +0530</date><id>32d855ef6f143f2b6881dd33ad9007a83a1e944b</id><msg>commit</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/changehistory/ChangeHistoryScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ChangeHistoryAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ChangeHistoryTableEnum.kt</file></path><path><editType>edit</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>e422c2d5a166935165cae22aa4b6a626e987c63a</commitId><timestamp>1774465711000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-03-26 00:38:31 +0530</date><id>e422c2d5a166935165cae22aa4b6a626e987c63a</id><msg>commit</msg><path><editType>edit</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UserIdCause'><shortDescription>Started by user Pooja Ravi</shortDescription><userId>pooja</userId><userName>Pooja Ravi</userName></cause></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginchange-history-backup _class='hudson.plugins.git.util.Build'><buildNumber>19</buildNumber><marked><SHA1>0b76e183d8e8dea026a800e162f186968e95ccb4</SHA1><branch><SHA1>0b76e183d8e8dea026a800e162f186968e95ccb4</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></marked><revision><SHA1>0b76e183d8e8dea026a800e162f186968e95ccb4</SHA1><branch><SHA1>0b76e183d8e8dea026a800e162f186968e95ccb4</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></revision></refsremotesoriginchange-history-backup><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>18</buildNumber><marked><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>0b76e183d8e8dea026a800e162f186968e95ccb4</SHA1><branch><SHA1>0b76e183d8e8dea026a800e162f186968e95ccb4</SHA1><name>refs/remotes/origin/change-history-backup</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'></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>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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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-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><building>false</building><displayName>#19</displayName><duration>148329</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #19</fullDisplayName><id>19</id><inProgress>false</inProgress><keepLog>false</keepLog><number>19</number><queueId>6830</queueId><result>FAILURE</result><timestamp>1774434448244</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/19/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></build><build _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><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>18</buildNumber><marked><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</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'></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>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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>#18</displayName><duration>1309168</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #18</fullDisplayName><id>18</id><inProgress>false</inProgress><keepLog>false</keepLog><number>18</number><queueId>6812</queueId><result>FAILURE</result><timestamp>1774401060923</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/18/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UserIdCause'><shortDescription>Started by user Pooja Ravi</shortDescription><userId>pooja</userId><userName>Pooja Ravi</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>17</buildNumber><marked><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</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'></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>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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>#17</displayName><duration>1268622</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #17</fullDisplayName><id>17</id><inProgress>false</inProgress><keepLog>false</keepLog><number>17</number><queueId>6795</queueId><result>FAILURE</result><timestamp>1774345528382</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/17/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UserIdCause'><shortDescription>Started by user Pooja Ravi</shortDescription><userId>pooja</userId><userName>Pooja Ravi</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>16</buildNumber><marked><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</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'></action><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>#16</displayName><duration>194589</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #16</fullDisplayName><id>16</id><inProgress>false</inProgress><keepLog>false</keepLog><number>16</number><queueId>6789</queueId><result>FAILURE</result><timestamp>1774336126646</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/16/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UserIdCause'><shortDescription>Started by user Pooja Ravi</shortDescription><userId>pooja</userId><userName>Pooja Ravi</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>15</buildNumber><marked><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</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'></action><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>#15</displayName><duration>169312</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #15</fullDisplayName><id>15</id><inProgress>false</inProgress><keepLog>false</keepLog><number>15</number><queueId>6788</queueId><result>FAILURE</result><timestamp>1774334853808</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/15/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UserIdCause'><shortDescription>Started by user Pooja Ravi</shortDescription><userId>pooja</userId><userName>Pooja Ravi</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>14</buildNumber><marked><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></lastBuiltRevision><remoteUrl>https://github.com/UstadMobile/Respect.git</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action _class='jenkins.model.InterruptedBuildAction'></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><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>#14</displayName><duration>3991958</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #14</fullDisplayName><id>14</id><inProgress>false</inProgress><keepLog>false</keepLog><number>14</number><queueId>6785</queueId><result>ABORTED</result><timestamp>1774330854695</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/14/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UserIdCause'><shortDescription>Started by user Pooja Ravi</shortDescription><userId>pooja</userId><userName>Pooja Ravi</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>13</buildNumber><marked><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</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'></action><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>Login, collect tests &amp; Save Video URLs -- Login and save video URLs to text file (failed).png</displayPath><fileName>Login, collect tests &amp; Save Video URLs -- Login and save video URLs to text file (failed).png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/Login, collect tests &amp; Save Video URLs -- Login and save video URLs to text file (failed).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>#13</displayName><duration>176833</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #13</fullDisplayName><id>13</id><inProgress>false</inProgress><keepLog>false</keepLog><number>13</number><queueId>6783</queueId><result>FAILURE</result><timestamp>1774330189717</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/13/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UserIdCause'><shortDescription>Started by user Pooja Ravi</shortDescription><userId>pooja</userId><userName>Pooja Ravi</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>12</buildNumber><marked><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</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'></action><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>Login, collect tests &amp; Save Video URLs -- Login and save video URLs to text file (failed).png</displayPath><fileName>Login, collect tests &amp; Save Video URLs -- Login and save video URLs to text file (failed).png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/Login, collect tests &amp; Save Video URLs -- Login and save video URLs to text file (failed).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>#12</displayName><duration>202909</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #12</fullDisplayName><id>12</id><inProgress>false</inProgress><keepLog>false</keepLog><number>12</number><queueId>6782</queueId><result>FAILURE</result><timestamp>1774329838710</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/12/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>4b382538c0da68c99fb7db0be1510f9a6d48357a</commitId><timestamp>1774329825000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro flow to select a specific user when navigating the People section.
</comment><date>2026-03-24 09:23:45 +0400</date><id>4b382538c0da68c99fb7db0be1510f9a6d48357a</id><msg>Update Maestro flow to select a specific user when navigating the People section.</msg><path><editType>edit</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></build><build _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><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>11</buildNumber><marked><SHA1>bc857e0c4154f2e68939b71465a361dfe666d788</SHA1><branch><SHA1>bc857e0c4154f2e68939b71465a361dfe666d788</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>bc857e0c4154f2e68939b71465a361dfe666d788</SHA1><branch><SHA1>bc857e0c4154f2e68939b71465a361dfe666d788</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>bc857e0c4154f2e68939b71465a361dfe666d788</SHA1><branch><SHA1>bc857e0c4154f2e68939b71465a361dfe666d788</SHA1><name>refs/remotes/origin/change-history</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'></action><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>Login, collect tests &amp; Save Video URLs -- Login and save video URLs to text file (failed).png</displayPath><fileName>Login, collect tests &amp; Save Video URLs -- Login and save video URLs to text file (failed).png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/Login, collect tests &amp; Save Video URLs -- Login and save video URLs to text file (failed).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>#11</displayName><duration>1227650</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #11</fullDisplayName><id>11</id><inProgress>false</inProgress><keepLog>false</keepLog><number>11</number><queueId>6774</queueId><result>FAILURE</result><timestamp>1774314660923</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/11/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/add_student.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_class.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_app.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_student.yaml</affectedPath><affectedPath>.maestro/flows/subflows/add_class.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/add_app.yaml</affectedPath><commitId>c7adda4d233b47172b526e3e31c9e9297c9199dd</commitId><timestamp>1774251914000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro test flow for inviting users to include verification of name change history.
</comment><date>2026-03-23 11:45:14 +0400</date><id>c7adda4d233b47172b526e3e31c9e9297c9199dd</id><msg>Update Maestro test flow for inviting users to include verification of name change history.</msg><path><editType>add</editType><file>.maestro/flows/subflows/add_student.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/add_class.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/subflows/admin_add_student.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/subflows/admin_add_class.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/add_app.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/subflows/admin_add_app.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>bc857e0c4154f2e68939b71465a361dfe666d788</commitId><timestamp>1774269926000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro flow to fix a button ID typo and add teacher assignment verification to the change history.
</comment><date>2026-03-23 16:45:26 +0400</date><id>bc857e0c4154f2e68939b71465a361dfe666d788</id><msg>Update Maestro flow to fix a button ID typo and add teacher assignment verification to the change history.</msg><path><editType>edit</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UserIdCause'><shortDescription>Started by user Pooja Ravi</shortDescription><userId>pooja</userId><userName>Pooja Ravi</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>52c1d6f88c611d57df81bb0ab1a4ef6726a88cf6</SHA1><branch><SHA1>52c1d6f88c611d57df81bb0ab1a4ef6726a88cf6</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>52c1d6f88c611d57df81bb0ab1a4ef6726a88cf6</SHA1><branch><SHA1>52c1d6f88c611d57df81bb0ab1a4ef6726a88cf6</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>52c1d6f88c611d57df81bb0ab1a4ef6726a88cf6</SHA1><branch><SHA1>52c1d6f88c611d57df81bb0ab1a4ef6726a88cf6</SHA1><name>refs/remotes/origin/change-history</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'></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>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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>#10</displayName><duration>1291917</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #10</fullDisplayName><id>10</id><inProgress>false</inProgress><keepLog>false</keepLog><number>10</number><queueId>6744</queueId><result>FAILURE</result><timestamp>1774241856703</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/10/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>52c1d6f88c611d57df81bb0ab1a4ef6726a88cf6</commitId><timestamp>1774241790000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update label to "First names*" in invite users Maestro test flow.
</comment><date>2026-03-23 08:56:30 +0400</date><id>52c1d6f88c611d57df81bb0ab1a4ef6726a88cf6</id><msg>Update label to "First names*" in invite users Maestro test flow.</msg><path><editType>edit</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></build><build _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><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><branch><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><branch><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><branch><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><name>refs/remotes/origin/change-history</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'></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>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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>#9</displayName><duration>1279491</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #9</fullDisplayName><id>9</id><inProgress>false</inProgress><keepLog>false</keepLog><number>9</number><queueId>6739</queueId><result>FAILURE</result><timestamp>1774228260923</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/9/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></build><build _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><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>8</buildNumber><marked><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><branch><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><branch><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><branch><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><name>refs/remotes/origin/change-history</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'></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>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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>#8</displayName><duration>1280533</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #8</fullDisplayName><id>8</id><inProgress>false</inProgress><keepLog>false</keepLog><number>8</number><queueId>6713</queueId><result>FAILURE</result><timestamp>1774141860923</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/8/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></build><build _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><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>7</buildNumber><marked><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><branch><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><branch><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><branch><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><name>refs/remotes/origin/change-history</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'></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>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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>#7</displayName><duration>1328678</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #7</fullDisplayName><id>7</id><inProgress>false</inProgress><keepLog>false</keepLog><number>7</number><queueId>6687</queueId><result>FAILURE</result><timestamp>1774055460181</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/7/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></build><build _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><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>6</buildNumber><marked><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><branch><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><branch><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><branch><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><name>refs/remotes/origin/change-history</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'></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>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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>#6</displayName><duration>1343258</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #6</fullDisplayName><id>6</id><inProgress>false</inProgress><keepLog>false</keepLog><number>6</number><queueId>6659</queueId><result>FAILURE</result><timestamp>1773969060181</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/6/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></build><build _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><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>5</buildNumber><marked><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><branch><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><branch><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><branch><SHA1>fa9581233b822a988b0394507aec044ecd1d19c2</SHA1><name>refs/remotes/origin/change-history</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'></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>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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>#5</displayName><duration>1328285</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #5</fullDisplayName><id>5</id><inProgress>false</inProgress><keepLog>false</keepLog><number>5</number><queueId>6633</queueId><result>FAILURE</result><timestamp>1773882660181</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/5/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/CompatibleAppDataSourceDb.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectRealmDatabase/2.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsPublicationEntityAdapter.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/OpdsDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/compatibleapps/CompatibleAppDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSource.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsDataSourceHttp.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/compatibleapps/CompatibleAppDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.kt</affectedPath><affectedPath>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/2.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestOpdsPublicationEntityAdapter.kt</affectedPath><affectedPath>respect-lib-opds-model/README.md</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolPrimaryKeyGenerator.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSourceLocal.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestSchoolDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsGroupAdapter.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/RespectAppDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectRealmDatabase/1.json</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/OpdsDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/compatibleapps/CompatibleAppsDataSource.kt</affectedPath><commitId>119e8ff1cfa72836575e9732eefaa83801edaf12</commitId><timestamp>1767775134000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Work in progress: moving Opds from app datasource to school datasource.
</comment><date>2026-01-07 12:38:54 +0400</date><id>119e8ff1cfa72836575e9732eefaa83801edaf12</id><msg>Work in progress: moving Opds from app datasource to school datasource.</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-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/RespectAppDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/OpdsDataSourceLocal.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/CompatibleAppDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsPublicationEntityAdapter.kt</file></path><path><editType>edit</editType><file>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryEntityDao.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/README.md</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestSchoolDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/OpdsDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectRealmDatabase/2.json</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsGroupAdapter.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolPrimaryKeyGenerator.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/2.json</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/compatibleapps/CompatibleAppDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/compatibleapps/CompatibleAppDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestOpdsPublicationEntityAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/compatibleapps/CompatibleAppsDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectRealmDatabase/1.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/CompatibleAppDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolConfigEntity.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolConfigSettingDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/DummySchoolConfigSettingsDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolConfigSetting.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><commitId>4656739ec37fbf1369e1fbe9600017967a617e80</commitId><timestamp>1767960784000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Work in progress: convert App List screen to using Opds publications instead of Respect App Manifest.
</comment><date>2026-01-09 16:13:04 +0400</date><id>4656739ec37fbf1369e1fbe9600017967a617e80</id><msg>Work in progress: convert App List screen to using Opds publications instead of Respect App Manifest.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolConfigEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolConfigSettingDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/CompatibleAppDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolConfigSetting.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/DummySchoolConfigSettingsDataSource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</affectedPath><commitId>c2db0f838f8f067af021c11f7492d89ebe17b3f7</commitId><timestamp>1767965608000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Work in progress: convert App List screen to using Opds publications instead of Respect App Manifest.
</comment><date>2026-01-09 17:33:28 +0400</date><id>c2db0f838f8f067af021c11f7492d89ebe17b3f7</id><msg>Work in progress: convert App List screen to using Opds publications instead of Respect App Manifest.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt</affectedPath><commitId>a513cc61b6e256abb9d8d3a0e1a4f3bdf7dffb65</commitId><timestamp>1770639944000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Work in progress: model Respect App manifest using OPDS.

Add database migrations.
</comment><date>2026-02-09 16:25:44 +0400</date><id>a513cc61b6e256abb9d8d3a0e1a4f3bdf7dffb65</id><msg>Work in progress: model Respect App manifest using OPDS.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/3.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>gradle/gradle-daemon-jvm.properties</affectedPath><affectedPath>settings.gradle.kts</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><commitId>d0a2110dfec427c45610248a5f081cbd7d3327bd</commitId><timestamp>1771253618000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add architecture and system to handle Opds for both external sources (eg. compatible apps) and internal (school playlists).
</comment><date>2026-02-16 18:53:38 +0400</date><id>d0a2110dfec427c45610248a5f081cbd7d3327bd</id><msg>Add architecture and system to handle Opds for both external sources (eg. compatible apps) and internal (school playlists).</msg><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt</file></path><path><editType>edit</editType><file>settings.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/3.json</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</file></path><path><editType>add</editType><file>gradle/gradle-daemon-jvm.properties</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedEntityDao.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-lib-opds-model/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSource.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeedMetadata.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedMetadataEntity.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedEntity.kt</affectedPath><commitId>31241d0934af33bbbc5cc9935f684cf1e6692746</commitId><timestamp>1771401185000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Work in progress making OpdsFeed a writable entity as per other entities in the school database.
</comment><date>2026-02-18 11:53:05 +0400</date><id>31241d0934af33bbbc5cc9935f684cf1e6692746</id><msg>Work in progress making OpdsFeed a writable entity as per other entities in the school database.</msg><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedMetadataEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeedMetadata.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedEntity.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json</affectedPath><commitId>1553ef245912541d474ca978dcb333ae810cad70</commitId><timestamp>1771401223000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Work in progress making OpdsFeed a writable entity as per other entities in the school database.
</comment><date>2026-02-18 11:53:43 +0400</date><id>1553ef245912541d474ca978dcb333ae810cad70</id><msg>Work in progress making OpdsFeed a writable entity as per other entities in the school database.</msg><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedEntityDao.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>respect-datalayer-repository/README.md</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/BaseDataSourceValidationHelper.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedEntity.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</affectedPath><commitId>83570f164f24df7e73d004ea4ead65a1bb14ea2d</commitId><timestamp>1771429916000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement write support for OpdsFeed including handling etag and last-modified header for non-RESPECT generated feeds.
</comment><date>2026-02-18 19:51:56 +0400</date><id>83570f164f24df7e73d004ea4ead65a1bb14ea2d</id><msg>Implement write support for OpdsFeed including handling etag and last-modified header for non-RESPECT generated feeds.</msg><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/README.md</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/BaseDataSourceValidationHelper.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedEntityDao.kt</affectedPath><commitId>f3416e4cacc3a1a92ae8c21182724ee187d70d75</commitId><timestamp>1771430925000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add OpdsFeed validation helper implementation.
</comment><date>2026-02-18 20:08:45 +0400</date><id>f3416e4cacc3a1a92ae8c21182724ee187d70d75</id><msg>Add OpdsFeed validation helper implementation.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt</file></path></item><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/domain/launchapp/LaunchAppUseCase.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSource.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSourceLocal.kt</affectedPath><commitId>511867be668dad825097c0719e53e35898756da0</commitId><timestamp>1771499288000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Make OpdsFeed writable to handle playlists: work in progress.

1) Update OpdsRespectRepositoryIntegrationTest.kt to use OpdsFeedDataSource
2) Update LaunchAppUseCase to use an OpdsPublication instead of a RespectAppManifest.
</comment><date>2026-02-19 15:08:08 +0400</date><id>511867be668dad825097c0719e53e35898756da0</id><msg>Make OpdsFeed writable to handle playlists: work in progress.</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/domain/launchapp/LaunchAppUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</affectedPath><commitId>0b5e01f97298fa8cd802e6c26f1261419da15aff</commitId><timestamp>1771501923000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update documentation on OpdsFeedDataSource on how external/internal data is handled.
</comment><date>2026-02-19 15:52:03 +0400</date><id>0b5e01f97298fa8cd802e6c26f1261419da15aff</id><msg>Update documentation on OpdsFeedDataSource on how external/internal data is handled.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PlaylistRoute.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt</affectedPath><commitId>a4a3eac753d458ceda02fbfc62a00198f70cee81</commitId><timestamp>1772018741000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Make Opds Feed writable: make initial working client - server integration test.
</comment><date>2026-02-25 15:25:41 +0400</date><id>a4a3eac753d458ceda02fbfc62a00198f70cee81</id><msg>Make Opds Feed writable: make initial working client - server integration test.</msg><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PlaylistRoute.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsPublicationDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsPublicationDataSourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSourceLocal.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSource.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><commitId>edff29ccaff5c8c9fdbbbfc459e5adf72a0097a4</commitId><timestamp>1772098577000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Move OpdsPublication data source to follow same naming pattern.
</comment><date>2026-02-26 13:36:17 +0400</date><id>edff29ccaff5c8c9fdbbbfc459e5adf72a0097a4</id><msg>Move OpdsPublication data source to follow same naming pattern.</msg><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsPublicationDataSourceHttp.kt</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsPublicationDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt</affectedPath><commitId>e408883dc6a4cd98fecf00ece74ec46986d2f508</commitId><timestamp>1772099762000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update OpdsPublicationDataSourceRepository to follow pattern as per OpdsFeedRepository.
</comment><date>2026-02-26 13:56:02 +0400</date><id>e408883dc6a4cd98fecf00ece74ec46986d2f508</id><msg>Update OpdsPublicationDataSourceRepository to follow pattern as per OpdsFeedRepository.</msg><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSource.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsPublicationDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsPublicationEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsPublicationDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/RespectAppManifestExt.kt</affectedPath><commitId>ee1643a8e9741ccd588cf4051d60dc82bf67560b</commitId><timestamp>1772446868000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>OpdsPublicationDataSource improvements

Fix mistake in query that prevented links on publication being saved correctly into database.

Update OpdsPublicationDataSourceHttp.kt so it can handle RespectAppmanifest and convert into an OpdsPublication.
</comment><date>2026-03-02 14:21:08 +0400</date><id>ee1643a8e9741ccd588cf4051d60dc82bf67560b</id><msg>OpdsPublicationDataSource improvements</msg><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/RespectAppManifestExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsPublicationEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsPublicationDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsPublicationDataSourceHttp.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DateConstants.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/DummySchoolConfigSettingsDataSource.kt</affectedPath><affectedPath>respect-server/build.gradle.kts</affectedPath><affectedPath>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedMetadataEntityDao.kt</affectedPath><commitId>cc9c881d4a49f8381dff27e539fad346bc728ea3</commitId><timestamp>1772459395000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Improvements to handling OpdsPublication and OpdsFeed / related entities.

Put writing/reading of OpdsFeed and Opds in transactions.

Ensure app dependency injection provides validation helpers for http fetching of OpdsFeed and OpdsPublication (ensure that if-modified-since/if-none-match work as expected).
</comment><date>2026-03-02 17:49:55 +0400</date><id>cc9c881d4a49f8381dff27e539fad346bc728ea3</id><msg>Improvements to handling OpdsPublication and OpdsFeed / related entities.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-server/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedMetadataEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DateConstants.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/DummySchoolConfigSettingsDataSource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/AbstractCacheInterceptorTest.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtableIntegrationTest.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/HttpHeadersExt.kt</affectedPath><commitId>156d9f6ac9da94feab4f23b8e8df8935e2ec0faf</commitId><timestamp>1772465112000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add 304 response support to UstadCacheImpl.

When a request to the cache includes its own http validation info (if-not-modified since and/or if-none-match), and the response is the cache is fresh, then the cache itself can reply immediately with an empty 304 not modified response.
</comment><date>2026-03-02 19:25:12 +0400</date><id>156d9f6ac9da94feab4f23b8e8df8935e2ec0faf</id><msg>Add 304 response support to UstadCacheImpl.</msg><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/HttpHeadersExt.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/AbstractCacheInterceptorTest.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtableIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlFreshnessCheckerImpl.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/HttpPathResponse.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/UstadCacheExt.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/NewFileFromResource.kt</affectedPath><commitId>44088c6860ebc37e91ba9ddb6a351f22e89e4906</commitId><timestamp>1772546186000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add unit test for UstadCache to verify 304 response is returned correctly when incoming request has validation info.
</comment><date>2026-03-03 17:56:26 +0400</date><id>44088c6860ebc37e91ba9ddb6a351f22e89e4906</id><msg>Add unit test for UstadCache to verify 304 response is returned correctly when incoming request has validation info.</msg><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/HttpPathResponse.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/NewFileFromResource.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/UstadCacheExt.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlFreshnessCheckerImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt</affectedPath><commitId>c9f0db375ac4093fe9ea94c358e8764b3ee7aa0c</commitId><timestamp>1772615703000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update UstadCacheInterceptor.kt to respond 304 directly if the underlying request has its own cache validation info and a stale response is validated over the network.
</comment><date>2026-03-04 13:15:03 +0400</date><id>c9f0db375ac4093fe9ea94c358e8764b3ee7aa0c</id><msg>Update UstadCacheInterceptor.kt to respond 304 directly if the underlying request has its own cache validation info and a stale response is validated over the network.</msg><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt</affectedPath><commitId>c5c0aff9649d7521dd609b3bf9505ff8281e7ea4</commitId><timestamp>1772691673000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add test checking 304 not modified response received using interceptor if cache validation headers are used.
</comment><date>2026-03-05 10:21:13 +0400</date><id>c5c0aff9649d7521dd609b3bf9505ff8281e7ea4</id><msg>Add test checking 304 not modified response received using interceptor if cache validation headers are used.</msg><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/CompatibleAppDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepositoryTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/compatibleapps/CompatibleAppDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/compatibleapps/CompatibleAppsDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestSchoolDb.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/compatibleapps/CompatibleAppDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSource.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/RespectAppDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/compatibleapps/CompatibleAppsDataSource.kt</affectedPath><commitId>b8c5c1ff312bffec071b3a9635cc8b0cd29add33</commitId><timestamp>1772704588000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove CompatibleApp Datasource (replaced by using OpdsPublication).
</comment><date>2026-03-05 13:56:28 +0400</date><id>b8c5c1ff312bffec071b3a9635cc8b0cd29add33</id><msg>Remove CompatibleApp Datasource (replaced by using OpdsPublication).</msg><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/CompatibleAppDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/compatibleapps/CompatibleAppsDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestSchoolDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/compatibleapps/CompatibleAppDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepositoryTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/compatibleapps/CompatibleAppsDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/compatibleapps/CompatibleAppDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/RespectAppDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSourceLocal.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/entities/CompatibleAppEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/adapters/CompatbileAppAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/entities/CompatibleAppAddJoin.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/4.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/daos/CompatibleAppAddJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/daos/CompatibleAppEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt</affectedPath><commitId>205b330f195ef8c38eabf8c6a40add9201ddccb1</commitId><timestamp>1772708805000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove CompatibleAppEntity from database.
</comment><date>2026-03-05 15:06:45 +0400</date><id>205b330f195ef8c38eabf8c6a40add9201ddccb1</id><msg>Remove CompatibleAppEntity from database.</msg><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/entities/CompatibleAppAddJoin.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/daos/CompatibleAppEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/4.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/daos/CompatibleAppAddJoinDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/entities/CompatibleAppEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/adapters/CompatbileAppAdapter.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/README.md</affectedPath><affectedPath>.maestro/flows/scripts/school_init.js</affectedPath><affectedPath>ci-run-maestro.sh</affectedPath><commitId>f5e206f4779043c8758c0fe3406988aefab78bf9</commitId><timestamp>1773222029000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update ci-run-maestro.sh and school_init.js with option to disable automatic school creation for end-to-end tests.

This option is required to run an end-to-end test of self-registration of a new school.
</comment><date>2026-03-11 13:40:29 +0400</date><id>f5e206f4779043c8758c0fe3406988aefab78bf9</id><msg>Update ci-run-maestro.sh and school_init.js with option to disable automatic school creation for end-to-end tests.</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path><path><editType>edit</editType><file>.maestro/README.md</file></path><path><editType>edit</editType><file>.maestro/flows/scripts/school_init.js</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</affectedPath><commitId>0d0152620aab4cb1ce28bfbc3c9968096bb1b8ca</commitId><timestamp>1773390524000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fixes for AppLauncher screen.
</comment><date>2026-03-13 12:28:44 +0400</date><id>0d0152620aab4cb1ce28bfbc3c9968096bb1b8ca</id><msg>Fixes for AppLauncher screen.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DateConstants.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/ReadiumSubjectEntityAdapters.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFacetAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedMetadataEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsPublicationEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsTypeConverters.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedAdapter.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedMetadataEntityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsPublicationEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsPublicationEntityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestOpdsPublicationEntityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsGroupEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumLinkEntityAdapter.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsPublicationDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedMetadataEntityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsPublicationDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsPublicationEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/PersonPasskeyEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/ReadiumLinkEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsGroupEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/ReadiumLinkEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/ReadiumLinkEntityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsGroupAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/ReadiumSubjectEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFacetAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsGroupAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsGroupEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/PersonPasskeyEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsPublicationEntityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFacetEntity.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedMetadataEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsGroupEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedMetadataEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsParentType.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolPrimaryKeyGenerator.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsPublicationDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsPublicationEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumSubjectEntityAdapters.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/LangMapEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/ReadiumLinkEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsTypeConverters.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/ReadiumSubjectEntity.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsParentType.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedMetadataEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFacetEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/ReadiumLinkEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedEntity.kt</affectedPath><commitId>2ab55511cea2ebbab668c3062ca606310e1163e3</commitId><timestamp>1773422179000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update opds packages in datasource-db and datasource-http to use school.opds package.
</comment><date>2026-03-13 21:16:19 +0400</date><id>2ab55511cea2ebbab668c3062ca606310e1163e3</id><msg>Update opds packages in datasource-db and datasource-http to use school.opds package.</msg><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/ReadiumSubjectEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/PersonPasskeyEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedMetadataEntityAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsPublicationEntityAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsTypeConverters.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFacetAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsGroupAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/ReadiumLinkEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFacetEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DateConstants.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsTypeConverters.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsParentType.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsGroupEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/PersonPasskeyEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolPrimaryKeyGenerator.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsGroupEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsPublicationDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/ReadiumLinkEntityAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestOpdsPublicationEntityAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsPublicationDataSourceHttp.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/ReadiumLinkEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/ReadiumSubjectEntityAdapters.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumSubjectEntityAdapters.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsPublicationEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/LangMapEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsPublicationDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsGroupAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/ReadiumSubjectEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedMetadataEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumLinkEntityAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsGroupEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFacetAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedMetadataEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsPublicationEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/ReadiumLinkEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsPublicationEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedMetadataEntityAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsPublicationEntityAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/ReadiumLinkEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFacetEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedMetadataEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedMetadataEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsPublicationEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsParentType.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsGroupEntity.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</affectedPath><commitId>03416dd533b01463d4cc6a4c72aff304fa6eb088</commitId><timestamp>1773422596000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update database migration files.
</comment><date>2026-03-13 21:23:16 +0400</date><id>03416dd533b01463d4cc6a4c72aff304fa6eb088</id><msg>Update database migration files.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onaccountcreated/NavigateOnAccountCreatedUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onappstart/NavigateOnAppStartUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/waitingforapproval/WaitingForApprovalViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</affectedPath><commitId>ece17bbf38864ba3f36d012e19f0c4fb29dc3d01</commitId><timestamp>1773657905000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial home tabs design.
</comment><date>2026-03-16 14:45:05 +0400</date><id>ece17bbf38864ba3f36d012e19f0c4fb29dc3d01</id><msg>Initial home tabs design.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onaccountcreated/NavigateOnAccountCreatedUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onappstart/NavigateOnAppStartUseCase.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/waitingforapproval/WaitingForApprovalViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UserIdCause'><shortDescription>Started by user Pooja Ravi</shortDescription><userId>pooja</userId><userName>Pooja Ravi</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>4</buildNumber><marked><SHA1>e78bbb2fc6c11386a55e476acc6a43eb335ea5a9</SHA1><branch><SHA1>e78bbb2fc6c11386a55e476acc6a43eb335ea5a9</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>e78bbb2fc6c11386a55e476acc6a43eb335ea5a9</SHA1><branch><SHA1>e78bbb2fc6c11386a55e476acc6a43eb335ea5a9</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>e78bbb2fc6c11386a55e476acc6a43eb335ea5a9</SHA1><branch><SHA1>e78bbb2fc6c11386a55e476acc6a43eb335ea5a9</SHA1><name>refs/remotes/origin/change-history</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'></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>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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>#4</displayName><duration>1233502</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #4</fullDisplayName><id>4</id><inProgress>false</inProgress><keepLog>false</keepLog><number>4</number><queueId>6610</queueId><result>FAILURE</result><timestamp>1773819292258</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/4/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>34267a33ea96145063f482906814dfefc65bc1cb</commitId><timestamp>1773815215000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Updated first name placeholder text in Maestro flow
</comment><date>2026-03-18 10:26:55 +0400</date><id>34267a33ea96145063f482906814dfefc65bc1cb</id><msg>Updated first name placeholder text in Maestro flow</msg><path><editType>edit</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UserIdCause'><shortDescription>Started by user Pooja Ravi</shortDescription><userId>pooja</userId><userName>Pooja Ravi</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>3</buildNumber><marked><SHA1>c51aff293c787f702ed7592e61a309f1b880c6e6</SHA1><branch><SHA1>c51aff293c787f702ed7592e61a309f1b880c6e6</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>c51aff293c787f702ed7592e61a309f1b880c6e6</SHA1><branch><SHA1>c51aff293c787f702ed7592e61a309f1b880c6e6</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>c51aff293c787f702ed7592e61a309f1b880c6e6</SHA1><branch><SHA1>c51aff293c787f702ed7592e61a309f1b880c6e6</SHA1><name>refs/remotes/origin/change-history</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'></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>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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>#3</displayName><duration>1194868</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #3</fullDisplayName><id>3</id><inProgress>false</inProgress><keepLog>false</keepLog><number>3</number><queueId>6607</queueId><result>FAILURE</result><timestamp>1773815258820</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/3/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit></build><build _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><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>2</buildNumber><marked><SHA1>c51aff293c787f702ed7592e61a309f1b880c6e6</SHA1><branch><SHA1>c51aff293c787f702ed7592e61a309f1b880c6e6</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>c51aff293c787f702ed7592e61a309f1b880c6e6</SHA1><branch><SHA1>c51aff293c787f702ed7592e61a309f1b880c6e6</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>c51aff293c787f702ed7592e61a309f1b880c6e6</SHA1><branch><SHA1>c51aff293c787f702ed7592e61a309f1b880c6e6</SHA1><name>refs/remotes/origin/change-history</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'></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>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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>#2</displayName><duration>1341081</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #2</fullDisplayName><id>2</id><inProgress>false</inProgress><keepLog>false</keepLog><number>2</number><queueId>6599</queueId><result>FAILURE</result><timestamp>1773796260181</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/2/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryDataSourceDb.kt</affectedPath><commitId>696925421ade84649e3a71f515652139a765b42e</commitId><timestamp>1773728851000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-03-17 11:57:31 +0530</date><id>696925421ade84649e3a71f515652139a765b42e</id><msg>commit</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>6a9ca60a6f29ec5b053ddf1ee6c9251b7711e34e</commitId><timestamp>1773741380000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>update test with a name change from "TeacherA" to "TeacherB".
</comment><date>2026-03-17 13:56:20 +0400</date><id>6a9ca60a6f29ec5b053ddf1ee6c9251b7711e34e</id><msg>update test with a name change from "TeacherA" to "TeacherB".</msg><path><editType>edit</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/changehistory/ChangeHistoryItem.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ChangeHistoryDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ChangeHistoryTableEnum.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ChangeHistoryDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ChangeHistoryEntity.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ChangeHistoryDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ChangeHistoryAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ChangeHistoryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ChangeHistoryEntry.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/changehistory/ChangeHistoryViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/changehistory/ChangeHistoryScreen.kt</affectedPath><commitId>b3632c3e6960c147500dcc6a57be3c57c476305f</commitId><timestamp>1773753912000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-03-17 18:55:12 +0530</date><id>b3632c3e6960c147500dcc6a57be3c57c476305f</id><msg>commit</msg><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ChangeHistoryDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ChangeHistoryEntry.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ChangeHistoryTableEnum.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/changehistory/ChangeHistoryViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ChangeHistoryDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/changehistory/ChangeHistoryScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/changehistory/ChangeHistoryItem.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ChangeHistoryAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ChangeHistoryDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ChangeHistoryEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ChangeHistoryDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryDataSourceDb.kt</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit></build><build _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><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>1</buildNumber><marked><SHA1>2518430446df8f751f41b9cf8aaf4758d26b8e09</SHA1><branch><SHA1>2518430446df8f751f41b9cf8aaf4758d26b8e09</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>2518430446df8f751f41b9cf8aaf4758d26b8e09</SHA1><branch><SHA1>2518430446df8f751f41b9cf8aaf4758d26b8e09</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>2518430446df8f751f41b9cf8aaf4758d26b8e09</SHA1><branch><SHA1>2518430446df8f751f41b9cf8aaf4758d26b8e09</SHA1><name>refs/remotes/origin/change-history</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'></action><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>Login, collect tests &amp; Save Video URLs -- Login and save video URLs to text file (failed).png</displayPath><fileName>Login, collect tests &amp; Save Video URLs -- Login and save video URLs to text file (failed).png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/Login, collect tests &amp; Save Video URLs -- Login and save video URLs to text file (failed).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>#1</displayName><duration>1283761</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #1</fullDisplayName><id>1</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1</number><queueId>6558</queueId><result>FAILURE</result><timestamp>1773709860181</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/1/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet></build><color>red</color><firstBuild _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><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>1</buildNumber><marked><SHA1>2518430446df8f751f41b9cf8aaf4758d26b8e09</SHA1><branch><SHA1>2518430446df8f751f41b9cf8aaf4758d26b8e09</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>2518430446df8f751f41b9cf8aaf4758d26b8e09</SHA1><branch><SHA1>2518430446df8f751f41b9cf8aaf4758d26b8e09</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>2518430446df8f751f41b9cf8aaf4758d26b8e09</SHA1><branch><SHA1>2518430446df8f751f41b9cf8aaf4758d26b8e09</SHA1><name>refs/remotes/origin/change-history</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'></action><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>Login, collect tests &amp; Save Video URLs -- Login and save video URLs to text file (failed).png</displayPath><fileName>Login, collect tests &amp; Save Video URLs -- Login and save video URLs to text file (failed).png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/Login, collect tests &amp; Save Video URLs -- Login and save video URLs to text file (failed).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>#1</displayName><duration>1283761</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #1</fullDisplayName><id>1</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1</number><queueId>6558</queueId><result>FAILURE</result><timestamp>1773709860181</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/1/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet></firstBuild><healthReport><description>Build stability: 2 out of the last 5 builds failed.</description><iconClassName>icon-health-40to59</iconClassName><iconUrl>health-40to59.png</iconUrl><score>60</score></healthReport><inQueue>false</inQueue><keepDependencies>false</keepDependencies><lastBuild _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><refsremotesoriginchange-history-backup _class='hudson.plugins.git.util.Build'><buildNumber>27</buildNumber><marked><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><branch><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></marked><revision><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><branch><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></revision></refsremotesoriginchange-history-backup><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>18</buildNumber><marked><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><branch><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><name>refs/remotes/origin/change-history-backup</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'></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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>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><building>false</building><displayName>#27</displayName><duration>175992</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #27</fullDisplayName><id>27</id><inProgress>false</inProgress><keepLog>false</keepLog><number>27</number><queueId>7060</queueId><result>FAILURE</result><timestamp>1775178660577</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/27/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>635519e5577887607af9cfccecfda0c4e8f42850</commitId><timestamp>1774358734000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update README.md
</comment><date>2026-03-24 17:25:34 +0400</date><id>635519e5577887607af9cfccecfda0c4e8f42850</id><msg>Update README.md</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>bfa39b2a3c882f4d1a6bd38434113917aa9fd04f</commitId><timestamp>1774359709000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Create CONTRIBUTING.md
</comment><date>2026-03-24 17:41:49 +0400</date><id>bfa39b2a3c882f4d1a6bd38434113917aa9fd04f</id><msg>Create CONTRIBUTING.md</msg><path><editType>add</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>4d2d577c074261d46b7da9fd78869c41335c815b</commitId><timestamp>1774359812000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md to clarify contribution types

Expanded contribution guidelines to include non-coding contributions.
</comment><date>2026-03-24 17:43:32 +0400</date><id>4d2d577c074261d46b7da9fd78869c41335c815b</id><msg>Update CONTRIBUTING.md to clarify contribution types</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>255c9ea9b8c73cd3984a3a39fa98bfd76a5f0be3</commitId><timestamp>1774373152000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Revise CONTRIBUTING.md
</comment><date>2026-03-24 21:25:52 +0400</date><id>255c9ea9b8c73cd3984a3a39fa98bfd76a5f0be3</id><msg>Revise CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>66d6c3acce0f2f9e6d67ee69a50ed0052135ea6b</commitId><timestamp>1774374472000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Revise CONTRIBUTING.md
</comment><date>2026-03-24 21:47:52 +0400</date><id>66d6c3acce0f2f9e6d67ee69a50ed0052135ea6b</id><msg>Revise CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD</affectedPath><commitId>3adb525ecee9881eeecb0701badac5cb1dfa4fb8</commitId><timestamp>1774378557000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Add issue template for app catalog requests
</comment><date>2026-03-24 22:55:57 +0400</date><id>3adb525ecee9881eeecb0701badac5cb1dfa4fb8</id><msg>Add issue template for app catalog requests</msg><path><editType>add</editType><file>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>d41eee02111a434cd28e8aaf46ec80aca4d17252</commitId><timestamp>1774378654000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md
</comment><date>2026-03-24 22:57:34 +0400</date><id>d41eee02111a434cd28e8aaf46ec80aca4d17252</id><msg>Update CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.github/ISSUE_TEMPLATE/localization.MD</affectedPath><commitId>1436b71a08c919402daf54676335d6f762ceeaf2</commitId><timestamp>1774381716000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Create localization.MD
</comment><date>2026-03-24 23:48:36 +0400</date><id>1436b71a08c919402daf54676335d6f762ceeaf2</id><msg>Create localization.MD</msg><path><editType>add</editType><file>.github/ISSUE_TEMPLATE/localization.MD</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>bef105b18bfdc9b0a6f50b71a583e255dcd24b32</commitId><timestamp>1774381915000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md
</comment><date>2026-03-24 23:51:55 +0400</date><id>bef105b18bfdc9b0a6f50b71a583e255dcd24b32</id><msg>Update CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>508d677cb32637726a803e6a92bae4ad3b3fac34</commitId><timestamp>1774382049000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md
</comment><date>2026-03-24 23:54:09 +0400</date><id>508d677cb32637726a803e6a92bae4ad3b3fac34</id><msg>Update CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>1abbff4ce9a48a56e39ac1aaaceabede35dc9ea2</commitId><timestamp>1774382305000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update contributing.md
</comment><date>2026-03-24 23:58:25 +0400</date><id>1abbff4ce9a48a56e39ac1aaaceabede35dc9ea2</id><msg>Update contributing.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>1c61153609b7b0f4f77fd75a7385ac22fe62fc2c</commitId><timestamp>1774382402000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Add contributing guidelines to README

Added a contributing section to the README to encourage community involvement.
</comment><date>2026-03-25 00:00:02 +0400</date><id>1c61153609b7b0f4f77fd75a7385ac22fe62fc2c</id><msg>Add contributing guidelines to README</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</commitId><timestamp>1774382441000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Fix link formatting in README.md
</comment><date>2026-03-25 00:00:41 +0400</date><id>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</id><msg>Fix link formatting in README.md</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>5e6b93f7cebe6c0a82390618f3bcbb3f1e044ff8</commitId><timestamp>1774776985000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix issue #209

Attempting to self-register a new school failed when URL is included in verified app links as per the Android Manifest.
</comment><date>2026-03-29 13:36:25 +0400</date><id>5e6b93f7cebe6c0a82390618f3bcbb3f1e044ff8</id><msg>Fix issue #209</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>c86cd41b696bc6a2c81db3363dc0a0b2a4d30956</commitId><timestamp>1774777246000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update LaunchCustomTabUseCase to use Url type.
</comment><date>2026-03-29 13:40:46 +0400</date><id>c86cd41b696bc6a2c81db3363dc0a0b2a4d30956</id><msg>Update LaunchCustomTabUseCase to use Url type.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>c20ab8c871ed3a46390d51d4b9db99d3108783e3</commitId><timestamp>1774778744000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update default base catalog url.
</comment><date>2026-03-29 14:05:44 +0400</date><id>c20ab8c871ed3a46390d51d4b9db99d3108783e3</id><msg>Update default base catalog url.</msg><path><editType>edit</editType><file>respect-server/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</commitId><timestamp>1774789982000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Bump version number.
</comment><date>2026-03-29 17:13:02 +0400</date><id>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</id><msg>Bump version number.</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/ClassRoute.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ChangeHistoryProvider.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/ext/ReceiveDataAndChangeHistory.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/EnrollmentRoute.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryProviderDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryMarkSentToServerDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/changehistory/ChangeHistoryViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</affectedPath><commitId>f5dddb913dc8b0473c277b0c17d5e0b1a2cc86af</commitId><timestamp>1774954701000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-03-31 16:28:21 +0530</date><id>f5dddb913dc8b0473c277b0c17d5e0b1a2cc86af</id><msg>commit</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/changehistory/ChangeHistoryViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/ClassRoute.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/EnrollmentRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/util/ext/ReceiveDataAndChangeHistory.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ChangeHistoryProvider.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryMarkSentToServerDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryProviderDb.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>DESIGN_GUIDELINES.md</affectedPath><commitId>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</commitId><timestamp>1774955089000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Add confirmation feedback guideline for user actions

Added guideline for user action confirmation feedback.
</comment><date>2026-03-31 15:04:49 +0400</date><id>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</id><msg>Add confirmation feedback guideline for user actions</msg><path><editType>edit</editType><file>DESIGN_GUIDELINES.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></lastBuild><lastCompletedBuild _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><refsremotesoriginchange-history-backup _class='hudson.plugins.git.util.Build'><buildNumber>27</buildNumber><marked><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><branch><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></marked><revision><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><branch><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></revision></refsremotesoriginchange-history-backup><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>18</buildNumber><marked><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><branch><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><name>refs/remotes/origin/change-history-backup</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'></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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>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><building>false</building><displayName>#27</displayName><duration>175992</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #27</fullDisplayName><id>27</id><inProgress>false</inProgress><keepLog>false</keepLog><number>27</number><queueId>7060</queueId><result>FAILURE</result><timestamp>1775178660577</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/27/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>635519e5577887607af9cfccecfda0c4e8f42850</commitId><timestamp>1774358734000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update README.md
</comment><date>2026-03-24 17:25:34 +0400</date><id>635519e5577887607af9cfccecfda0c4e8f42850</id><msg>Update README.md</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>bfa39b2a3c882f4d1a6bd38434113917aa9fd04f</commitId><timestamp>1774359709000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Create CONTRIBUTING.md
</comment><date>2026-03-24 17:41:49 +0400</date><id>bfa39b2a3c882f4d1a6bd38434113917aa9fd04f</id><msg>Create CONTRIBUTING.md</msg><path><editType>add</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>4d2d577c074261d46b7da9fd78869c41335c815b</commitId><timestamp>1774359812000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md to clarify contribution types

Expanded contribution guidelines to include non-coding contributions.
</comment><date>2026-03-24 17:43:32 +0400</date><id>4d2d577c074261d46b7da9fd78869c41335c815b</id><msg>Update CONTRIBUTING.md to clarify contribution types</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>255c9ea9b8c73cd3984a3a39fa98bfd76a5f0be3</commitId><timestamp>1774373152000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Revise CONTRIBUTING.md
</comment><date>2026-03-24 21:25:52 +0400</date><id>255c9ea9b8c73cd3984a3a39fa98bfd76a5f0be3</id><msg>Revise CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>66d6c3acce0f2f9e6d67ee69a50ed0052135ea6b</commitId><timestamp>1774374472000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Revise CONTRIBUTING.md
</comment><date>2026-03-24 21:47:52 +0400</date><id>66d6c3acce0f2f9e6d67ee69a50ed0052135ea6b</id><msg>Revise CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD</affectedPath><commitId>3adb525ecee9881eeecb0701badac5cb1dfa4fb8</commitId><timestamp>1774378557000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Add issue template for app catalog requests
</comment><date>2026-03-24 22:55:57 +0400</date><id>3adb525ecee9881eeecb0701badac5cb1dfa4fb8</id><msg>Add issue template for app catalog requests</msg><path><editType>add</editType><file>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>d41eee02111a434cd28e8aaf46ec80aca4d17252</commitId><timestamp>1774378654000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md
</comment><date>2026-03-24 22:57:34 +0400</date><id>d41eee02111a434cd28e8aaf46ec80aca4d17252</id><msg>Update CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.github/ISSUE_TEMPLATE/localization.MD</affectedPath><commitId>1436b71a08c919402daf54676335d6f762ceeaf2</commitId><timestamp>1774381716000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Create localization.MD
</comment><date>2026-03-24 23:48:36 +0400</date><id>1436b71a08c919402daf54676335d6f762ceeaf2</id><msg>Create localization.MD</msg><path><editType>add</editType><file>.github/ISSUE_TEMPLATE/localization.MD</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>bef105b18bfdc9b0a6f50b71a583e255dcd24b32</commitId><timestamp>1774381915000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md
</comment><date>2026-03-24 23:51:55 +0400</date><id>bef105b18bfdc9b0a6f50b71a583e255dcd24b32</id><msg>Update CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>508d677cb32637726a803e6a92bae4ad3b3fac34</commitId><timestamp>1774382049000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md
</comment><date>2026-03-24 23:54:09 +0400</date><id>508d677cb32637726a803e6a92bae4ad3b3fac34</id><msg>Update CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>1abbff4ce9a48a56e39ac1aaaceabede35dc9ea2</commitId><timestamp>1774382305000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update contributing.md
</comment><date>2026-03-24 23:58:25 +0400</date><id>1abbff4ce9a48a56e39ac1aaaceabede35dc9ea2</id><msg>Update contributing.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>1c61153609b7b0f4f77fd75a7385ac22fe62fc2c</commitId><timestamp>1774382402000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Add contributing guidelines to README

Added a contributing section to the README to encourage community involvement.
</comment><date>2026-03-25 00:00:02 +0400</date><id>1c61153609b7b0f4f77fd75a7385ac22fe62fc2c</id><msg>Add contributing guidelines to README</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</commitId><timestamp>1774382441000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Fix link formatting in README.md
</comment><date>2026-03-25 00:00:41 +0400</date><id>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</id><msg>Fix link formatting in README.md</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>5e6b93f7cebe6c0a82390618f3bcbb3f1e044ff8</commitId><timestamp>1774776985000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix issue #209

Attempting to self-register a new school failed when URL is included in verified app links as per the Android Manifest.
</comment><date>2026-03-29 13:36:25 +0400</date><id>5e6b93f7cebe6c0a82390618f3bcbb3f1e044ff8</id><msg>Fix issue #209</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>c86cd41b696bc6a2c81db3363dc0a0b2a4d30956</commitId><timestamp>1774777246000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update LaunchCustomTabUseCase to use Url type.
</comment><date>2026-03-29 13:40:46 +0400</date><id>c86cd41b696bc6a2c81db3363dc0a0b2a4d30956</id><msg>Update LaunchCustomTabUseCase to use Url type.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>c20ab8c871ed3a46390d51d4b9db99d3108783e3</commitId><timestamp>1774778744000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update default base catalog url.
</comment><date>2026-03-29 14:05:44 +0400</date><id>c20ab8c871ed3a46390d51d4b9db99d3108783e3</id><msg>Update default base catalog url.</msg><path><editType>edit</editType><file>respect-server/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</commitId><timestamp>1774789982000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Bump version number.
</comment><date>2026-03-29 17:13:02 +0400</date><id>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</id><msg>Bump version number.</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/ClassRoute.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ChangeHistoryProvider.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/ext/ReceiveDataAndChangeHistory.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/EnrollmentRoute.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryProviderDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryMarkSentToServerDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/changehistory/ChangeHistoryViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</affectedPath><commitId>f5dddb913dc8b0473c277b0c17d5e0b1a2cc86af</commitId><timestamp>1774954701000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-03-31 16:28:21 +0530</date><id>f5dddb913dc8b0473c277b0c17d5e0b1a2cc86af</id><msg>commit</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/changehistory/ChangeHistoryViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/ClassRoute.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/EnrollmentRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/util/ext/ReceiveDataAndChangeHistory.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ChangeHistoryProvider.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryMarkSentToServerDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryProviderDb.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>DESIGN_GUIDELINES.md</affectedPath><commitId>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</commitId><timestamp>1774955089000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Add confirmation feedback guideline for user actions

Added guideline for user action confirmation feedback.
</comment><date>2026-03-31 15:04:49 +0400</date><id>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</id><msg>Add confirmation feedback guideline for user actions</msg><path><editType>edit</editType><file>DESIGN_GUIDELINES.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></lastCompletedBuild><lastFailedBuild _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><refsremotesoriginchange-history-backup _class='hudson.plugins.git.util.Build'><buildNumber>27</buildNumber><marked><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><branch><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></marked><revision><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><branch><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></revision></refsremotesoriginchange-history-backup><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>18</buildNumber><marked><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><branch><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><name>refs/remotes/origin/change-history-backup</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'></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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>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><building>false</building><displayName>#27</displayName><duration>175992</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #27</fullDisplayName><id>27</id><inProgress>false</inProgress><keepLog>false</keepLog><number>27</number><queueId>7060</queueId><result>FAILURE</result><timestamp>1775178660577</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/27/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>635519e5577887607af9cfccecfda0c4e8f42850</commitId><timestamp>1774358734000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update README.md
</comment><date>2026-03-24 17:25:34 +0400</date><id>635519e5577887607af9cfccecfda0c4e8f42850</id><msg>Update README.md</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>bfa39b2a3c882f4d1a6bd38434113917aa9fd04f</commitId><timestamp>1774359709000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Create CONTRIBUTING.md
</comment><date>2026-03-24 17:41:49 +0400</date><id>bfa39b2a3c882f4d1a6bd38434113917aa9fd04f</id><msg>Create CONTRIBUTING.md</msg><path><editType>add</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>4d2d577c074261d46b7da9fd78869c41335c815b</commitId><timestamp>1774359812000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md to clarify contribution types

Expanded contribution guidelines to include non-coding contributions.
</comment><date>2026-03-24 17:43:32 +0400</date><id>4d2d577c074261d46b7da9fd78869c41335c815b</id><msg>Update CONTRIBUTING.md to clarify contribution types</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>255c9ea9b8c73cd3984a3a39fa98bfd76a5f0be3</commitId><timestamp>1774373152000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Revise CONTRIBUTING.md
</comment><date>2026-03-24 21:25:52 +0400</date><id>255c9ea9b8c73cd3984a3a39fa98bfd76a5f0be3</id><msg>Revise CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>66d6c3acce0f2f9e6d67ee69a50ed0052135ea6b</commitId><timestamp>1774374472000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Revise CONTRIBUTING.md
</comment><date>2026-03-24 21:47:52 +0400</date><id>66d6c3acce0f2f9e6d67ee69a50ed0052135ea6b</id><msg>Revise CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD</affectedPath><commitId>3adb525ecee9881eeecb0701badac5cb1dfa4fb8</commitId><timestamp>1774378557000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Add issue template for app catalog requests
</comment><date>2026-03-24 22:55:57 +0400</date><id>3adb525ecee9881eeecb0701badac5cb1dfa4fb8</id><msg>Add issue template for app catalog requests</msg><path><editType>add</editType><file>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>d41eee02111a434cd28e8aaf46ec80aca4d17252</commitId><timestamp>1774378654000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md
</comment><date>2026-03-24 22:57:34 +0400</date><id>d41eee02111a434cd28e8aaf46ec80aca4d17252</id><msg>Update CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.github/ISSUE_TEMPLATE/localization.MD</affectedPath><commitId>1436b71a08c919402daf54676335d6f762ceeaf2</commitId><timestamp>1774381716000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Create localization.MD
</comment><date>2026-03-24 23:48:36 +0400</date><id>1436b71a08c919402daf54676335d6f762ceeaf2</id><msg>Create localization.MD</msg><path><editType>add</editType><file>.github/ISSUE_TEMPLATE/localization.MD</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>bef105b18bfdc9b0a6f50b71a583e255dcd24b32</commitId><timestamp>1774381915000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md
</comment><date>2026-03-24 23:51:55 +0400</date><id>bef105b18bfdc9b0a6f50b71a583e255dcd24b32</id><msg>Update CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>508d677cb32637726a803e6a92bae4ad3b3fac34</commitId><timestamp>1774382049000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md
</comment><date>2026-03-24 23:54:09 +0400</date><id>508d677cb32637726a803e6a92bae4ad3b3fac34</id><msg>Update CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>1abbff4ce9a48a56e39ac1aaaceabede35dc9ea2</commitId><timestamp>1774382305000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update contributing.md
</comment><date>2026-03-24 23:58:25 +0400</date><id>1abbff4ce9a48a56e39ac1aaaceabede35dc9ea2</id><msg>Update contributing.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>1c61153609b7b0f4f77fd75a7385ac22fe62fc2c</commitId><timestamp>1774382402000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Add contributing guidelines to README

Added a contributing section to the README to encourage community involvement.
</comment><date>2026-03-25 00:00:02 +0400</date><id>1c61153609b7b0f4f77fd75a7385ac22fe62fc2c</id><msg>Add contributing guidelines to README</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</commitId><timestamp>1774382441000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Fix link formatting in README.md
</comment><date>2026-03-25 00:00:41 +0400</date><id>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</id><msg>Fix link formatting in README.md</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>5e6b93f7cebe6c0a82390618f3bcbb3f1e044ff8</commitId><timestamp>1774776985000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix issue #209

Attempting to self-register a new school failed when URL is included in verified app links as per the Android Manifest.
</comment><date>2026-03-29 13:36:25 +0400</date><id>5e6b93f7cebe6c0a82390618f3bcbb3f1e044ff8</id><msg>Fix issue #209</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>c86cd41b696bc6a2c81db3363dc0a0b2a4d30956</commitId><timestamp>1774777246000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update LaunchCustomTabUseCase to use Url type.
</comment><date>2026-03-29 13:40:46 +0400</date><id>c86cd41b696bc6a2c81db3363dc0a0b2a4d30956</id><msg>Update LaunchCustomTabUseCase to use Url type.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>c20ab8c871ed3a46390d51d4b9db99d3108783e3</commitId><timestamp>1774778744000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update default base catalog url.
</comment><date>2026-03-29 14:05:44 +0400</date><id>c20ab8c871ed3a46390d51d4b9db99d3108783e3</id><msg>Update default base catalog url.</msg><path><editType>edit</editType><file>respect-server/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</commitId><timestamp>1774789982000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Bump version number.
</comment><date>2026-03-29 17:13:02 +0400</date><id>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</id><msg>Bump version number.</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/ClassRoute.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ChangeHistoryProvider.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/ext/ReceiveDataAndChangeHistory.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/EnrollmentRoute.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryProviderDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryMarkSentToServerDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/changehistory/ChangeHistoryViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</affectedPath><commitId>f5dddb913dc8b0473c277b0c17d5e0b1a2cc86af</commitId><timestamp>1774954701000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-03-31 16:28:21 +0530</date><id>f5dddb913dc8b0473c277b0c17d5e0b1a2cc86af</id><msg>commit</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/changehistory/ChangeHistoryViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/ClassRoute.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/EnrollmentRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/util/ext/ReceiveDataAndChangeHistory.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ChangeHistoryProvider.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryMarkSentToServerDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryProviderDb.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>DESIGN_GUIDELINES.md</affectedPath><commitId>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</commitId><timestamp>1774955089000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Add confirmation feedback guideline for user actions

Added guideline for user action confirmation feedback.
</comment><date>2026-03-31 15:04:49 +0400</date><id>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</id><msg>Add confirmation feedback guideline for user actions</msg><path><editType>edit</editType><file>DESIGN_GUIDELINES.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></lastFailedBuild><lastStableBuild _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><refsremotesoriginchange-history-backup _class='hudson.plugins.git.util.Build'><buildNumber>26</buildNumber><marked><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><branch><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></marked><revision><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><branch><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></revision></refsremotesoriginchange-history-backup><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>18</buildNumber><marked><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><branch><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><name>refs/remotes/origin/change-history-backup</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'></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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>#26</displayName><duration>1691661</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #26</fullDisplayName><id>26</id><inProgress>false</inProgress><keepLog>false</keepLog><number>26</number><queueId>6994</queueId><result>SUCCESS</result><timestamp>1774919460663</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/26/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet></lastStableBuild><lastSuccessfulBuild _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><refsremotesoriginchange-history-backup _class='hudson.plugins.git.util.Build'><buildNumber>26</buildNumber><marked><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><branch><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></marked><revision><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><branch><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></revision></refsremotesoriginchange-history-backup><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>18</buildNumber><marked><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><branch><SHA1>da0a66d5aa17544340c5357fd6bffff75b0c9321</SHA1><name>refs/remotes/origin/change-history-backup</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'></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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>#26</displayName><duration>1691661</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #26</fullDisplayName><id>26</id><inProgress>false</inProgress><keepLog>false</keepLog><number>26</number><queueId>6994</queueId><result>SUCCESS</result><timestamp>1774919460663</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/26/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet></lastSuccessfulBuild><lastUnsuccessfulBuild _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><refsremotesoriginchange-history-backup _class='hudson.plugins.git.util.Build'><buildNumber>27</buildNumber><marked><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><branch><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></marked><revision><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><branch><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><name>refs/remotes/origin/change-history-backup</name></branch></revision></refsremotesoriginchange-history-backup><refsremotesoriginchange-history _class='hudson.plugins.git.util.Build'><buildNumber>18</buildNumber><marked><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></marked><revision><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><branch><SHA1>4b382538c0da68c99fb7db0be1510f9a6d48357a</SHA1><name>refs/remotes/origin/change-history</name></branch></revision></refsremotesoriginchange-history></buildsByBranchName><lastBuiltRevision><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><branch><SHA1>8f655bf23b8821b631c766fa25ac64af869f8fa8</SHA1><name>refs/remotes/origin/change-history-backup</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'></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>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_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>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_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>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><building>false</building><displayName>#27</displayName><duration>175992</duration><estimatedDuration>1690918</estimatedDuration><fullDisplayName>change-history-end-to-end #27</fullDisplayName><id>27</id><inProgress>false</inProgress><keepLog>false</keepLog><number>27</number><queueId>7060</queueId><result>FAILURE</result><timestamp>1775178660577</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/change-history-end-to-end/27/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>635519e5577887607af9cfccecfda0c4e8f42850</commitId><timestamp>1774358734000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update README.md
</comment><date>2026-03-24 17:25:34 +0400</date><id>635519e5577887607af9cfccecfda0c4e8f42850</id><msg>Update README.md</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>bfa39b2a3c882f4d1a6bd38434113917aa9fd04f</commitId><timestamp>1774359709000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Create CONTRIBUTING.md
</comment><date>2026-03-24 17:41:49 +0400</date><id>bfa39b2a3c882f4d1a6bd38434113917aa9fd04f</id><msg>Create CONTRIBUTING.md</msg><path><editType>add</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>4d2d577c074261d46b7da9fd78869c41335c815b</commitId><timestamp>1774359812000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md to clarify contribution types

Expanded contribution guidelines to include non-coding contributions.
</comment><date>2026-03-24 17:43:32 +0400</date><id>4d2d577c074261d46b7da9fd78869c41335c815b</id><msg>Update CONTRIBUTING.md to clarify contribution types</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>255c9ea9b8c73cd3984a3a39fa98bfd76a5f0be3</commitId><timestamp>1774373152000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Revise CONTRIBUTING.md
</comment><date>2026-03-24 21:25:52 +0400</date><id>255c9ea9b8c73cd3984a3a39fa98bfd76a5f0be3</id><msg>Revise CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>66d6c3acce0f2f9e6d67ee69a50ed0052135ea6b</commitId><timestamp>1774374472000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Revise CONTRIBUTING.md
</comment><date>2026-03-24 21:47:52 +0400</date><id>66d6c3acce0f2f9e6d67ee69a50ed0052135ea6b</id><msg>Revise CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD</affectedPath><commitId>3adb525ecee9881eeecb0701badac5cb1dfa4fb8</commitId><timestamp>1774378557000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Add issue template for app catalog requests
</comment><date>2026-03-24 22:55:57 +0400</date><id>3adb525ecee9881eeecb0701badac5cb1dfa4fb8</id><msg>Add issue template for app catalog requests</msg><path><editType>add</editType><file>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>d41eee02111a434cd28e8aaf46ec80aca4d17252</commitId><timestamp>1774378654000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md
</comment><date>2026-03-24 22:57:34 +0400</date><id>d41eee02111a434cd28e8aaf46ec80aca4d17252</id><msg>Update CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.github/ISSUE_TEMPLATE/localization.MD</affectedPath><commitId>1436b71a08c919402daf54676335d6f762ceeaf2</commitId><timestamp>1774381716000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Create localization.MD
</comment><date>2026-03-24 23:48:36 +0400</date><id>1436b71a08c919402daf54676335d6f762ceeaf2</id><msg>Create localization.MD</msg><path><editType>add</editType><file>.github/ISSUE_TEMPLATE/localization.MD</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>bef105b18bfdc9b0a6f50b71a583e255dcd24b32</commitId><timestamp>1774381915000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md
</comment><date>2026-03-24 23:51:55 +0400</date><id>bef105b18bfdc9b0a6f50b71a583e255dcd24b32</id><msg>Update CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>508d677cb32637726a803e6a92bae4ad3b3fac34</commitId><timestamp>1774382049000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md
</comment><date>2026-03-24 23:54:09 +0400</date><id>508d677cb32637726a803e6a92bae4ad3b3fac34</id><msg>Update CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>1abbff4ce9a48a56e39ac1aaaceabede35dc9ea2</commitId><timestamp>1774382305000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update contributing.md
</comment><date>2026-03-24 23:58:25 +0400</date><id>1abbff4ce9a48a56e39ac1aaaceabede35dc9ea2</id><msg>Update contributing.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>1c61153609b7b0f4f77fd75a7385ac22fe62fc2c</commitId><timestamp>1774382402000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Add contributing guidelines to README

Added a contributing section to the README to encourage community involvement.
</comment><date>2026-03-25 00:00:02 +0400</date><id>1c61153609b7b0f4f77fd75a7385ac22fe62fc2c</id><msg>Add contributing guidelines to README</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</commitId><timestamp>1774382441000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Fix link formatting in README.md
</comment><date>2026-03-25 00:00:41 +0400</date><id>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</id><msg>Fix link formatting in README.md</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>5e6b93f7cebe6c0a82390618f3bcbb3f1e044ff8</commitId><timestamp>1774776985000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix issue #209

Attempting to self-register a new school failed when URL is included in verified app links as per the Android Manifest.
</comment><date>2026-03-29 13:36:25 +0400</date><id>5e6b93f7cebe6c0a82390618f3bcbb3f1e044ff8</id><msg>Fix issue #209</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>c86cd41b696bc6a2c81db3363dc0a0b2a4d30956</commitId><timestamp>1774777246000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update LaunchCustomTabUseCase to use Url type.
</comment><date>2026-03-29 13:40:46 +0400</date><id>c86cd41b696bc6a2c81db3363dc0a0b2a4d30956</id><msg>Update LaunchCustomTabUseCase to use Url type.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>c20ab8c871ed3a46390d51d4b9db99d3108783e3</commitId><timestamp>1774778744000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update default base catalog url.
</comment><date>2026-03-29 14:05:44 +0400</date><id>c20ab8c871ed3a46390d51d4b9db99d3108783e3</id><msg>Update default base catalog url.</msg><path><editType>edit</editType><file>respect-server/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</commitId><timestamp>1774789982000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Bump version number.
</comment><date>2026-03-29 17:13:02 +0400</date><id>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</id><msg>Bump version number.</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/ClassRoute.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ChangeHistoryProvider.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/ext/ReceiveDataAndChangeHistory.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/EnrollmentRoute.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryProviderDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryMarkSentToServerDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/changehistory/ChangeHistoryViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</affectedPath><commitId>f5dddb913dc8b0473c277b0c17d5e0b1a2cc86af</commitId><timestamp>1774954701000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-03-31 16:28:21 +0530</date><id>f5dddb913dc8b0473c277b0c17d5e0b1a2cc86af</id><msg>commit</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/changehistory/ChangeHistoryViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/ClassRoute.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/EnrollmentRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/util/ext/ReceiveDataAndChangeHistory.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ChangeHistoryProvider.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryMarkSentToServerDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ChangeHistoryProviderDb.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>DESIGN_GUIDELINES.md</affectedPath><commitId>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</commitId><timestamp>1774955089000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Add confirmation feedback guideline for user actions

Added guideline for user action confirmation feedback.
</comment><date>2026-03-31 15:04:49 +0400</date><id>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</id><msg>Add confirmation feedback guideline for user actions</msg><path><editType>edit</editType><file>DESIGN_GUIDELINES.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></culprit></lastUnsuccessfulBuild><nextBuildNumber>28</nextBuildNumber><property _class='hudson.plugins.throttleconcurrents.ThrottleJobProperty'></property><concurrentBuild>false</concurrentBuild><disabled>false</disabled><scm _class='hudson.plugins.git.GitSCM'><browser _class='hudson.plugins.git.browser.GithubWeb'></browser><type>hudson.plugins.git.GitSCM</type><branche></branche><mergeOptions><fastForwardMode>--ff</fastForwardMode><mergeStrategy>default</mergeStrategy></mergeOptions><userRemoteConfig></userRemoteConfig></scm></freeStyleProject>