<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/RESPECT-end-to-end/</displayUrl></action><action _class='com.cloudbees.plugins.credentials.ViewCredentialsAction'><stores></stores></action><description>RESPECT End to end tests.

Note: end-to-end test videos must be downloaded (eg. right click, save link as) and then played after downloading. They cannot be played directly in the browser.</description><displayName>RESPECT-end-to-end</displayName><fullDisplayName>RESPECT-end-to-end</fullDisplayName><fullName>RESPECT-end-to-end</fullName><name>RESPECT-end-to-end</name><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>210</buildNumber><marked><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><branch><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><branch><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><branch><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><name>refs/remotes/origin/main</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>#210</displayName><duration>1585561</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #210</fullDisplayName><id>210</id><inProgress>false</inProgress><keepLog>false</keepLog><number>210</number><queueId>7076</queueId><result>SUCCESS</result><timestamp>1775236080411</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/210/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>209</buildNumber><marked><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><branch><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><branch><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><branch><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><name>refs/remotes/origin/main</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>#209</displayName><duration>1567069</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #209</fullDisplayName><id>209</id><inProgress>false</inProgress><keepLog>false</keepLog><number>209</number><queueId>7053</queueId><result>SUCCESS</result><timestamp>1775149680577</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/209/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>208</buildNumber><marked><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><branch><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><branch><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><branch><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><name>refs/remotes/origin/main</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>#208</displayName><duration>1589884</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #208</fullDisplayName><id>208</id><inProgress>false</inProgress><keepLog>false</keepLog><number>208</number><queueId>7015</queueId><result>SUCCESS</result><timestamp>1774976880664</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/208/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><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></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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>207</buildNumber><marked><SHA1>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</SHA1><branch><SHA1>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</SHA1><branch><SHA1>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</SHA1><branch><SHA1>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</SHA1><name>refs/remotes/origin/main</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>#207</displayName><duration>1575863</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #207</fullDisplayName><id>207</id><inProgress>false</inProgress><keepLog>false</keepLog><number>207</number><queueId>6987</queueId><result>SUCCESS</result><timestamp>1774890480664</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/207/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>206</buildNumber><marked><SHA1>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</SHA1><branch><SHA1>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</SHA1><branch><SHA1>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</SHA1><branch><SHA1>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</SHA1><name>refs/remotes/origin/main</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>#206</displayName><duration>1584534</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #206</fullDisplayName><id>206</id><inProgress>false</inProgress><keepLog>false</keepLog><number>206</number><queueId>6955</queueId><result>SUCCESS</result><timestamp>1774804080664</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/206/</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 Mike Dawson</shortDescription><userId>mike</userId><userName>Mike Dawson</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>205</buildNumber><marked><SHA1>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</SHA1><branch><SHA1>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</SHA1><branch><SHA1>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</SHA1><branch><SHA1>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</SHA1><name>refs/remotes/origin/main</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>#205</displayName><duration>1991114</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #205</fullDisplayName><id>205</id><inProgress>false</inProgress><keepLog>false</keepLog><number>205</number><queueId>6949</queueId><result>SUCCESS</result><timestamp>1774790193929</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/205/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/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-app-compose/src/androidMain/AndroidManifest.xml</file></path><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/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/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path><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></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-app-compose/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-server/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><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>204</buildNumber><marked><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><branch><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><branch><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><branch><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><name>refs/remotes/origin/main</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>#204</displayName><duration>1594353</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #204</fullDisplayName><id>204</id><inProgress>false</inProgress><keepLog>false</keepLog><number>204</number><queueId>6926</queueId><result>SUCCESS</result><timestamp>1774717680664</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/204/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>203</buildNumber><marked><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><branch><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><branch><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><branch><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><name>refs/remotes/origin/main</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>#203</displayName><duration>1288773</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #203</fullDisplayName><id>203</id><inProgress>false</inProgress><keepLog>false</keepLog><number>203</number><queueId>6900</queueId><result>FAILURE</result><timestamp>1774631280663</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/203/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>202</buildNumber><marked><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><branch><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><branch><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><branch><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><name>refs/remotes/origin/main</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>#202</displayName><duration>1540891</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #202</fullDisplayName><id>202</id><inProgress>false</inProgress><keepLog>false</keepLog><number>202</number><queueId>6870</queueId><result>SUCCESS</result><timestamp>1774544880664</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/202/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>201</buildNumber><marked><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><branch><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><branch><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><branch><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><name>refs/remotes/origin/main</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>#201</displayName><duration>1589232</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #201</fullDisplayName><id>201</id><inProgress>false</inProgress><keepLog>false</keepLog><number>201</number><queueId>6840</queueId><result>SUCCESS</result><timestamp>1774458480923</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/201/</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>CODE_OF_CONDUCT.md</affectedPath><commitId>dbddedba8d033a04df559f19350ae22a6a3e5fe2</commitId><timestamp>1774372715000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Add Contributor Covenant Code of Conduct

Added Contributor Covenant Code of Conduct to outline community standards and enforcement guidelines.
</comment><date>2026-03-24 21:18:35 +0400</date><id>dbddedba8d033a04df559f19350ae22a6a3e5fe2</id><msg>Add Contributor Covenant Code of Conduct</msg><path><editType>add</editType><file>CODE_OF_CONDUCT.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><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>200</buildNumber><marked><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><branch><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><branch><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><branch><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><name>refs/remotes/origin/main</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>#200</displayName><duration>1588323</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #200</fullDisplayName><id>200</id><inProgress>false</inProgress><keepLog>false</keepLog><number>200</number><queueId>6805</queueId><result>SUCCESS</result><timestamp>1774372080923</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/200/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>199</buildNumber><marked><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><branch><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><branch><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><branch><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><name>refs/remotes/origin/main</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>#199</displayName><duration>1666134</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #199</fullDisplayName><id>199</id><inProgress>false</inProgress><keepLog>false</keepLog><number>199</number><queueId>6765</queueId><result>SUCCESS</result><timestamp>1774285680923</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/199/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>198</buildNumber><marked><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><branch><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><branch><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><branch><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><name>refs/remotes/origin/main</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>#198</displayName><duration>2321033</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #198</fullDisplayName><id>198</id><inProgress>false</inProgress><keepLog>false</keepLog><number>198</number><queueId>6733</queueId><result>SUCCESS</result><timestamp>1774199280924</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/198/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>197</buildNumber><marked><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><branch><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><branch><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><branch><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><name>refs/remotes/origin/main</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>#197</displayName><duration>2229765</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #197</fullDisplayName><id>197</id><inProgress>false</inProgress><keepLog>false</keepLog><number>197</number><queueId>6707</queueId><result>SUCCESS</result><timestamp>1774112880923</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/197/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>196</buildNumber><marked><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><branch><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><branch><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><branch><SHA1>e1948045f432f4c117218b2a2783dd0e231a8a7e</SHA1><name>refs/remotes/origin/main</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>#196</displayName><duration>2317816</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #196</fullDisplayName><id>196</id><inProgress>false</inProgress><keepLog>false</keepLog><number>196</number><queueId>6681</queueId><result>SUCCESS</result><timestamp>1774026480181</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/196/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_005_add_school_self_service.yaml</affectedPath><affectedPath>.maestro/flows/subflows/school_admin_login_flow.yaml</affectedPath><commitId>43a92543301b52137bd67e0e1f67fca27c7bae01</commitId><timestamp>1773311290000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>added test for school-self-registration
</comment><date>2026-03-12 14:28:10 +0400</date><id>43a92543301b52137bd67e0e1f67fca27c7bae01</id><msg>added test for school-self-registration</msg><path><editType>edit</editType><file>.maestro/flows/subflows/school_admin_login_flow.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_005_add_school_self_service.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_005_add_school_self_service.yaml</affectedPath><commitId>869fbfad19a693521ea7789d1ec9700fa9d4d0c9</commitId><timestamp>1773313951000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test
</comment><date>2026-03-12 15:12:31 +0400</date><id>869fbfad19a693521ea7789d1ec9700fa9d4d0c9</id><msg>updated test</msg><path><editType>edit</editType><file>.maestro/flows/001_005_add_school_self_service.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_005_add_school_self_service.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>40a8c27e750ce3f0f22d2d8b1803ceaad14f328d</commitId><timestamp>1773316182000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test 001_002
</comment><date>2026-03-12 15:49:42 +0400</date><id>40a8c27e750ce3f0f22d2d8b1803ceaad14f328d</id><msg>updated test 001_002</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_005_add_school_self_service.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>674efff8c00e64926e44f45d073d2ed003a9ff30</commitId><timestamp>1773318844000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test- added id for the Host URL
</comment><date>2026-03-12 16:34:04 +0400</date><id>674efff8c00e64926e44f45d073d2ed003a9ff30</id><msg>updated test- added id for the Host URL</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolValidationRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/SchoolUrlVerificationManager.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/appversioninfo/GetAppVersionInfoUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/appversioninfo/GetAppVersionInfoUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/verify/VerifySchoolUrlPointsToThisServerUseCase.kt</affectedPath><commitId>3cf6aa6d01d29a88a6d944d3bd2bec317cb7d9d9</commitId><timestamp>1773402867000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>initial commit for add school self service bug fix
</comment><date>2026-03-13 17:24:27 +0530</date><id>3cf6aa6d01d29a88a6d944d3bd2bec317cb7d9d9</id><msg>initial commit for add school self service bug fix</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/appversioninfo/GetAppVersionInfoUseCase.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolValidationRoute.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/appversioninfo/GetAppVersionInfoUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/verify/VerifySchoolUrlPointsToThisServerUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCase.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/util/SchoolUrlVerificationManager.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>9468f51446f73039c0fffa764fa23f3a883853ad</commitId><timestamp>1773663252000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated maestro.sh
</comment><date>2026-03-16 16:14:12 +0400</date><id>9468f51446f73039c0fffa764fa23f3a883853ad</id><msg>updated maestro.sh</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>57f8bdc13c2f97dda0ea87446f811a7245903dc4</commitId><timestamp>1773727685000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>- Update `ci-run-maestro.sh` to remove a commented-out line and refine `TESTCONTROLLER_URL` parsing.
- Increase the timeout for the "Register New School" screen in `001_002_add_user_direct_test.yaml`.
</comment><date>2026-03-17 10:08:05 +0400</date><id>57f8bdc13c2f97dda0ea87446f811a7245903dc4</id><msg>- Update `ci-run-maestro.sh` to remove a commented-out line and refine `TESTCONTROLLER_URL` parsing.</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/TestFolder/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/TestFolder/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/TestFolder/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows/TestFolder/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>9304a39c0f87d04578267ed2cce637376e8aaeaf</commitId><timestamp>1773731511000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Move Maestro test flows for inviting users, login, assignments, and browsing lessons into a new `TestFolder` directory.
</comment><date>2026-03-17 11:11:51 +0400</date><id>9304a39c0f87d04578267ed2cce637376e8aaeaf</id><msg>Move Maestro test flows for inviting users, login, assignments, and browsing lessons into a new `TestFolder` directory.</msg><path><editType>add</editType><file>.maestro/flows/TestFolder/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/TestFolder/002_browse_lessons_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/TestFolder/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/TestFolder/001_003_login_using_school_link_test.yaml</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><commitId>08f9a39cfa88b59be7df95e6e7e5ed0b86a2c6be</commitId><timestamp>1773732037000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>add logs for testing
</comment><date>2026-03-17 12:50:37 +0530</date><id>08f9a39cfa88b59be7df95e6e7e5ed0b86a2c6be</id><msg>add logs for testing</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.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><commitId>44d10859fccfdcb0f87872443c4e87db32f206c3</commitId><timestamp>1773732108000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>add logs for testing
</comment><date>2026-03-17 12:51:48 +0530</date><id>44d10859fccfdcb0f87872443c4e87db32f206c3</id><msg>add logs for testing</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>a43f0ae29ae759b5e0bf78ec4405026dd5986b90</commitId><timestamp>1773734547000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>add logs for testing
</comment><date>2026-03-17 13:32:27 +0530</date><id>a43f0ae29ae759b5e0bf78ec4405026dd5986b90</id><msg>add logs for testing</msg><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/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>afa5eeaa2e6198eefc188d013abc0632d34dfee6</commitId><timestamp>1773736017000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>add logs for testing
</comment><date>2026-03-17 13:56:57 +0530</date><id>afa5eeaa2e6198eefc188d013abc0632d34dfee6</id><msg>add logs for testing</msg><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-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><commitId>4bcef5df1ecdde901f03c64d81f67ea078737516</commitId><timestamp>1773737018000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>add logs for testing
</comment><date>2026-03-17 14:13:38 +0530</date><id>4bcef5df1ecdde901f03c64d81f67ea078737516</id><msg>add logs for testing</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><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>7a1247db6933c037420887c980c5e53b3fc1a03b</commitId><timestamp>1773737416000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>add logs for testing
</comment><date>2026-03-17 14:20:16 +0530</date><id>7a1247db6933c037420887c980c5e53b3fc1a03b</id><msg>add logs for testing</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/chrome-first-run-check.yaml</affectedPath><affectedPath>.maestro/flows/subflows/chrome-first-run-tap-notification-no-thanks.yaml</affectedPath><affectedPath>.maestro/flows/subflows/chrome-first-run-accept-and-continue.yaml</affectedPath><affectedPath>.maestro/flows/subflows/chrome-first-run-tap-accept-or-use-without-account.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/chrome-first-run-without-account.yaml</affectedPath><affectedPath>.maestro/flows/subflows/chrome-first-run-accept-ad-privacy.yaml</affectedPath><commitId>003751b6e519036a8a2809c50769deffc8c8477e</commitId><timestamp>1773743455000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add Maestro subflows to handle Chrome's first-run experience screens and integrate them into the `001_002_add_user_direct_test` flow.
</comment><date>2026-03-17 14:30:55 +0400</date><id>003751b6e519036a8a2809c50769deffc8c8477e</id><msg>Add Maestro subflows to handle Chrome's first-run experience screens and integrate them into the `001_002_add_user_direct_test` flow.</msg><path><editType>add</editType><file>.maestro/flows/subflows/chrome-first-run-without-account.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/chrome-first-run-tap-accept-or-use-without-account.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/chrome-first-run-check.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/chrome-first-run-accept-ad-privacy.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/chrome-first-run-tap-notification-no-thanks.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/chrome-first-run-accept-and-continue.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>2d2518260544cda227cd53bf4ce3e0f606e39a49</commitId><timestamp>1773747128000</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 tap on school URL using text instead of ID.
</comment><date>2026-03-17 15:32:08 +0400</date><id>2d2518260544cda227cd53bf4ce3e0f606e39a49</id><msg>Update Maestro flow to tap on school URL using text instead of ID.</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>af53905f34abbde626882ddd93a27ae8fad5e8ec</commitId><timestamp>1773811226000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>add logs for testing
</comment><date>2026-03-18 10:50:26 +0530</date><id>af53905f34abbde626882ddd93a27ae8fad5e8ec</id><msg>add logs for testing</msg><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/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>b177ea2ef0b0c903e739cc1a0a8265b30a2e11f8</commitId><timestamp>1773811741000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>add logs for testing
</comment><date>2026-03-18 10:59:01 +0530</date><id>b177ea2ef0b0c903e739cc1a0a8265b30a2e11f8</id><msg>add logs for testing</msg><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-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</affectedPath><commitId>f802eda5ed1da209f9d005b2e2dccaa3f3c787e4</commitId><timestamp>1773822572000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>update url with school-directory
</comment><date>2026-03-18 13:59:32 +0530</date><id>f802eda5ed1da209f9d005b2e2dccaa3f3c787e4</id><msg>update url with school-directory</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-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/TestFolder/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/TestFolder/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/TestFolder/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/TestFolder/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>4411ab5ee1f44172055aca857588efc861319ece</commitId><timestamp>1773823875000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Move Maestro flows from `TestFolder` to the root `.maestro/flows/` directory.
</comment><date>2026-03-18 12:51:15 +0400</date><id>4411ab5ee1f44172055aca857588efc861319ece</id><msg>Move Maestro flows from `TestFolder` to the root `.maestro/flows/` directory.</msg><path><editType>add</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/TestFolder/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/TestFolder/002_browse_lessons_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/TestFolder/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/TestFolder/001_003_login_using_school_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/002_browse_lessons_test.yaml</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/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>20619eeee7197cdc4a8d62efae4da7c3d4e73064</commitId><timestamp>1773824593000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>remove  logs
</comment><date>2026-03-18 14:33:13 +0530</date><id>20619eeee7197cdc4a8d62efae4da7c3d4e73064</id><msg>remove  logs</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/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/README.md</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/001_005_add_school_self_registration_test.yaml</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_005_add_school_self_registration_test_description.md</affectedPath><commitId>b4f6e14937cbbaff43a82679c62ead4684d68f26</commitId><timestamp>1773830574000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add Maestro end-to-end test and documentation for school self-registration.
</comment><date>2026-03-18 14:42:54 +0400</date><id>b4f6e14937cbbaff43a82679c62ead4684d68f26</id><msg>Add Maestro end-to-end test and documentation for school self-registration.</msg><path><editType>add</editType><file>.maestro/flows/001_005_add_school_self_registration_test.yaml</file></path><path><editType>add</editType><file>respect-test-end-to-end/test-description/001_005_add_school_self_registration_test_description.md</file></path><path><editType>edit</editType><file>respect-test-end-to-end/README.md</file></path><path><editType>edit</editType><file>.gitignore</file></path><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.gitignore</affectedPath><commitId>40fb80666ed8c07f0b0009fb2e82c8fb7c0a05e1</commitId><timestamp>1773830611000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add Maestro end-to-end test and documentation for school self-registration.
</comment><date>2026-03-18 14:43:31 +0400</date><id>40fb80666ed8c07f0b0009fb2e82c8fb7c0a05e1</id><msg>Add Maestro end-to-end test and documentation for school self-registration.</msg><path><editType>edit</editType><file>.gitignore</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>50f2f895dbbede131b9a11c0dbdd85aae44efc0b</commitId><timestamp>1773830921000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update the file path for the `get_started_select_school_by_name.yaml` subflow in the Maestro test configuration.
</comment><date>2026-03-18 14:48:41 +0400</date><id>50f2f895dbbede131b9a11c0dbdd85aae44efc0b</id><msg>Update the file path for the `get_started_select_school_by_name.yaml` subflow in the Maestro test configuration.</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>59e6db352497dc97de25a719bee2cc18a646f62e</commitId><timestamp>1773831793000</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 to use school name variable instead of skipping school creation.
</comment><date>2026-03-18 15:03:13 +0400</date><id>59e6db352497dc97de25a719bee2cc18a646f62e</id><msg>Update Maestro test flow to use school name variable instead of skipping school creation.</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</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/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</affectedPath><commitId>e179ba50e37b82ba30c8334eb41a1744535ad533</commitId><timestamp>1773917633000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Minor school self registration tidyup.
</comment><date>2026-03-19 14:53:53 +0400</date><id>e179ba50e37b82ba30c8334eb41a1744535ad533</id><msg>Minor school self registration tidyup.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path><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-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCaseImpl.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</affectedPath><commitId>9aea8b7539b16f850a64faaf135807f59fb3d7ac</commitId><timestamp>1773919220000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Refactor RegisterSchoolUseCase : Create common interface that can be used to keep parameter names, request/response objects, etc.
</comment><date>2026-03-19 15:20:20 +0400</date><id>9aea8b7539b16f850a64faaf135807f59fb3d7ac</id><msg>Refactor RegisterSchoolUseCase : Create common interface that can be used to keep parameter names, request/response objects, etc.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCaseImpl.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/school/add/RegisterSchoolUseCaseTest.kt</affectedPath><affectedPath>respect-server/src/main/resources/application.conf</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/SchoolConfig.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</affectedPath><commitId>140bc7b90e0bad91f2949ec0cc57c16a98ba2140</commitId><timestamp>1774004016000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove validation logic that was either unnecessary or did not belong in the SchoolRegistrationRoute.
</comment><date>2026-03-20 14:53:36 +0400</date><id>140bc7b90e0bad91f2949ec0cc57c16a98ba2140</id><msg>Remove validation logic that was either unnecessary or did not belong in the SchoolRegistrationRoute.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/SchoolConfig.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/school/add/RegisterSchoolUseCaseTest.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/application.conf</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCaseImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/school/add/RegisterSchoolUseCaseTest.kt</affectedPath><affectedPath>respect-server/src/main/resources/application.conf</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/SchoolConfig.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</affectedPath><commitId>80416b37c205bbd659cc341ad2a74374fbc8cbad</commitId><timestamp>1774009741000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fixes for subdomain based school self-registration.
</comment><date>2026-03-20 16:29:01 +0400</date><id>80416b37c205bbd659cc341ad2a74374fbc8cbad</id><msg>Fixes for subdomain based school self-registration.</msg><path><editType>edit</editType><file>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/school/add/RegisterSchoolUseCaseTest.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/application.conf</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCaseImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/SchoolConfig.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</affectedPath><commitId>46aa8fc3e9336ac3220bbd9f09518426f4abfcde</commitId><timestamp>1774015511000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix handling of icon image on AppLauncherscreen
</comment><date>2026-03-20 18:05:11 +0400</date><id>46aa8fc3e9336ac3220bbd9f09518426f4abfcde</id><msg>Fix handling of icon image on AppLauncherscreen</msg><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-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/add/RegisterSchoolUseCase.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>eadd675d3a602c3f0dc1c0f43199ec080db0e4cc</commitId><timestamp>1774016365000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove white space changes from main.
</comment><date>2026-03-20 18:19:25 +0400</date><id>eadd675d3a602c3f0dc1c0f43199ec080db0e4cc</id><msg>Remove white space changes from main.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path><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/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>e1948045f432f4c117218b2a2783dd0e231a8a7e</commitId><timestamp>1774019009000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Bump version.
</comment><date>2026-03-20 19:03:29 +0400</date><id>e1948045f432f4c117218b2a2783dd0e231a8a7e</id><msg>Bump version.</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</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/anugraha</absoluteUrl><fullName>Anugraha</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>195</buildNumber><marked><SHA1>2ddc9dcad374af02f8837d5482bba9050898d85d</SHA1><branch><SHA1>2ddc9dcad374af02f8837d5482bba9050898d85d</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>2ddc9dcad374af02f8837d5482bba9050898d85d</SHA1><branch><SHA1>2ddc9dcad374af02f8837d5482bba9050898d85d</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>2ddc9dcad374af02f8837d5482bba9050898d85d</SHA1><branch><SHA1>2ddc9dcad374af02f8837d5482bba9050898d85d</SHA1><name>refs/remotes/origin/main</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>#195</displayName><duration>1835523</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #195</fullDisplayName><id>195</id><inProgress>false</inProgress><keepLog>false</keepLog><number>195</number><queueId>6653</queueId><result>SUCCESS</result><timestamp>1773940080181</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/195/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>194</buildNumber><marked><SHA1>2ddc9dcad374af02f8837d5482bba9050898d85d</SHA1><branch><SHA1>2ddc9dcad374af02f8837d5482bba9050898d85d</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>2ddc9dcad374af02f8837d5482bba9050898d85d</SHA1><branch><SHA1>2ddc9dcad374af02f8837d5482bba9050898d85d</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>2ddc9dcad374af02f8837d5482bba9050898d85d</SHA1><branch><SHA1>2ddc9dcad374af02f8837d5482bba9050898d85d</SHA1><name>refs/remotes/origin/main</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>#194</displayName><duration>2126324</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #194</fullDisplayName><id>194</id><inProgress>false</inProgress><keepLog>false</keepLog><number>194</number><queueId>6627</queueId><result>FAILURE</result><timestamp>1773853680181</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/194/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>2ddc9dcad374af02f8837d5482bba9050898d85d</commitId><timestamp>1773832955000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update Slack Space link in README
</comment><date>2026-03-18 15:22:35 +0400</date><id>2ddc9dcad374af02f8837d5482bba9050898d85d</id><msg>Update Slack Space link in README</msg><path><editType>edit</editType><file>README.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>193</buildNumber><marked><SHA1>d011e33010cb44b984df4801c35b4660e8c95ddc</SHA1><branch><SHA1>d011e33010cb44b984df4801c35b4660e8c95ddc</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>d011e33010cb44b984df4801c35b4660e8c95ddc</SHA1><branch><SHA1>d011e33010cb44b984df4801c35b4660e8c95ddc</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>d011e33010cb44b984df4801c35b4660e8c95ddc</SHA1><branch><SHA1>d011e33010cb44b984df4801c35b4660e8c95ddc</SHA1><name>refs/remotes/origin/main</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>#193</displayName><duration>1607190</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #193</fullDisplayName><id>193</id><inProgress>false</inProgress><keepLog>false</keepLog><number>193</number><queueId>6592</queueId><result>SUCCESS</result><timestamp>1773767280181</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/193/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>192</buildNumber><marked><SHA1>d011e33010cb44b984df4801c35b4660e8c95ddc</SHA1><branch><SHA1>d011e33010cb44b984df4801c35b4660e8c95ddc</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>d011e33010cb44b984df4801c35b4660e8c95ddc</SHA1><branch><SHA1>d011e33010cb44b984df4801c35b4660e8c95ddc</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>d011e33010cb44b984df4801c35b4660e8c95ddc</SHA1><branch><SHA1>d011e33010cb44b984df4801c35b4660e8c95ddc</SHA1><name>refs/remotes/origin/main</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>#192</displayName><duration>1605924</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #192</fullDisplayName><id>192</id><inProgress>false</inProgress><keepLog>false</keepLog><number>192</number><queueId>6551</queueId><result>SUCCESS</result><timestamp>1773680880181</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/192/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/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/viewmodel/manageuser/accountlist/AccountListViewModel.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/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/accountlist/AccountListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.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/domain/navigation/onappstart/NavigateOnAppStartUseCase.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/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</file></path><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/viewmodel/manageuser/waitingforapproval/WaitingForApprovalViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>191</buildNumber><marked><SHA1>536af2ae21664ba71704fab8a01e7186dfad5b3c</SHA1><branch><SHA1>536af2ae21664ba71704fab8a01e7186dfad5b3c</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>536af2ae21664ba71704fab8a01e7186dfad5b3c</SHA1><branch><SHA1>536af2ae21664ba71704fab8a01e7186dfad5b3c</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>536af2ae21664ba71704fab8a01e7186dfad5b3c</SHA1><branch><SHA1>536af2ae21664ba71704fab8a01e7186dfad5b3c</SHA1><name>refs/remotes/origin/main</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>#191</displayName><duration>1483703</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #191</fullDisplayName><id>191</id><inProgress>false</inProgress><keepLog>false</keepLog><number>191</number><queueId>6524</queueId><result>SUCCESS</result><timestamp>1773594480181</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/191/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>190</buildNumber><marked><SHA1>536af2ae21664ba71704fab8a01e7186dfad5b3c</SHA1><branch><SHA1>536af2ae21664ba71704fab8a01e7186dfad5b3c</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>536af2ae21664ba71704fab8a01e7186dfad5b3c</SHA1><branch><SHA1>536af2ae21664ba71704fab8a01e7186dfad5b3c</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>536af2ae21664ba71704fab8a01e7186dfad5b3c</SHA1><branch><SHA1>536af2ae21664ba71704fab8a01e7186dfad5b3c</SHA1><name>refs/remotes/origin/main</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>#190</displayName><duration>1510896</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #190</fullDisplayName><id>190</id><inProgress>false</inProgress><keepLog>false</keepLog><number>190</number><queueId>6500</queueId><result>SUCCESS</result><timestamp>1773508080181</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/190/</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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsPublicationEntityAdapter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.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-repository/src/commonMain/kotlin/world/respect/datalayer/repository/compatibleapps/CompatibleAppDataSourceRepository.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/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-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.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/assignment/edit/AssignmentEditViewModel.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/adapters/OpdsFeedAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/2.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryEntityDao.kt</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-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-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</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-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/2.json</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/RespectAppDatabase.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>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.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/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsPublicationEntityAdapter.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-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolPrimaryKeyGenerator.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/schooldirectory/daos/SchoolDirectoryEntryEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/OpdsDataSource.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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</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-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>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>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectRealmDatabase/1.json</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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/CompatibleAppDataSourceDb.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-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/assignment/edit/AssignmentEditViewModel.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-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/RespectAppDataSourceHttp.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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectRealmDatabase/2.json</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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.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/SchoolDataSourceLocal.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/opds/OpdsDataSourceRepository.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/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/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-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsDataSourceHttp.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-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/SchoolDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolConfigEntity.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>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolConfigSetting.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/DummySchoolConfigSettingsDataSource.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>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/CompatibleAppDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.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-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.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-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-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/RespectSchoolDatabase.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-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/RespectAppDatabaseMigrations.kt</file></path><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-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.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/schemas/world.respect.datalayer.db.RespectAppDatabase/3.json</affectedPath><affectedPath>gradle/gradle-daemon-jvm.properties</affectedPath><affectedPath>settings.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.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>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/opds/OpdsFeedDataSourceDb.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>add</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/3.json</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/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json</file></path><path><editType>add</editType><file>gradle/gradle-daemon-jvm.properties</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/OpdsFeedDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.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-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-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-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-lib-opds-model/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeedMetadata.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSource.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/opds/OpdsFeedDataSourceHttp.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-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-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>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>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.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/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.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-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.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-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/entities/OpdsFeedEntity.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/OpdsDataSource.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-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedMetadataEntity.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-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>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/SchoolDataSourceDb.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/daos/OpdsFeedEntityDao.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/build.gradle.kts</file></path><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-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/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/BaseDataSourceValidationHelper.kt</affectedPath><affectedPath>respect-datalayer-repository/README.md</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-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>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-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.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-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/ext/OpdsFeedExt.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/OpdsFeedDataSourceDb.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-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/networkvalidation/BaseDataSourceValidationHelper.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/README.md</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/adapters/OpdsFeedAdapter.kt</file></path><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-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/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-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/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/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-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.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-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/detail/LearningUnitDetailViewModel.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/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-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.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/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></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-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><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/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-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/ext/OpdsFeedExt.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/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-server/src/main/kotlin/world/respect/server/Application.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-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-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/ext/OpdsFeedExt.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.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-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.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></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/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-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-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.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/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-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSource.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.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>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.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-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/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>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/launcher/AppLauncherViewModel.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/SchoolDataSourceDb.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>add</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSource.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-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.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>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSourceLocal.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSourceLocal.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>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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.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/SchoolDataSourceLocal.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.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-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsPublicationDataSourceHttp.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/OpdsPublicationDataSourceLocal.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/OpdsPublicationDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsPublicationEntityDao.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>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/opds/OpdsPublicationDataSourceDb.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-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsPublicationDataSourceHttp.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-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.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/apps/enterlink/EnterLinkViewModel.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-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsPublicationEntityDao.kt</file></path><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/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.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/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-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-server/build.gradle.kts</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/daos/OpdsFeedMetadataEntityDao.kt</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</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/src/commonMain/kotlin/world/respect/datalayer/school/DummySchoolConfigSettingsDataSource.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-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/ext/DateConstants.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.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/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/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.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/jvmTest/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtableIntegrationTest.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/okhttp/AbstractCacheInterceptorTest.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/commonMain/kotlin/com/ustadmobile/libcache/headers/HttpHeadersExt.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/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.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/cachecontrol/CacheControlFreshnessCheckerImpl.kt</file></path><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/UstadCacheJvmTest.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/UstadCacheExt.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/src/commonMain/kotlin/world/respect/datalayer/compatibleapps/CompatibleAppsDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/compatibleapps/CompatibleAppDataSourceRepository.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-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/compatibleapps/CompatibleAppsDataSourceLocal.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/jvmTest/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepositoryTest.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-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</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-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSourceLocal.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-http/src/commonMain/kotlin/world/respect/datalayer/http/compatibleapps/CompatibleAppDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/RespectAppDataSourceHttp.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/compatibleapps/CompatibleAppDataSourceRepository.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/adapters/CompatbileAppAdapter.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>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/entities/CompatibleAppEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/4.json</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>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/entities/CompatibleAppAddJoin.kt</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-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/ReadiumSubjectEntityAdapters.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DateConstants.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-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/ReadiumLinkEntity.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/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/opds/entities/OpdsGroupEntity.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/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/daos/OpdsPublicationEntityDao.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/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/daos/ReadiumLinkEntityDao.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/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>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumSubjectEntityAdapters.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/SchoolDataSourceDb.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/OpdsGroupEntity.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>delete</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/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.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>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/daos/PersonPasskeyEntityDao.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>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/OpdsTypeConverters.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/OpdsParentType.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>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-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.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>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsPublicationEntityDao.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>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/ReadiumSubjectEntity.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>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/entities/OpdsFeedMetadataEntity.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>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-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/OpdsGroupEntityDao.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>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFacetEntity.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>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/PersonPasskeyEntityDao.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>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-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.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>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedEntityDao.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>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumLinkEntityAdapter.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/adapters/OpdsPublicationEntityAdapter.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>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/OpdsFeedDataSourceHttp.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>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsParentType.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>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.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/daos/OpdsPublicationEntityDao.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>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedMetadataEntityDao.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/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/school/opds/ext/ReadiumLinkExt.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>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedMetadataEntityAdapter.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/entities/OpdsFeedEntity.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>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/OpdsPublicationDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsPublicationEntity.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><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>189</buildNumber><marked><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><branch><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><branch><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><branch><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><name>refs/remotes/origin/main</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>#189</displayName><duration>1588590</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #189</fullDisplayName><id>189</id><inProgress>false</inProgress><keepLog>false</keepLog><number>189</number><queueId>6474</queueId><result>SUCCESS</result><timestamp>1773421680464</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/189/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>188</buildNumber><marked><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><branch><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><branch><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><branch><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><name>refs/remotes/origin/main</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>#188</displayName><duration>1698607</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #188</fullDisplayName><id>188</id><inProgress>false</inProgress><keepLog>false</keepLog><number>188</number><queueId>6449</queueId><result>SUCCESS</result><timestamp>1773335280463</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/188/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>187</buildNumber><marked><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><branch><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><branch><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><branch><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><name>refs/remotes/origin/main</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>#187</displayName><duration>1579572</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #187</fullDisplayName><id>187</id><inProgress>false</inProgress><keepLog>false</keepLog><number>187</number><queueId>6418</queueId><result>FAILURE</result><timestamp>1773248880463</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/187/</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 Mike Dawson</shortDescription><userId>mike</userId><userName>Mike Dawson</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>186</buildNumber><marked><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><branch><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><branch><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><branch><SHA1>e152a040f1af78865fcc28bf60f8d7459db8706c</SHA1><name>refs/remotes/origin/main</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>#186</displayName><duration>1448392</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #186</fullDisplayName><id>186</id><inProgress>false</inProgress><keepLog>false</keepLog><number>186</number><queueId>6409</queueId><result>SUCCESS</result><timestamp>1773222501855</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/186/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><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>.maestro/README.md</file></path><path><editType>edit</editType><file>.maestro/flows/scripts/school_init.js</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>185</buildNumber><marked><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><branch><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><branch><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><branch><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><name>refs/remotes/origin/main</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>#185</displayName><duration>1546003</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #185</fullDisplayName><id>185</id><inProgress>false</inProgress><keepLog>false</keepLog><number>185</number><queueId>6396</queueId><result>SUCCESS</result><timestamp>1773162480463</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/185/</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 Mike Dawson</shortDescription><userId>mike</userId><userName>Mike Dawson</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>184</buildNumber><marked><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><branch><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><branch><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><branch><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><name>refs/remotes/origin/main</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>#184</displayName><duration>1438284</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #184</fullDisplayName><id>184</id><inProgress>false</inProgress><keepLog>false</keepLog><number>184</number><queueId>6365</queueId><result>SUCCESS</result><timestamp>1773083708558</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/184/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>183</buildNumber><marked><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><branch><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><branch><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><branch><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><name>refs/remotes/origin/main</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>#183</displayName><duration>1727630</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #183</fullDisplayName><id>183</id><inProgress>false</inProgress><keepLog>false</keepLog><number>183</number><queueId>6364</queueId><result>FAILURE</result><timestamp>1773076080464</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/183/</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 Mike Dawson</shortDescription><userId>mike</userId><userName>Mike Dawson</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>182</buildNumber><marked><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><branch><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><branch><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><branch><SHA1>43cf6b2bc19c2d85aa4828627be9e102f6e66f03</SHA1><name>refs/remotes/origin/main</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>#182</displayName><duration>1393294</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #182</fullDisplayName><id>182</id><inProgress>false</inProgress><keepLog>false</keepLog><number>182</number><queueId>6359</queueId><result>SUCCESS</result><timestamp>1773067826522</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/182/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.json</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/script.js</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/appmanifest.json</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/AppConfigExt.kt</affectedPath><affectedPath>respect-server/README.md</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/index.html</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/cover.png</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.html</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/video.mp4</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/index.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/audio.ogg</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/base.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/app.html</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/icon.webp</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/chimple.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/manifestlist.json</affectedPath><commitId>9f144e8bd0031f9dbed2359cf00990546679d51d</commitId><timestamp>1773042388000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add respect-ds to static files.
</comment><date>2026-03-09 11:46:28 +0400</date><id>9f144e8bd0031f9dbed2359cf00990546679d51d</id><msg>Add respect-ds to static files.</msg><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/app.html</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/AppConfigExt.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/icon.webp</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/video.mp4</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/chimple.json</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/cover.png</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.json</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/manifestlist.json</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/audio.ogg</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/index.json</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/index.html</file></path><path><editType>edit</editType><file>respect-server/README.md</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/base.json</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.html</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/script.js</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/appmanifest.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_app_and_teacher.yaml</affectedPath><commitId>186c38045f53d5a9f156accebfe2c6e4710e93a0</commitId><timestamp>1773050280000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>added test fix- updated the link
</comment><date>2026-03-09 13:58:00 +0400</date><id>186c38045f53d5a9f156accebfe2c6e4710e93a0</id><msg>added test fix- updated the link</msg><path><editType>edit</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_app_and_teacher.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/admin_add_app_and_teacher.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><commitId>d5df27f7ba1605f3028c21684d6f6e4b40bd0a0c</commitId><timestamp>1773050832000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>added test fix- updated the link
</comment><date>2026-03-09 14:07:12 +0400</date><id>d5df27f7ba1605f3028c21684d6f6e4b40bd0a0c</id><msg>added test fix- updated the link</msg><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_app_and_teacher.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>181</buildNumber><marked><SHA1>b5c6efe4ca325bee93f1a001da2c339431442ace</SHA1><branch><SHA1>b5c6efe4ca325bee93f1a001da2c339431442ace</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>b5c6efe4ca325bee93f1a001da2c339431442ace</SHA1><branch><SHA1>b5c6efe4ca325bee93f1a001da2c339431442ace</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>b5c6efe4ca325bee93f1a001da2c339431442ace</SHA1><branch><SHA1>b5c6efe4ca325bee93f1a001da2c339431442ace</SHA1><name>refs/remotes/origin/main</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>#181</displayName><duration>1810643</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #181</fullDisplayName><id>181</id><inProgress>false</inProgress><keepLog>false</keepLog><number>181</number><queueId>6338</queueId><result>FAILURE</result><timestamp>1772989680463</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/181/</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></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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>180</buildNumber><marked><SHA1>b5c6efe4ca325bee93f1a001da2c339431442ace</SHA1><branch><SHA1>b5c6efe4ca325bee93f1a001da2c339431442ace</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>b5c6efe4ca325bee93f1a001da2c339431442ace</SHA1><branch><SHA1>b5c6efe4ca325bee93f1a001da2c339431442ace</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>b5c6efe4ca325bee93f1a001da2c339431442ace</SHA1><branch><SHA1>b5c6efe4ca325bee93f1a001da2c339431442ace</SHA1><name>refs/remotes/origin/main</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>#180</displayName><duration>1755072</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #180</fullDisplayName><id>180</id><inProgress>false</inProgress><keepLog>false</keepLog><number>180</number><queueId>6318</queueId><result>FAILURE</result><timestamp>1772903280464</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/180/</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></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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>179</buildNumber><marked><SHA1>b5c6efe4ca325bee93f1a001da2c339431442ace</SHA1><branch><SHA1>b5c6efe4ca325bee93f1a001da2c339431442ace</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>b5c6efe4ca325bee93f1a001da2c339431442ace</SHA1><branch><SHA1>b5c6efe4ca325bee93f1a001da2c339431442ace</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>b5c6efe4ca325bee93f1a001da2c339431442ace</SHA1><branch><SHA1>b5c6efe4ca325bee93f1a001da2c339431442ace</SHA1><name>refs/remotes/origin/main</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>#179</displayName><duration>1787919</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #179</fullDisplayName><id>179</id><inProgress>false</inProgress><keepLog>false</keepLog><number>179</number><queueId>6298</queueId><result>FAILURE</result><timestamp>1772816880464</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/179/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/AppConfigExt.kt</affectedPath><affectedPath>respect-server/README.md</affectedPath><commitId>b5c6efe4ca325bee93f1a001da2c339431442ace</commitId><timestamp>1772733909000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add support for a property to serve static files on respect-server for end-to-end test purposes.
</comment><date>2026-03-05 22:05:09 +0400</date><id>b5c6efe4ca325bee93f1a001da2c339431442ace</id><msg>Add support for a property to serve static files on respect-server for end-to-end test purposes.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/AppConfigExt.kt</file></path><path><editType>edit</editType><file>respect-server/README.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>178</buildNumber><marked><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</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>#178</displayName><duration>1347888</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #178</fullDisplayName><id>178</id><inProgress>false</inProgress><keepLog>false</keepLog><number>178</number><queueId>6278</queueId><result>FAILURE</result><timestamp>1772730480463</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/178/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>177</buildNumber><marked><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</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>#177</displayName><duration>1868262</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #177</fullDisplayName><id>177</id><inProgress>false</inProgress><keepLog>false</keepLog><number>177</number><queueId>6258</queueId><result>FAILURE</result><timestamp>1772644080463</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/177/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>176</buildNumber><marked><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</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>#176</displayName><duration>1720358</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #176</fullDisplayName><id>176</id><inProgress>false</inProgress><keepLog>false</keepLog><number>176</number><queueId>6238</queueId><result>SUCCESS</result><timestamp>1772557680463</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/176/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>175</buildNumber><marked><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</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>#175</displayName><duration>2159508</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #175</fullDisplayName><id>175</id><inProgress>false</inProgress><keepLog>false</keepLog><number>175</number><queueId>6217</queueId><result>SUCCESS</result><timestamp>1772471280464</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/175/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>174</buildNumber><marked><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</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>#174</displayName><duration>2167113</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #174</fullDisplayName><id>174</id><inProgress>false</inProgress><keepLog>false</keepLog><number>174</number><queueId>6193</queueId><result>SUCCESS</result><timestamp>1772384880463</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/174/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>173</buildNumber><marked><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</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>#173</displayName><duration>2020520</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #173</fullDisplayName><id>173</id><inProgress>false</inProgress><keepLog>false</keepLog><number>173</number><queueId>6173</queueId><result>SUCCESS</result><timestamp>1772298480464</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/173/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>172</buildNumber><marked><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</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>#172</displayName><duration>1883158</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #172</fullDisplayName><id>172</id><inProgress>false</inProgress><keepLog>false</keepLog><number>172</number><queueId>6153</queueId><result>FAILURE</result><timestamp>1772212080464</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/172/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>171</buildNumber><marked><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</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>#171</displayName><duration>2266274</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #171</fullDisplayName><id>171</id><inProgress>false</inProgress><keepLog>false</keepLog><number>171</number><queueId>6128</queueId><result>SUCCESS</result><timestamp>1772125680198</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/171/</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 Pooja Ravi</shortDescription><userId>pooja</userId><userName>Pooja Ravi</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>170</buildNumber><marked><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</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>#170</displayName><duration>2501098</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #170</fullDisplayName><id>170</id><inProgress>false</inProgress><keepLog>false</keepLog><number>170</number><queueId>6116</queueId><result>SUCCESS</result><timestamp>1772086463902</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/170/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>169</buildNumber><marked><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</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-cli.zip</displayPath><fileName>respect-cli.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli.zip</relativePath></artifact><building>false</building><displayName>#169</displayName><duration>81422</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #169</fullDisplayName><id>169</id><inProgress>false</inProgress><keepLog>false</keepLog><number>169</number><queueId>6106</queueId><result>FAILURE</result><timestamp>1772039280198</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/169/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>168</buildNumber><marked><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</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>#168</displayName><duration>2712873</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #168</fullDisplayName><id>168</id><inProgress>false</inProgress><keepLog>false</keepLog><number>168</number><queueId>6085</queueId><result>SUCCESS</result><timestamp>1771952880198</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/168/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>167</buildNumber><marked><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</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>#167</displayName><duration>1630762</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #167</fullDisplayName><id>167</id><inProgress>false</inProgress><keepLog>false</keepLog><number>167</number><queueId>6065</queueId><result>SUCCESS</result><timestamp>1771866480198</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/167/</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 Mike Dawson</shortDescription><userId>mike</userId><userName>Mike Dawson</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>166</buildNumber><marked><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</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>#166</displayName><duration>1419044</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #166</fullDisplayName><id>166</id><inProgress>false</inProgress><keepLog>false</keepLog><number>166</number><queueId>6056</queueId><result>SUCCESS</result><timestamp>1771836879677</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/166/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>165</buildNumber><marked><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</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-cli.zip</displayPath><fileName>respect-cli.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli.zip</relativePath></artifact><building>false</building><displayName>#165</displayName><duration>84405</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #165</fullDisplayName><id>165</id><inProgress>false</inProgress><keepLog>false</keepLog><number>165</number><queueId>6044</queueId><result>FAILURE</result><timestamp>1771780080090</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/165/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>164</buildNumber><marked><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</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>#164</displayName><duration>1510057</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #164</fullDisplayName><id>164</id><inProgress>false</inProgress><keepLog>false</keepLog><number>164</number><queueId>6024</queueId><result>SUCCESS</result><timestamp>1771693680090</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/164/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>163</buildNumber><marked><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</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>#163</displayName><duration>1997140</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #163</fullDisplayName><id>163</id><inProgress>false</inProgress><keepLog>false</keepLog><number>163</number><queueId>6004</queueId><result>SUCCESS</result><timestamp>1771607280090</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/163/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>162</buildNumber><marked><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</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>#162</displayName><duration>1800156</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #162</fullDisplayName><id>162</id><inProgress>false</inProgress><keepLog>false</keepLog><number>162</number><queueId>5984</queueId><result>FAILURE</result><timestamp>1771520880089</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/162/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>161</buildNumber><marked><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</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>#161</displayName><duration>2359970</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #161</fullDisplayName><id>161</id><inProgress>false</inProgress><keepLog>false</keepLog><number>161</number><queueId>5958</queueId><result>SUCCESS</result><timestamp>1771445280689</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/161/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>160</buildNumber><marked><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</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>#160</displayName><duration>1840780</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #160</fullDisplayName><id>160</id><inProgress>false</inProgress><keepLog>false</keepLog><number>160</number><queueId>5937</queueId><result>SUCCESS</result><timestamp>1771358880689</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/160/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>159</buildNumber><marked><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</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>#159</displayName><duration>2111908</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #159</fullDisplayName><id>159</id><inProgress>false</inProgress><keepLog>false</keepLog><number>159</number><queueId>5917</queueId><result>SUCCESS</result><timestamp>1771272480689</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/159/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>158</buildNumber><marked><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</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>#158</displayName><duration>1881502</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #158</fullDisplayName><id>158</id><inProgress>false</inProgress><keepLog>false</keepLog><number>158</number><queueId>5895</queueId><result>SUCCESS</result><timestamp>1771186080698</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/158/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>157</buildNumber><marked><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</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>#157</displayName><duration>1580750</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #157</fullDisplayName><id>157</id><inProgress>false</inProgress><keepLog>false</keepLog><number>157</number><queueId>5878</queueId><result>SUCCESS</result><timestamp>1771099680689</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/157/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>156</buildNumber><marked><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><branch><SHA1>15c20a787b7792fcccc3790ef8bc343a052f11f2</SHA1><name>refs/remotes/origin/main</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>#156</displayName><duration>2057190</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #156</fullDisplayName><id>156</id><inProgress>false</inProgress><keepLog>false</keepLog><number>156</number><queueId>5861</queueId><result>SUCCESS</result><timestamp>1771013280689</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/156/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</affectedPath><commitId>024b6ee69575fc69c47c648882a5097bdff865ec</commitId><timestamp>1770979047000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix AddSchoolUseCase: AddSchoolUseCase incorrectly set approval required after on the sys admin role invite in the distant future.
</comment><date>2026-02-13 14:37:27 +0400</date><id>024b6ee69575fc69c47c648882a5097bdff865ec</id><msg>Fix AddSchoolUseCase: AddSchoolUseCase incorrectly set approval required after on the sys admin role invite in the distant future.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>DESIGN_GUIDELINES.md</affectedPath><commitId>b43bc6dba12bbd4fbba6dbd0170e54a598cabd14</commitId><timestamp>1770989142000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update DESIGN_GUIDELINES.md
</comment><date>2026-02-13 17:25:42 +0400</date><id>b43bc6dba12bbd4fbba6dbd0170e54a598cabd14</id><msg>Update DESIGN_GUIDELINES.md</msg><path><editType>edit</editType><file>DESIGN_GUIDELINES.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>DESIGN_GUIDELINES.md</affectedPath><commitId>15c20a787b7792fcccc3790ef8bc343a052f11f2</commitId><timestamp>1770993558000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update DESIGN_GUIDELINES.md
</comment><date>2026-02-13 18:39:18 +0400</date><id>15c20a787b7792fcccc3790ef8bc343a052f11f2</id><msg>Update DESIGN_GUIDELINES.md</msg><path><editType>edit</editType><file>DESIGN_GUIDELINES.md</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/noreply</absoluteUrl><fullName>noreply</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>155</buildNumber><marked><SHA1>8fb5270e4832206b4b5deff7dcc29be45b3259f0</SHA1><branch><SHA1>8fb5270e4832206b4b5deff7dcc29be45b3259f0</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>8fb5270e4832206b4b5deff7dcc29be45b3259f0</SHA1><branch><SHA1>8fb5270e4832206b4b5deff7dcc29be45b3259f0</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>8fb5270e4832206b4b5deff7dcc29be45b3259f0</SHA1><branch><SHA1>8fb5270e4832206b4b5deff7dcc29be45b3259f0</SHA1><name>refs/remotes/origin/main</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>#155</displayName><duration>2438689</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #155</fullDisplayName><id>155</id><inProgress>false</inProgress><keepLog>false</keepLog><number>155</number><queueId>5844</queueId><result>SUCCESS</result><timestamp>1770926880986</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/155/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>DESIGN_GUIDELINES.md</affectedPath><commitId>8fb5270e4832206b4b5deff7dcc29be45b3259f0</commitId><timestamp>1770893768000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update DESIGN_GUIDELINES.md

Clarify the information sources that are admissable for a prototype to be considered unambiguous.
</comment><date>2026-02-12 14:56:08 +0400</date><id>8fb5270e4832206b4b5deff7dcc29be45b3259f0</id><msg>Update DESIGN_GUIDELINES.md</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></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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>154</buildNumber><marked><SHA1>adb9f015a71aa1cbc01126cdbd9f12d93f0ede07</SHA1><branch><SHA1>adb9f015a71aa1cbc01126cdbd9f12d93f0ede07</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>adb9f015a71aa1cbc01126cdbd9f12d93f0ede07</SHA1><branch><SHA1>adb9f015a71aa1cbc01126cdbd9f12d93f0ede07</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>adb9f015a71aa1cbc01126cdbd9f12d93f0ede07</SHA1><branch><SHA1>adb9f015a71aa1cbc01126cdbd9f12d93f0ede07</SHA1><name>refs/remotes/origin/main</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>#154</displayName><duration>2415223</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #154</fullDisplayName><id>154</id><inProgress>false</inProgress><keepLog>false</keepLog><number>154</number><queueId>5827</queueId><result>SUCCESS</result><timestamp>1770840480986</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/154/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>DESIGN_GUIDELINES.md</affectedPath><commitId>23f91bb8dab4aa70af62132bd40feaafba7a5988</commitId><timestamp>1770804208000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update DESIGN_GUIDELINES.md

Clarify guidance re. screens that are not modified and required text fields.
</comment><date>2026-02-11 14:03:28 +0400</date><id>23f91bb8dab4aa70af62132bd40feaafba7a5988</id><msg>Update DESIGN_GUIDELINES.md</msg><path><editType>edit</editType><file>DESIGN_GUIDELINES.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>DESIGN_GUIDELINES.md</affectedPath><commitId>cb92ab8be54303e456dd743ddd5590c606194a50</commitId><timestamp>1770805975000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update DESIGN_GUIDELINES.md
</comment><date>2026-02-11 14:32:55 +0400</date><id>cb92ab8be54303e456dd743ddd5590c606194a50</id><msg>Update DESIGN_GUIDELINES.md</msg><path><editType>edit</editType><file>DESIGN_GUIDELINES.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>DESIGN_GUIDELINES.md</affectedPath><commitId>adb9f015a71aa1cbc01126cdbd9f12d93f0ede07</commitId><timestamp>1770806071000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update DESIGN_GUIDELINES.md
</comment><date>2026-02-11 14:34:31 +0400</date><id>adb9f015a71aa1cbc01126cdbd9f12d93f0ede07</id><msg>Update DESIGN_GUIDELINES.md</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></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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>153</buildNumber><marked><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><branch><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><branch><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><branch><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><name>refs/remotes/origin/main</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>#153</displayName><duration>3403788</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #153</fullDisplayName><id>153</id><inProgress>false</inProgress><keepLog>false</keepLog><number>153</number><queueId>5805</queueId><result>SUCCESS</result><timestamp>1770754080986</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/153/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>152</buildNumber><marked><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><branch><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><branch><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><branch><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><name>refs/remotes/origin/main</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>#152</displayName><duration>2225782</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #152</fullDisplayName><id>152</id><inProgress>false</inProgress><keepLog>false</keepLog><number>152</number><queueId>5785</queueId><result>FAILURE</result><timestamp>1770667680995</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/152/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>151</buildNumber><marked><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><branch><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><branch><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><branch><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><name>refs/remotes/origin/main</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>#151</displayName><duration>1712428</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #151</fullDisplayName><id>151</id><inProgress>false</inProgress><keepLog>false</keepLog><number>151</number><queueId>5767</queueId><result>FAILURE</result><timestamp>1770581280985</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/151/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>150</buildNumber><marked><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><branch><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><branch><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><branch><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><name>refs/remotes/origin/main</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>#150</displayName><duration>2211212</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #150</fullDisplayName><id>150</id><inProgress>false</inProgress><keepLog>false</keepLog><number>150</number><queueId>5749</queueId><result>SUCCESS</result><timestamp>1770494880986</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/150/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>149</buildNumber><marked><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><branch><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><branch><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><branch><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><name>refs/remotes/origin/main</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.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>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>#149</displayName><duration>2148207</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #149</fullDisplayName><id>149</id><inProgress>false</inProgress><keepLog>false</keepLog><number>149</number><queueId>5731</queueId><result>FAILURE</result><timestamp>1770408480442</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/149/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>148</buildNumber><marked><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><branch><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><branch><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><branch><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><name>refs/remotes/origin/main</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>#148</displayName><duration>1802992</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #148</fullDisplayName><id>148</id><inProgress>false</inProgress><keepLog>false</keepLog><number>148</number><queueId>5713</queueId><result>SUCCESS</result><timestamp>1770322080442</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/148/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>147</buildNumber><marked><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><branch><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><branch><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><branch><SHA1>8a904b556b33d8e23e7ed75cd6ab1698149933c8</SHA1><name>refs/remotes/origin/main</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>#147</displayName><duration>1487777</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #147</fullDisplayName><id>147</id><inProgress>false</inProgress><keepLog>false</keepLog><number>147</number><queueId>5693</queueId><result>SUCCESS</result><timestamp>1770235680705</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/147/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</affectedPath><commitId>5e4c70056e1e0bdc4fc0dea403d48cda0d6acfc5</commitId><timestamp>1770206948000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add hidekeyboad logic in Jetpack compose to attempt to avoid flakiness on Maestro test.
</comment><date>2026-02-04 16:09:08 +0400</date><id>5e4c70056e1e0bdc4fc0dea403d48cda0d6acfc5</id><msg>Add hidekeyboad logic in Jetpack compose to attempt to avoid flakiness on Maestro test.</msg><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>ARCHITECTURE.md</affectedPath><affectedPath>README.md</affectedPath><commitId>d5b263244ba545af39f206e36497610672aafe10</commitId><timestamp>1770210588000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update README and ARCHITECTURE docs.
</comment><date>2026-02-04 17:09:48 +0400</date><id>d5b263244ba545af39f206e36497610672aafe10</id><msg>Update README and ARCHITECTURE docs.</msg><path><editType>edit</editType><file>ARCHITECTURE.md</file></path><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>DESIGN_GUIDELINES.md</affectedPath><affectedPath>CODING_GUIDELINES.md</affectedPath><affectedPath>ARCHITECTURE.md</affectedPath><commitId>ee345bcb2f29e397b7fc60ba50e027f02b0ae083</commitId><timestamp>1770215996000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update architecture, design, and coding guidelines.
</comment><date>2026-02-04 18:39:56 +0400</date><id>ee345bcb2f29e397b7fc60ba50e027f02b0ae083</id><msg>Update architecture, design, and coding guidelines.</msg><path><editType>add</editType><file>CODING_GUIDELINES.md</file></path><path><editType>edit</editType><file>DESIGN_GUIDELINES.md</file></path><path><editType>edit</editType><file>ARCHITECTURE.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>DESIGN_GUIDELINES.md</affectedPath><affectedPath>CODING_GUIDELINES.md</affectedPath><commitId>0f8ce0d686f4e787cbb44dfaaa945c2a01fe7b15</commitId><timestamp>1770216078000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix case.
</comment><date>2026-02-04 18:41:18 +0400</date><id>0f8ce0d686f4e787cbb44dfaaa945c2a01fe7b15</id><msg>Fix case.</msg><path><editType>edit</editType><file>DESIGN_GUIDELINES.md</file></path><path><editType>edit</editType><file>CODING_GUIDELINES.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CODING_GUIDELINES.md</affectedPath><commitId>8a904b556b33d8e23e7ed75cd6ab1698149933c8</commitId><timestamp>1770216486000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Clarify domain layer use case.
</comment><date>2026-02-04 18:48:06 +0400</date><id>8a904b556b33d8e23e7ed75cd6ab1698149933c8</id><msg>Clarify domain layer use case.</msg><path><editType>edit</editType><file>CODING_GUIDELINES.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>146</buildNumber><marked><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><branch><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><branch><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><branch><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><name>refs/remotes/origin/main</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>#146</displayName><duration>1750098</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #146</fullDisplayName><id>146</id><inProgress>false</inProgress><keepLog>false</keepLog><number>146</number><queueId>5671</queueId><result>FAILURE</result><timestamp>1770149280099</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/146/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>145</buildNumber><marked><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><branch><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><branch><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><branch><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><name>refs/remotes/origin/main</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>#145</displayName><duration>1462124</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #145</fullDisplayName><id>145</id><inProgress>false</inProgress><keepLog>false</keepLog><number>145</number><queueId>5655</queueId><result>SUCCESS</result><timestamp>1770062880100</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/145/</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 Mike Dawson</shortDescription><userId>mike</userId><userName>Mike Dawson</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>144</buildNumber><marked><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><branch><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><branch><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><branch><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><name>refs/remotes/origin/main</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>#144</displayName><duration>1438819</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #144</fullDisplayName><id>144</id><inProgress>false</inProgress><keepLog>false</keepLog><number>144</number><queueId>5643</queueId><result>SUCCESS</result><timestamp>1770030397025</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/144/</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/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</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 Mike Dawson</shortDescription><userId>mike</userId><userName>Mike Dawson</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>143</buildNumber><marked><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><branch><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><branch><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><branch><SHA1>63a68e5a5a99741463fde7d18889bdd5a7fb9e47</SHA1><name>refs/remotes/origin/main</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>001_001_invite_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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><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>#143</displayName><duration>1351311</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #143</fullDisplayName><id>143</id><inProgress>false</inProgress><keepLog>false</keepLog><number>143</number><queueId>5642</queueId><result>ABORTED</result><timestamp>1770028950609</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/143/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/ExpandableFab.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/ExpandableFabUiState.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppUiState.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>fd857c57224be733a3b256b56a079364f77f95fb</commitId><timestamp>1762939342000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>expandable fab added
</comment><date>2025-11-12 14:52:22 +0530</date><id>fd857c57224be733a3b256b56a079364f77f95fb</id><msg>expandable fab added</msg><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.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/app/appstate/AppUiState.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/ExpandableFab.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/ExpandableFabUiState.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/school/AddSchoolScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/school/HostSelectionScreen.kt</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/CustomTabLauncher.desktop.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/school/HostSelectionViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/school/AddSchoolViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/CustomTabLauncher.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/CustomTabLauncher.android.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>ab33494d5105480ce9df6f01c8f87c15a50864ab</commitId><timestamp>1763023669000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>Add school self-service
</comment><date>2025-11-13 14:17:49 +0530</date><id>ab33494d5105480ce9df6f01c8f87c15a50864ab</id><msg>Add school self-service</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/CustomTabLauncher.android.kt</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>add</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/CustomTabLauncher.desktop.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/school/AddSchoolScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/school/HostSelectionViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/CustomTabLauncher.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/school/AddSchoolViewModel.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-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/school/HostSelectionScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/drawable/copycode.png</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/copycode/CopyInviteCodeScreen.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/RespectApp.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/person/copycode/CopyInviteCodeViewModel.kt</affectedPath><commitId>ebedfd01cdc2b2315dc57e8e1308b0e42aa9bea2</commitId><timestamp>1763025717000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>copy invite code screen added
</comment><date>2025-11-13 14:51:57 +0530</date><id>ebedfd01cdc2b2315dc57e8e1308b0e42aa9bea2</id><msg>copy invite code screen added</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/RespectApp.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/composeResources/drawable/copycode.png</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/copycode/CopyInviteCodeScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.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-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/copycode/CopyInviteCodeViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/InviteEntity.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/InviteDataSourceRepository.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/8.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/InviteAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteRoute.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/InviteEntityDao.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/SchoolDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><commitId>3cabf78d1318f0300a4e711d1be1ab3f8b63978a</commitId><timestamp>1763043753000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>invitedatasource added
</comment><date>2025-11-13 19:52:33 +0530</date><id>3cabf78d1318f0300a4e711d1be1ab3f8b63978a</id><msg>invitedatasource added</msg><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path><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/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/InviteAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/InviteEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.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/InviteDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSourceLocal.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-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/SchoolDataSourceLocal.kt</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/InviteDataSourceRepository.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/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSource.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteRoute.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/InviteEntity.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/sharelink/SmsLinkLauncher.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/sendinvite/EmailLinkLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/sendinvite/ShareLinkLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolPrimaryKeyGenerator.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/sharelink/ShareLinkLauncher.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/sendinvite/SmsLinkLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/RespectURLEncoder.android.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/sharelink/EmailLinkLauncher.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RespectFileUtil.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createlink/CreateLinkUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RespectURLEncoder.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RespectUrlComponents.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RespectTinCanUtil.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/copycode/CopyInviteCodeViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/util/RespectURLEncoder.jvm.kt</affectedPath><commitId>729028fba031b218cfd91876b3d5ccf08415b0e4</commitId><timestamp>1763378546000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>share link added
</comment><date>2025-11-17 16:52:26 +0530</date><id>729028fba031b218cfd91876b3d5ccf08415b0e4</id><msg>share link added</msg><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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/copycode/CopyInviteCodeViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/sharelink/EmailLinkLauncher.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/sendinvite/SmsLinkLauncherAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/util/RespectURLEncoder.jvm.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/sharelink/ShareLinkLauncher.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/sharelink/SmsLinkLauncher.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createlink/CreateLinkUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RespectFileUtil.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RespectTinCanUtil.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/sendinvite/ShareLinkLauncherAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RespectUrlComponents.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/sendinvite/EmailLinkLauncherAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/RespectURLEncoder.android.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RespectURLEncoder.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>respect-server/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCase.kt</affectedPath><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/school/AddSchoolScreen.kt</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/CustomTabLauncher.desktop.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/schoolRegistrationWebRoute.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/SchoolConfig.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/school/HostSelectionViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/school/AddSchoolViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/CustomTabLauncher.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/CustomTabLauncher.android.kt</affectedPath><affectedPath>respect-server/src/main/resources/application.conf</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>40bb6fb9f6efc1a62f9c4f3fd2c141174f20b579</commitId><timestamp>1763437182000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>Add school self-service
</comment><date>2025-11-18 09:09:42 +0530</date><id>40bb6fb9f6efc1a62f9c4f3fd2c141174f20b579</id><msg>Add school self-service</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/CustomTabLauncher.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/application.conf</file></path><path><editType>edit</editType><file>respect-lib-shared/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</file></path><path><editType>delete</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/CustomTabLauncher.desktop.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/schoolRegistrationWebRoute.kt</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/CustomTabLauncher.android.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/school/AddSchoolViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/school/HostSelectionViewModel.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-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-server/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/school/AddSchoolScreen.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/SchoolConfig.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><commitId>6e9f7b43ece08c616570a6e6249a8a035c817f4b</commitId><timestamp>1763449526000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>classname or school name is added
and role will show accoring to role selected during inviting in class
</comment><date>2025-11-18 12:35:26 +0530</date><id>6e9f7b43ece08c616570a6e6249a8a035c817f4b</id><msg>classname or school name is added</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.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/clazz/detail/ClazzDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/schoolRegistrationWebRoute.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/DeepLinkConstants.kt</affectedPath><commitId>090cfb43403aff6c032b49ed6678f3a2d06f07f2</commitId><timestamp>1763462809000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>refactor
</comment><date>2025-11-18 16:16:49 +0530</date><id>090cfb43403aff6c032b49ed6678f3a2d06f07f2</id><msg>refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/DeepLinkConstants.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/schoolRegistrationWebRoute.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><commitId>eba85211df7b1212bb539bb20ef60a506b752fb9</commitId><timestamp>1763543325000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>refactor
</comment><date>2025-11-19 14:38:45 +0530</date><id>eba85211df7b1212bb539bb20ef60a506b752fb9</id><msg>refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/ext/ExceptionExtensions.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.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/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/school/HostSelectionScreen.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/schoolRegistrationWebRoute.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/school/HostSelectionViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>2484201d8725e60ba470bad6d0a0d34e2ce57a37</commitId><timestamp>1763633106000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>fix comments
</comment><date>2025-11-20 15:35:06 +0530</date><id>2484201d8725e60ba470bad6d0a0d34e2ce57a37</id><msg>fix comments</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/school/HostSelectionScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.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-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/school/HostSelectionViewModel.kt</file></path><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/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCase.kt</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/schoolRegistrationWebRoute.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/util/ext/ExceptionExtensions.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/InviteEntity.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/sharelink/SmsLinkLauncher.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/sendinvite/EmailLinkLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/SmsLinkLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/GetInviteInfoUseCaseClient.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/SmsLinkLauncher.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/sharelink/ShareLinkLauncher.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/ShareLinkLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/sendinvite/SmsLinkLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/EmailLinkLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RespectFileUtil.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RespectUrlComponents.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AbstractAppActivity.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/util/RespectTinCanUtil.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/EmailLinkLauncher.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseClient.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/RespectComposeNavController.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/sendinvite/ShareLinkLauncherAndroid.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectInviteInfo.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/RespectURLEncoder.android.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteCreateRoute.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/InviteAdapter.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/sharelink/EmailLinkLauncher.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/util/RespectURLEncoder.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createlink/CreateLinkUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteInfoRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/confirmation/ConfirmationViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/InviteEntityDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/ShareLinkLauncher.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/CreateInviteUseCaseServer.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/GetInviteInfoUseCase.kt</affectedPath><commitId>7f66db2a80521599bafe45acfcd5fa6bb007dab8</commitId><timestamp>1763972050000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>CreateInviteUseCase.kt added
</comment><date>2025-11-24 13:44:10 +0530</date><id>7f66db2a80521599bafe45acfcd5fa6bb007dab8</id><msg>CreateInviteUseCase.kt added</msg><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/EmailLinkLauncherAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/ShareLinkLauncher.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/GetInviteInfoUseCaseClient.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RespectTinCanUtil.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.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/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.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/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/InviteAdapter.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/sendinvite/SmsLinkLauncherAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RespectUrlComponents.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AbstractAppActivity.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/sendinvite/EmailLinkLauncherAndroid.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/account/invite/CreateInviteUseCaseServer.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/sendinvite/ShareLinkLauncherAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/sharelink/SmsLinkLauncher.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/ShareLinkLauncherAndroid.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectInviteInfo.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/sharelink/EmailLinkLauncher.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RespectURLEncoder.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/sharelink/ShareLinkLauncher.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/confirmation/ConfirmationViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/InviteEntityDao.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/SmsLinkLauncher.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/RespectURLEncoder.android.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createlink/CreateLinkUseCase.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteCreateRoute.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-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/InviteEntity.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/SmsLinkLauncherAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/GetInviteInfoUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteInfoRoute.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RespectFileUtil.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/RespectComposeNavController.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseClient.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/EmailLinkLauncher.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/InviteEntity.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/confirmation/ConfirmationScreen.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/termsandcondition/TermsAndConditionViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AbstractAppActivity.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseClient.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RespectRedeemInviteRequest.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectInviteInfo.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/InviteAdapter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/confirmation/ConfirmationViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/CreateInviteUseCaseServer.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/util/RespectURLEncoder.jvm.kt</affectedPath><commitId>bcfc2b54eb5658da356186efd47959acb05d7d4c</commitId><timestamp>1764152130000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>fixed personinvite issues
</comment><date>2025-11-26 15:45:30 +0530</date><id>bcfc2b54eb5658da356186efd47959acb05d7d4c</id><msg>fixed personinvite issues</msg><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/InviteAdapter.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/termsandcondition/TermsAndConditionViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectInviteInfo.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/account/invite/CreateInviteUseCaseServer.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-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/confirmation/ConfirmationViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/InviteEntity.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseClient.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/confirmation/ConfirmationScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.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-app-compose/src/androidMain/kotlin/world/respect/AbstractAppActivity.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/util/RespectURLEncoder.jvm.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/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RespectRedeemInviteRequest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>320f2813a91a297ec97ed0f335e8129b9b0306c4</commitId><timestamp>1764153476000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>update with main
</comment><date>2025-11-26 16:07:56 +0530</date><id>320f2813a91a297ec97ed0f335e8129b9b0306c4</id><msg>update with main</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.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-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/CreateInviteUseCaseServer.kt</affectedPath><affectedPath>respect-server/src/main/resources/application.conf</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>9101919b1904a37d3b02b10b0c20f61ca2971d4a</commitId><timestamp>1764577103000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>refactor
</comment><date>2025-12-01 13:48:23 +0530</date><id>9101919b1904a37d3b02b10b0c20f61ca2971d4a</id><msg>refactor</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/account/invite/CreateInviteUseCaseServer.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/application.conf</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><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-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/GetInviteInfoUseCaseClient.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/confirmation/ConfirmationScreen.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseClient.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassEntity.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/InviteDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Clazz.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ClassAdapter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RespectRedeemInviteRequest.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroptionsignup/OtherOptionsSignupViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteRoute.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteInfoRoute.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/InviteEntityDao.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/confirmation/ConfirmationViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/account/invite/RedeemInviteIntegrationTest.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/CreateInviteUseCaseServer.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/GetInviteInfoUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt</affectedPath><commitId>b7f72b0ad3d99dee4331439e27d4892128fa9e67</commitId><timestamp>1764585318000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>fixed classinvte changes
</comment><date>2025-12-01 16:05:18 +0530</date><id>b7f72b0ad3d99dee4331439e27d4892128fa9e67</id><msg>fixed classinvte changes</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/InviteEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Clazz.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSource.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-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroptionsignup/OtherOptionsSignupViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/GetInviteInfoUseCaseClient.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ClassAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.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-server/src/main/kotlin/world/respect/server/account/invite/CreateInviteUseCaseServer.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/GetInviteInfoUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/account/invite/RedeemInviteIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/confirmation/ConfirmationViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RespectRedeemInviteRequest.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteInfoRoute.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseClient.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/InviteDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteRoute.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/confirmation/ConfirmationScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AddChildAccountRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDataSource.kt</affectedPath><commitId>5d25406986d8d383f1dcbea9b186bb0d52a8472a</commitId><timestamp>1764591584000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>changes for family invite
</comment><date>2025-12-01 17:49:44 +0530</date><id>5d25406986d8d383f1dcbea9b186bb0d52a8472a</id><msg>changes for family invite</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AddChildAccountRoute.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/InviteEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/InviteAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</affectedPath><commitId>5d0da03b596554bd1c009f1c7903f731ccb1613c</commitId><timestamp>1764662045000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>first user field added
</comment><date>2025-12-02 13:24:05 +0530</date><id>5d0da03b596554bd1c009f1c7903f731ccb1613c</id><msg>first user field added</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/InviteAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/InviteEntity.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/confirmation/ConfirmationScreen.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AddChildAccountRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/confirmation/ConfirmationViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDataSource.kt</affectedPath><commitId>635f174f580113c1a9b17fb4782b1591acfd3523</commitId><timestamp>1764750258000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>changes for family invite
</comment><date>2025-12-03 13:54:18 +0530</date><id>635f174f580113c1a9b17fb4782b1591acfd3523</id><msg>changes for family invite</msg><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-server/src/main/kotlin/world/respect/server/routes/school/respect/AddChildAccountRoute.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.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-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/confirmation/ConfirmationViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/confirmation/ConfirmationScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/copycode/CopyInviteCodeViewModel.kt</affectedPath><commitId>0a7d500df557d2c5c15dd0310c50171d98f215d9</commitId><timestamp>1767781942000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment> invite flow updates
</comment><date>2026-01-07 16:02:22 +0530</date><id>0a7d500df557d2c5c15dd0310c50171d98f215d9</id><msg>invite flow updates</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/copycode/CopyInviteCodeViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.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/manageuser/profile/SignupViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</affectedPath><commitId>211ac614ff7370e0764ff4c66a7dbe78986fc33c</commitId><timestamp>1767870423000</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-01-08 16:37:03 +0530</date><id>211ac614ff7370e0764ff4c66a7dbe78986fc33c</id><msg>commit</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/message_open_invite_link.yaml</affectedPath><affectedPath>.maestro/flows/subflows/message_paste_invite_link.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_class.yaml</affectedPath><affectedPath>.maestro/flows/001_001b_invite_using_invitelink_qrcode_test.yaml</affectedPath><commitId>e9e612b8eb6129ebc3d6a2ac28c70fa9cab119db</commitId><timestamp>1767874784000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>added test
</comment><date>2026-01-08 16:19:44 +0400</date><id>e9e612b8eb6129ebc3d6a2ac28c70fa9cab119db</id><msg>added test</msg><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_class.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/message_open_invite_link.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_001b_invite_using_invitelink_qrcode_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/message_paste_invite_link.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</affectedPath><commitId>6c4185e3cc62dd3a29a56dde4348db78c26445c4</commitId><timestamp>1767887299000</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-01-08 21:18:19 +0530</date><id>6c4185e3cc62dd3a29a56dde4348db78c26445c4</id><msg>commit</msg><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</affectedPath><commitId>b68b09e5e766d0a5b1962647faa256057cfae0ac</commitId><timestamp>1768149176000</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-01-11 22:02:56 +0530</date><id>b68b09e5e766d0a5b1962647faa256057cfae0ac</id><msg>commit</msg><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_001b_invite_using_invitelink_qrcode_test.yaml</affectedPath><commitId>c136360c9bf8fe20b1c1c3fbf5fef73be2ecc8e9</commitId><timestamp>1768218905000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test flow
</comment><date>2026-01-12 15:55:05 +0400</date><id>c136360c9bf8fe20b1c1c3fbf5fef73be2ecc8e9</id><msg>updated test flow</msg><path><editType>edit</editType><file>.maestro/flows/001_001b_invite_using_invitelink_qrcode_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_001_invite_users_using_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_app_and_teacher.yaml</affectedPath><affectedPath>.maestro/flows/001_001b_invite_using_invitelink_qrcode_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_using_invite_code_test.yaml</affectedPath><commitId>23f299a120b1cdd5f27576ba008a135f64690d82</commitId><timestamp>1768380953000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test with latest changes
</comment><date>2026-01-14 12:55:53 +0400</date><id>23f299a120b1cdd5f27576ba008a135f64690d82</id><msg>updated test with latest changes</msg><path><editType>delete</editType><file>.maestro/flows/001_001b_invite_using_invitelink_qrcode_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_app_and_teacher.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_001_invite_using_invite_code_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_001_invite_users_using_code_or_link_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_001_invite_users_using_code_or_link_test.yaml</affectedPath><commitId>0e7acc2b6343aa775ad5039fca4255e119d2a0a8</commitId><timestamp>1768385067000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test command
</comment><date>2026-01-14 14:04:27 +0400</date><id>0e7acc2b6343aa775ad5039fca4255e119d2a0a8</id><msg>updated test command</msg><path><editType>edit</editType><file>.maestro/flows/001_001_invite_users_using_code_or_link_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDataSource.kt</affectedPath><commitId>2be2eed543ebdf7e251e6705da0b471c825d4fb3</commitId><timestamp>1768385510000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>redeem invite changes
</comment><date>2026-01-14 15:41:50 +0530</date><id>2be2eed543ebdf7e251e6705da0b471c825d4fb3</id><msg>redeem invite changes</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/copycode/CopyInviteCodeScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</affectedPath><commitId>303462d66f3caf846755753e8867590c5c11fae3</commitId><timestamp>1768388183000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment> invite screen changes
</comment><date>2026-01-14 16:26:23 +0530</date><id>303462d66f3caf846755753e8867590c5c11fae3</id><msg>invite screen changes</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/copycode/CopyInviteCodeScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_001_invite_users_using_code_or_link_test.yaml</affectedPath><commitId>1c0cc68aced91adcff1d05d633326f0887dfa632</commitId><timestamp>1768812921000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test
</comment><date>2026-01-19 12:55:21 +0400</date><id>1c0cc68aced91adcff1d05d633326f0887dfa632</id><msg>updated test</msg><path><editType>edit</editType><file>.maestro/flows/001_001_invite_users_using_code_or_link_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/InviteEntity.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonAdapter.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/SmsLinkLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/SmsLinkLauncher.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/ShareLinkLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendEmailUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendSmsUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchShareLinkAndroid.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/EmailLinkLauncherAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSource.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseDataSource.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AbstractAppActivity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerParams.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/EmailLinkLauncher.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseClient.kt</affectedPath><affectedPath>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/InstantAsISO8601Extensions.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendEmailAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/RespectApp.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/InviteStatusEnum.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteCreateRoute.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/InviteAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/InviteEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchShareLinkUseCase.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/ShareLinkLauncher.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/CreateInviteUseCaseServer.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendSmsAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt</affectedPath><commitId>ba6545b83f356bc88ecda42b9d1bcb562ed0cdea</commitId><timestamp>1768927420000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>The invite launcher name change.Create invite, client and server side use case removed and data source added.and changes related to pull request comments.
</comment><date>2026-01-20 22:13:40 +0530</date><id>ba6545b83f356bc88ecda42b9d1bcb562ed0cdea</id><msg>The invite launcher name change.Create invite, client and server side use case removed and data source added.and changes related to pull request comments.</msg><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchShareLinkUseCase.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-app-compose/src/androidMain/kotlin/world/respect/RespectApp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.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-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendSmsAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/EmailLinkLauncher.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/InviteStatusEnum.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendEmailAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendSmsUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/ShareLinkLauncher.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AbstractAppActivity.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerParams.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/EmailLinkLauncherAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchShareLinkAndroid.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/adapters/InviteAdapter.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/ShareLinkLauncherAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteCreateRoute.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseClient.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/InviteEntityDao.kt</file></path><path><editType>add</editType><file>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/InstantAsISO8601Extensions.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.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/InviteDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseDataSource.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendEmailUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/InviteEntity.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/SmsLinkLauncher.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/account/invite/CreateInviteUseCaseServer.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/SmsLinkLauncherAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/admin_add_app_and_teacher.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_using_invite_code_test.yaml</affectedPath><commitId>4426c9a5ed6ee673092cea38db9c03a7b59b417e</commitId><timestamp>1768968964000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test codes
</comment><date>2026-01-21 08:16:04 +0400</date><id>4426c9a5ed6ee673092cea38db9c03a7b59b417e</id><msg>updated test codes</msg><path><editType>edit</editType><file>.maestro/flows/001_001_invite_using_invite_code_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_app_and_teacher.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_001_invite_users_using_code_or_link_test.yaml</affectedPath><commitId>73eb03175417317caf874a256b6da225c4210e76</commitId><timestamp>1768971410000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test - Invite user
</comment><date>2026-01-21 08:56:50 +0400</date><id>73eb03175417317caf874a256b6da225c4210e76</id><msg>updated test - Invite user</msg><path><editType>edit</editType><file>.maestro/flows/001_001_invite_users_using_code_or_link_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/account/invite/RedeemInviteIntegrationTest.kt</affectedPath><commitId>f9734853454106d072be08b7008961690ca7d655</commitId><timestamp>1768975888000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>changes related RedeemInviteIntegrationTest
</comment><date>2026-01-21 11:41:28 +0530</date><id>f9734853454106d072be08b7008961690ca7d655</id><msg>changes related RedeemInviteIntegrationTest</msg><path><editType>edit</editType><file>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/account/invite/RedeemInviteIntegrationTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_001_invite_using_invite_code_test.yaml</affectedPath><commitId>82e79d88bbccf0012e86f23914506f76e7bc91a0</commitId><timestamp>1768978921000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test - missing appId
</comment><date>2026-01-21 11:02:01 +0400</date><id>82e79d88bbccf0012e86f23914506f76e7bc91a0</id><msg>updated test - missing appId</msg><path><editType>edit</editType><file>.maestro/flows/001_001_invite_using_invite_code_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_001_invite_users_using_code_or_link_test.yaml</affectedPath><commitId>767a7637bd8a89cdb8a54b311b8dbd734fe3c74c</commitId><timestamp>1768979612000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test - mistyped variable
</comment><date>2026-01-21 11:13:32 +0400</date><id>767a7637bd8a89cdb8a54b311b8dbd734fe3c74c</id><msg>updated test - mistyped variable</msg><path><editType>edit</editType><file>.maestro/flows/001_001_invite_users_using_code_or_link_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_001_invite_users_using_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>5d68ab582e10aeffb505d39fdcc9aac2799cde47</commitId><timestamp>1768986436000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test - name
</comment><date>2026-01-21 13:07:16 +0400</date><id>5d68ab582e10aeffb505d39fdcc9aac2799cde47</id><msg>updated test - name</msg><path><editType>add</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_001_invite_users_using_code_or_link_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/message_open_invite_link.yaml</affectedPath><affectedPath>.maestro/flows/subflows/message_paste_invite_link.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_using_invite_code_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>7688d6f51dd88509b4097104e349b3ae84020d25</commitId><timestamp>1768992317000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test - invite_code_field
</comment><date>2026-01-21 14:45:17 +0400</date><id>7688d6f51dd88509b4097104e349b3ae84020d25</id><msg>updated test - invite_code_field</msg><path><editType>delete</editType><file>.maestro/flows/subflows/message_open_invite_link.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/subflows/message_paste_invite_link.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>edit</editType><file>.maestro/flows/001_001_invite_using_invite_code_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/admin_add_app_and_teacher.yaml</affectedPath><commitId>c0be81dea469bce208dea29ad35a8935762e3a8c</commitId><timestamp>1768992359000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test - invite_code_field
</comment><date>2026-01-21 14:45:59 +0400</date><id>c0be81dea469bce208dea29ad35a8935762e3a8c</id><msg>updated test - invite_code_field</msg><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_app_and_teacher.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseClient.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</affectedPath><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteCreateRoute.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/qrcode/InviteQrScreen.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/qrcode/InviteQrViewModel.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>b83638792756b0fe942810eae530e28753f4672c</commitId><timestamp>1768993393000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>qrcode screen added
</comment><date>2026-01-21 16:33:13 +0530</date><id>b83638792756b0fe942810eae530e28753f4672c</id><msg>qrcode screen added</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseClient.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/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</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/person/inviteperson/InvitePersonViewModel.kt</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/qrcode/InviteQrScreen.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-server/src/main/kotlin/world/respect/server/Application.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/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/qrcode/InviteQrViewModel.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteCreateRoute.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/qrcode/InviteQrScreen.kt</affectedPath><commitId>b656051132c9a6115954f0264532458826da5d09</commitId><timestamp>1768996568000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>invite_qr_link added
</comment><date>2026-01-21 17:26:08 +0530</date><id>b656051132c9a6115954f0264532458826da5d09</id><msg>invite_qr_link added</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/qrcode/InviteQrScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/admin_add_class.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_app_and_teacher.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_using_invite_code_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>a329b905669268994fc7f574347e8ffcb1bb9171</commitId><timestamp>1768996708000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test - name
</comment><date>2026-01-21 15:58:28 +0400</date><id>a329b905669268994fc7f574347e8ffcb1bb9171</id><msg>updated test - name</msg><path><editType>edit</editType><file>.maestro/flows/001_001_invite_using_invite_code_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_class.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>edit</editType><file>.maestro/flows/subflows/admin_add_app_and_teacher.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/admin_add_class.yaml</affectedPath><commitId>b5132c9b3affba1dea56d20e9d807e7c02fa7358</commitId><timestamp>1768997042000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test - name
</comment><date>2026-01-21 16:04:02 +0400</date><id>b5132c9b3affba1dea56d20e9d807e7c02fa7358</id><msg>updated test - name</msg><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_class.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>901435ff66d16475873da1f29a4496f47cf7a56c</commitId><timestamp>1768998088000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test - added qr_link id
</comment><date>2026-01-21 16:21:28 +0400</date><id>901435ff66d16475873da1f29a4496f47cf7a56c</id><msg>updated test - added qr_link id</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>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>5bd21abbb602d56ae6544079b860db4dab398c9a</commitId><timestamp>1768998898000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test - added invitation
</comment><date>2026-01-21 16:34:58 +0400</date><id>5bd21abbb602d56ae6544079b860db4dab398c9a</id><msg>updated test - added invitation</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-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>376eabbdac4f607c7b2332ea0644efd1b85d29ce</commitId><timestamp>1769067799000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix merge of main branch NavHost imports.
</comment><date>2026-01-22 11:43:19 +0400</date><id>376eabbdac4f607c7b2332ea0644efd1b85d29ce</id><msg>Fix merge of main branch NavHost imports.</msg><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>9a9a526c1ae6d5f22400ace5399f30216e4bfe09</commitId><timestamp>1769071726000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test - added add new person btn
</comment><date>2026-01-22 12:48:46 +0400</date><id>9a9a526c1ae6d5f22400ace5399f30216e4bfe09</id><msg>updated test - added add new person btn</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.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>8a8a937520f48008abab95fc39781ee65682ba09</commitId><timestamp>1769071942000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test - scan qr btn
</comment><date>2026-01-22 12:52:22 +0400</date><id>8a8a937520f48008abab95fc39781ee65682ba09</id><msg>updated test - scan qr btn</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-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/InviteEntity.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseClient.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/InviteAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/InviteEntityDao.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</affectedPath><commitId>8e89f2806aec1c132da8be98d2cdfd8651d97557</commitId><timestamp>1769088354000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Refactor to use sealed interface for invite.
</comment><date>2026-01-22 17:25:54 +0400</date><id>8e89f2806aec1c132da8be98d2cdfd8651d97557</id><msg>Refactor to use sealed interface for invite.</msg><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/InviteAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseClient.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/InviteEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/InviteEntity.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/InviteDataSourceRepository.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectInviteInfo.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/EnrollmentRoleEnumExt.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/EnrollmentRoleEnumExt.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteCreateRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/confirmation/ConfirmationScreen.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/confirmation/ConfirmationViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt</affectedPath><commitId>77b176674ceb9a2e66eec5ef41fe5beaeafdeb58</commitId><timestamp>1769175912000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>More refactoring work in progress.
</comment><date>2026-01-23 17:45:12 +0400</date><id>77b176674ceb9a2e66eec5ef41fe5beaeafdeb58</id><msg>More refactoring work in progress.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/confirmation/ConfirmationViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/confirmation/ConfirmationScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.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/school/InviteDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/InviteDataSourceRepository.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectInviteInfo.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteCreateRoute.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteRoute.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/EnrollmentRoleEnumExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/EnrollmentRoleEnumExt.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.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/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.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-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/InviteDataSourceRepository.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</affectedPath><affectedPath>respect-datalayer-db/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonRoleEnumExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetWritableRolesListUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetWritableRolesListUseCaseImpl.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/RandomString.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCase.kt</affectedPath><commitId>7b0495538d0135182c3fbbd66d40b235679facc3</commitId><timestamp>1769347425000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>More refactoring work in progress.
</comment><date>2026-01-25 17:23:45 +0400</date><id>7b0495538d0135182c3fbbd66d40b235679facc3</id><msg>More refactoring work in progress.</msg><path><editType>edit</editType><file>respect-datalayer-db/build.gradle.kts</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetWritableRolesListUseCaseImpl.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/InviteDataSourceRepository.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/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetWritableRolesListUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/RandomString.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonRoleEnumExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createlink/CreateInviteLinkUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createlink/CreateLinkUseCase.kt</affectedPath><commitId>55e883b895539e1f964fc6b33c57718fb89faee0</commitId><timestamp>1769348585000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>More refactoring work in progress.

Initial re-implementation of InvitePersonViewModel.
</comment><date>2026-01-25 17:43:05 +0400</date><id>55e883b895539e1f964fc6b33c57718fb89faee0</id><msg>More refactoring work in progress.</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createlink/CreateLinkUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createlink/CreateInviteLinkUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendEmailUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createlink/CreateInviteLinkUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendSmsUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchShareLinkAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendEmailAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchShareLinkUseCase.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendSmsAndroid.kt</affectedPath><commitId>a755c4a08c66faa06a7fc131026820942a89d941</commitId><timestamp>1769350737000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>More refactoring work in progress.

Generate accept invite link that follows the school link pattern and make code accessible via copy options etc.
</comment><date>2026-01-25 18:18:57 +0400</date><id>a755c4a08c66faa06a7fc131026820942a89d941</id><msg>More refactoring work in progress.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendEmailAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchShareLinkUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendEmailUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchShareLinkAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createlink/CreateInviteLinkUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendSmsUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendSmsAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/joinclazzwithcode/JoinClazzWithCodeScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/joinclazzwithcode/JoinClazzWithCodeViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/enterinvitecode/EnterInviteCodeScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterinvitecode/EnterInviteCodeViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>b4d279d6a141f929b409e4a01b0b999c09dd0401</commitId><timestamp>1769351359000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Rename JoinClazzWithCode to EnterInviteCode
</comment><date>2026-01-25 18:29:19 +0400</date><id>b4d279d6a141f929b409e4a01b0b999c09dd0401</id><msg>Rename JoinClazzWithCode to EnterInviteCode</msg><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/joinclazzwithcode/JoinClazzWithCodeScreen.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-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><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-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterinvitecode/EnterInviteCodeViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/joinclazzwithcode/JoinClazzWithCodeViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/enterinvitecode/EnterInviteCodeScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RespectRedeemInviteRequest.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterinvitecode/EnterInviteCodeViewModel.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/respect/model/invite/RespectInviteInfo.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.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/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/confirmation/ConfirmationScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroptionsignup/OtherOptionsSignupViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/confirmation/ConfirmationViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/account/invite/RedeemInviteIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt</affectedPath><commitId>b3d0cd381b530e2255fa0fc54d7c907d5f4b8e05</commitId><timestamp>1769358259000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Invite refactor work in progress.
</comment><date>2026-01-25 20:24:19 +0400</date><id>b3d0cd381b530e2255fa0fc54d7c907d5f4b8e05</id><msg>Invite refactor work in progress.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RespectRedeemInviteRequest.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectInviteInfo.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/confirmation/ConfirmationScreen.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.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-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/account/invite/RedeemInviteIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterinvitecode/EnterInviteCodeViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroptionsignup/OtherOptionsSignupViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.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/confirmation/ConfirmationViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberFormattedTime.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/util/RememberFormattedTime.jvm.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/RememberFormattedTime.android.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/InviteExt.kt</affectedPath><commitId>62c274ed097ae7dde0193752a2fd51b827656f09</commitId><timestamp>1769420394000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Invite refactor work in progress.

Implement approval required on/off support based on 15 min interval.
Update invite screen to ensure nothing is clickable when loading is ongoing (avoid potential for flakey test)
</comment><date>2026-01-26 13:39:54 +0400</date><id>62c274ed097ae7dde0193752a2fd51b827656f09</id><msg>Invite refactor work in progress.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberFormattedTime.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/util/RememberFormattedTime.jvm.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/InviteExt.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/RememberFormattedTime.android.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-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/InviteExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</affectedPath><commitId>33f93c4f712ca19a689fc519d46a8c997fab0ee1</commitId><timestamp>1769424597000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Updated invite screen

Add QR code, invite code, and link directly to screen itself
Add reset code option
</comment><date>2026-01-26 14:49:57 +0400</date><id>33f93c4f712ca19a689fc519d46a8c997fab0ee1</id><msg>Updated invite screen</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.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/src/commonMain/kotlin/world/respect/datalayer/school/ext/InviteExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</affectedPath><commitId>ca8b7ddc609f11d680aa270855bbd7660dcd62b7</commitId><timestamp>1769424900000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove * from invitepersonscreen role dropdown.
</comment><date>2026-01-26 14:55:00 +0400</date><id>ca8b7ddc609f11d680aa270855bbd7660dcd62b7</id><msg>Remove * from invitepersonscreen role dropdown.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</affectedPath><commitId>e050b2eb5353e0b16da31326c26489149d3e9344</commitId><timestamp>1769424987000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add test tag for invite code.
</comment><date>2026-01-26 14:56:27 +0400</date><id>e050b2eb5353e0b16da31326c26489149d3e9344</id><msg>Add test tag for invite code.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/InviteExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><commitId>dde312cd6f6d4f6363cac2c82547a6fac38fc28f</commitId><timestamp>1769426314000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update InvitePerson screen to update automatically when approval required time expires.
</comment><date>2026-01-26 15:18:34 +0400</date><id>dde312cd6f6d4f6363cac2c82547a6fac38fc28f</id><msg>Update InvitePerson screen to update automatically when approval required time expires.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/InviteExt.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><commitId>ff60c4446c23fb5bb3ef2f9aa05f740941cee369</commitId><timestamp>1769426795000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update invite code to be in its own text field for easier testing. Copy on click.
</comment><date>2026-01-26 15:26:35 +0400</date><id>ff60c4446c23fb5bb3ef2f9aa05f740941cee369</id><msg>Update invite code to be in its own text field for easier testing. Copy on click.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/account/invite/RedeemInviteIntegrationTest.kt</affectedPath><commitId>d752dcad8ebf1590f6b7b0a15b3b40c0ae16c05f</commitId><timestamp>1769427066000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove obsolete invite redemption integration test.
</comment><date>2026-01-26 15:31:06 +0400</date><id>d752dcad8ebf1590f6b7b0a15b3b40c0ae16c05f</id><msg>Remove obsolete invite redemption integration test.</msg><path><editType>delete</editType><file>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/account/invite/RedeemInviteIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</affectedPath><commitId>06daf8744f865d8a13194a87af518cc9c0a9694b</commitId><timestamp>1769428100000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update link style on invite screen.
</comment><date>2026-01-26 15:48:20 +0400</date><id>06daf8744f865d8a13194a87af518cc9c0a9694b</id><msg>Update link style on invite screen.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/admin_add_app_and_teacher.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_using_invite_code_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>872a1d29352c5ffe210f2f64dd79032393550dcb</commitId><timestamp>1769428490000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test - updated design
</comment><date>2026-01-26 15:54:50 +0400</date><id>872a1d29352c5ffe210f2f64dd79032393550dcb</id><msg>updated test - updated design</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>.maestro/flows/001_001_invite_using_invite_code_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_app_and_teacher.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>cadb64c945589627625ae7b9edb78f14426e2870</commitId><timestamp>1769430280000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test - test id
</comment><date>2026-01-26 16:24:40 +0400</date><id>cadb64c945589627625ae7b9edb78f14426e2870</id><msg>updated test - test id</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/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterinvitecode/EnterInviteCodeViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/acceptinvite/AcceptInviteViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/confirmation/ConfirmationScreen.kt</affectedPath><affectedPath>respect-lib-util/src/androidMain/kotlin/world/respect/libutil/util/PutDebugCrashCustomData.android.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/acceptinvite/AcceptInviteScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/confirmation/ConfirmationViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>fdbaab74c246ff91577fa6c794547103580e5d06</commitId><timestamp>1769431615000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Invite refactor work in progress: make invite link take user to accept invite screen when pasted directly into url text field and when scanned as a QR code.
</comment><date>2026-01-26 16:46:55 +0400</date><id>fdbaab74c246ff91577fa6c794547103580e5d06</id><msg>Invite refactor work in progress: make invite link take user to accept invite screen when pasted directly into url text field and when scanned as a QR code.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-util/src/androidMain/kotlin/world/respect/libutil/util/PutDebugCrashCustomData.android.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.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>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/confirmation/ConfirmationViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterinvitecode/EnterInviteCodeViewModel.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-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/confirmation/ConfirmationScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/acceptinvite/AcceptInviteViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/acceptinvite/AcceptInviteScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.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>147e7c24fa6f4193f57806107ea8eb476098ae63</commitId><timestamp>1769436683000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test - test changes
</comment><date>2026-01-26 18:11:23 +0400</date><id>147e7c24fa6f4193f57806107ea8eb476098ae63</id><msg>updated test - test changes</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/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/navigation/deeplink/InitDeepLinkUriProviderUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/acceptinvite/AcceptInviteViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deeplink/InitDeepLinkUriProviderUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AbstractAppActivity.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/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/NavCommandExt.kt</affectedPath><commitId>ee924d4e61cb215330f32c03bda92b117455c3cf</commitId><timestamp>1769438412000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Invite refactor work in progress: handle start app from intent (eg opening a link from another app).
</comment><date>2026-01-26 18:40:12 +0400</date><id>ee924d4e61cb215330f32c03bda92b117455c3cf</id><msg>Invite refactor work in progress: handle start app from intent (eg opening a link from another app).</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/navigation/deeplink/InitDeepLinkUriProviderUseCaseAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deeplink/InitDeepLinkUriProviderUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AbstractAppActivity.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-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.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-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/NavCommandExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/acceptinvite/AcceptInviteViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AbstractAppActivity.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>respect-app-compose/README.md</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/navigation/deeplink/InitDeepLinkUriProviderUseCaseAndroid.kt</affectedPath><commitId>d069bb98f35f46368928488d982849622a70f656</commitId><timestamp>1769440336000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add support for opening a link using Maestro bundle argument.

Add documentation to README.
</comment><date>2026-01-26 19:12:16 +0400</date><id>d069bb98f35f46368928488d982849622a70f656</id><msg>Add support for opening a link using Maestro bundle argument.</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AbstractAppActivity.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/navigation/deeplink/InitDeepLinkUriProviderUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-app-compose/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/admin_add_app_and_teacher.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_using_invite_code_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>b265cb94f19c778db0838ceb021b42b0e6eca78e</commitId><timestamp>1769494534000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test - test changes
</comment><date>2026-01-27 10:15:34 +0400</date><id>b265cb94f19c778db0838ceb021b42b0e6eca78e</id><msg>updated test - test changes</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>.maestro/flows/001_001_invite_using_invite_code_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_app_and_teacher.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/termsandcondition/TermsAndConditionScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RespectRedeemInviteRequest.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/acceptinvite/AcceptInviteViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/acceptinvite/AcceptInviteScreen.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectConstants.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/signup/SignUpScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/termsandcondition/TermsAndConditionViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/InviteExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</affectedPath><commitId>f446a003c00937acc056b7b0a269b8f1133c1de6</commitId><timestamp>1769511946000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial implementation of redeeming a new user invite.
</comment><date>2026-01-27 15:05:46 +0400</date><id>f446a003c00937acc056b7b0a269b8f1133c1de6</id><msg>Initial implementation of redeeming a new user invite.</msg><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-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/signup/SignUpScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/termsandcondition/TermsAndConditionViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RespectRedeemInviteRequest.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/termsandcondition/TermsAndConditionScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/InviteExt.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/acceptinvite/AcceptInviteScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectConstants.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/acceptinvite/AcceptInviteViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteCreateRoute.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonAdapter.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt</affectedPath><commitId>1353fb2d7646f9cf74c4989619d8757b6848d106</commitId><timestamp>1769512483000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove old Invite model.
</comment><date>2026-01-27 15:14:43 +0400</date><id>1353fb2d7646f9cf74c4989619d8757b6848d106</id><msg>Remove old Invite model.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonAdapter.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteRoute.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteCreateRoute.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><commitId>34022c402dcb0b453ecbdce15221ee76e0706599</commitId><timestamp>1769512956000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove old Invite model import line
</comment><date>2026-01-27 15:22:36 +0400</date><id>34022c402dcb0b453ecbdce15221ee76e0706599</id><msg>Remove old Invite model import line</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/acceptinvite/AcceptInviteViewModel.kt</affectedPath><commitId>58e171a60b13bacb6d8c7eaa5d8476867e231a03</commitId><timestamp>1769513413000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix logic for showing terms/conditions.
</comment><date>2026-01-27 15:30:13 +0400</date><id>58e171a60b13bacb6d8c7eaa5d8476867e231a03</id><msg>Fix logic for showing terms/conditions.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/acceptinvite/AcceptInviteViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetPlayStoreReferrer.kt</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetPlayStoreReferrerAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>3ddec4e29a4fe2bab2871476320182b4c3f9f844</commitId><timestamp>1769514055000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>GetPlayStoreReferrer added
</comment><date>2026-01-27 17:10:55 +0530</date><id>3ddec4e29a4fe2bab2871476320182b4c3f9f844</id><msg>GetPlayStoreReferrer added</msg><path><editType>edit</editType><file>respect-lib-shared/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetPlayStoreReferrerAndroid.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>gradle/libs.versions.toml</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetPlayStoreReferrer.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/navigateonaccountcreated/NavigateOnAccountCreatedUseCase.kt</affectedPath><commitId>c5c4c70332a0f11b16d2134d0f731fafd5e68210</commitId><timestamp>1769514428000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Move navigation on account creation logic to a domain UseCase.
</comment><date>2026-01-27 15:47:08 +0400</date><id>c5c4c70332a0f11b16d2134d0f731fafd5e68210</id><msg>Move navigation on account creation logic to a domain UseCase.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/navigateonaccountcreated/NavigateOnAccountCreatedUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><commitId>2c0fff20f20dae14e0bfc380722400cdcdae2169</commitId><timestamp>1769515878000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add navigate on account creation to app di
Handle reject invite.
</comment><date>2026-01-27 16:11:18 +0400</date><id>2c0fff20f20dae14e0bfc380722400cdcdae2169</id><msg>Add navigate on account creation to app di</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.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-app-compose/build.gradle.kts</affectedPath><commitId>cfece24743f992e96cc3f29e3c844a375e07c6f2</commitId><timestamp>1769515937000</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-01-27 16:12:17 +0400</date><id>cfece24743f992e96cc3f29e3c844a375e07c6f2</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>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>d18f7e6e9951dcc89a5cb1a60f7b9d4799f17e47</commitId><timestamp>1769516002000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test -terms added
</comment><date>2026-01-27 16:13:22 +0400</date><id>d18f7e6e9951dcc89a5cb1a60f7b9d4799f17e47</id><msg>updated test -terms added</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/kotlin/world/respect/shared/domain/getplaystorereferrer/GetPlayStoreReferrerUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetPlayStoreReferrerUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetPlayStoreReferrer.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetPlayStoreReferrerAndroid.kt</affectedPath><commitId>f50464039e5eb803b79a8e6bb657b6397a02cb5f</commitId><timestamp>1769516369000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>GetPlayStoreReferrer handled exception
</comment><date>2026-01-27 17:49:29 +0530</date><id>f50464039e5eb803b79a8e6bb657b6397a02cb5f</id><msg>GetPlayStoreReferrer handled exception</msg><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetPlayStoreReferrerUseCaseAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetPlayStoreReferrerUseCase.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-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetPlayStoreReferrer.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetPlayStoreReferrerAndroid.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>ed93ba854d32344a8beebaf2bf31d51dc8c5a489</commitId><timestamp>1769516543000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test -terms added
</comment><date>2026-01-27 16:22:23 +0400</date><id>ed93ba854d32344a8beebaf2bf31d51dc8c5a489</id><msg>updated test -terms added</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-app-compose/build.gradle.kts</affectedPath><commitId>fe93ba18392bc49f32376d74d9d774d67bdaadab</commitId><timestamp>1769516740000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Bump version code.
</comment><date>2026-01-27 16:25:40 +0400</date><id>fe93ba18392bc49f32376d74d9d774d67bdaadab</id><msg>Bump version code.</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</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>e4e21d060c6788dde9dcb8d95904ced4be0a3f7b</commitId><timestamp>1769517322000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>your date of birth updated - test
</comment><date>2026-01-27 16:35:22 +0400</date><id>e4e21d060c6788dde9dcb8d95904ced4be0a3f7b</id><msg>your date of birth updated - test</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>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>021dc5c03feaf80df96073445ab28cf84d26a940</commitId><timestamp>1769519356000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>your date of birth updated - test
</comment><date>2026-01-27 17:09:16 +0400</date><id>021dc5c03feaf80df96073445ab28cf84d26a940</id><msg>your date of birth updated - test</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-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetPlayStoreReferrerUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetPlayStoreReferrerUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetDeferredDeepLinkUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolLinkRoute.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectConstants.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetDeferredDeepLinkUseCase.kt</affectedPath><commitId>d93ae13b7d3847dfa5e9459db431281f21be2123</commitId><timestamp>1769532103000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Handle deferred deep link: initial attempt.
</comment><date>2026-01-27 20:41:43 +0400</date><id>d93ae13b7d3847dfa5e9459db431281f21be2123</id><msg>Handle deferred deep link: initial attempt.</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetDeferredDeepLinkUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetDeferredDeepLinkUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetPlayStoreReferrerUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolLinkRoute.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectConstants.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetPlayStoreReferrerUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>be871ae8954328a2082f72e95306ebedc8b820c5</commitId><timestamp>1769532154000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Bump version.
</comment><date>2026-01-27 20:42:34 +0400</date><id>be871ae8954328a2082f72e95306ebedc8b820c5</id><msg>Bump version.</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetDeferredDeepLinkUseCaseAndroid.kt</affectedPath><commitId>77a504abd14ec9e4810a058dbff98fe4f2730eee</commitId><timestamp>1769589422000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add additional logging for deferred deep link management.
</comment><date>2026-01-28 12:37:02 +0400</date><id>77a504abd14ec9e4810a058dbff98fe4f2730eee</id><msg>Add additional logging for deferred deep link management.</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetDeferredDeepLinkUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/doc/run-config-settings.png.png</affectedPath><affectedPath>respect-app-compose/README.md</affectedPath><affectedPath>respect-app-compose/doc/app-config-dropdown.png</affectedPath><commitId>f8464f1b042d71ad5dc3e71c8496fe9af94b87aa</commitId><timestamp>1769591611000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add doc on link testing.
</comment><date>2026-01-28 13:13:31 +0400</date><id>f8464f1b042d71ad5dc3e71c8496fe9af94b87aa</id><msg>Add doc on link testing.</msg><path><editType>add</editType><file>respect-app-compose/doc/app-config-dropdown.png</file></path><path><editType>edit</editType><file>respect-app-compose/README.md</file></path><path><editType>add</editType><file>respect-app-compose/doc/run-config-settings.png.png</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/doc/run-config-settings.png.png</affectedPath><affectedPath>respect-app-compose/doc/run-config-settings.png</affectedPath><commitId>743bbea35e1703f8d25a3258408314d38283cc6c</commitId><timestamp>1769591664000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add doc on link testing.
</comment><date>2026-01-28 13:14:24 +0400</date><id>743bbea35e1703f8d25a3258408314d38283cc6c</id><msg>Add doc on link testing.</msg><path><editType>add</editType><file>respect-app-compose/doc/run-config-settings.png</file></path><path><editType>delete</editType><file>respect-app-compose/doc/run-config-settings.png.png</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/README.md</affectedPath><commitId>e4781fcb18f4bf58b8baa693cdb8ee6e33f67a5a</commitId><timestamp>1769591694000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add doc on link testing.
</comment><date>2026-01-28 13:14:54 +0400</date><id>e4781fcb18f4bf58b8baa693cdb8ee6e33f67a5a</id><msg>Add doc on link testing.</msg><path><editType>edit</editType><file>respect-app-compose/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/README.md</affectedPath><commitId>b09d8e86e88ac797b883ee0b8136f32b9eeb2311</commitId><timestamp>1769592163000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Tidyup link testing doc.
</comment><date>2026-01-28 13:22:43 +0400</date><id>b09d8e86e88ac797b883ee0b8136f32b9eeb2311</id><msg>Tidyup link testing doc.</msg><path><editType>edit</editType><file>respect-app-compose/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/README.md</affectedPath><commitId>474e4088580a6b4634d1a21b87ec5256a770e167</commitId><timestamp>1769592235000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Tidyup link testing doc.
</comment><date>2026-01-28 13:23:55 +0400</date><id>474e4088580a6b4634d1a21b87ec5256a770e167</id><msg>Tidyup link testing doc.</msg><path><editType>edit</editType><file>respect-app-compose/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolLinkRoute.kt</affectedPath><commitId>6b620c63276f978ae38845545bd47404c7e09b1c</commitId><timestamp>1769595992000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix SchoolLinkRoute to include RESPECT_SCHOOL_LINK_SEGMENT in redirect.
</comment><date>2026-01-28 14:26:32 +0400</date><id>6b620c63276f978ae38845545bd47404c7e09b1c</id><msg>Fix SchoolLinkRoute to include RESPECT_SCHOOL_LINK_SEGMENT in redirect.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolLinkRoute.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolLinkRoute.kt</affectedPath><commitId>7449866ef9c4d1113cf21f8a195fc972acff0ebe</commitId><timestamp>1769596019000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix SchoolLinkRoute to include RESPECT_SCHOOL_LINK_SEGMENT in redirect.
</comment><date>2026-01-28 14:26:59 +0400</date><id>7449866ef9c4d1113cf21f8a195fc972acff0ebe</id><msg>Fix SchoolLinkRoute to include RESPECT_SCHOOL_LINK_SEGMENT in redirect.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolLinkRoute.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCase.kt</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><commitId>0d4e5197d767c368defb5d0f94c325b1e6229287</commitId><timestamp>1769596752000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>merge with invite person branch
</comment><date>2026-01-28 16:09:12 +0530</date><id>0d4e5197d767c368defb5d0f94c325b1e6229287</id><msg>merge with invite person branch</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCase.kt</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/openlink_flow.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>87b2946d5a90af4df70234242e5468c772859d2a</commitId><timestamp>1769603237000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated link flow
</comment><date>2026-01-28 16:27:17 +0400</date><id>87b2946d5a90af4df70234242e5468c772859d2a</id><msg>updated link flow</msg><path><editType>edit</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/openlink_flow.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>56e0cbdb8b68a2d58f76a2ad85c717b371f579a3</commitId><timestamp>1769603666000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated link flow
</comment><date>2026-01-28 16:34:26 +0400</date><id>56e0cbdb8b68a2d58f76a2ad85c717b371f579a3</id><msg>updated link flow</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>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>029ac554284499e88df8821259b727f3bc4edabd</commitId><timestamp>1769603863000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated link flow
</comment><date>2026-01-28 16:37:43 +0400</date><id>029ac554284499e88df8821259b727f3bc4edabd</id><msg>updated link flow</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>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>6d1fc00e88d828f4a9c993813a8b0d60b7927f61</commitId><timestamp>1769604216000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated link flow
</comment><date>2026-01-28 16:43:36 +0400</date><id>6d1fc00e88d828f4a9c993813a8b0d60b7927f61</id><msg>updated link flow</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/kotlin/world/respect/shared/domain/navigation/deferreddeeplink/GetDeferredDeepLinkUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetDeferredDeepLinkUseCaseAndroid.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolLinkRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/onboarding/OnboardingViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt</affectedPath><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/domain/navigation/onappstart/NavigateOnAppStartUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/navigation/deferreddeeplink/GetDeferredDeepLinkUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetDeferredDeepLinkUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/navigateonaccountcreated/NavigateOnAccountCreatedUseCase.kt</affectedPath><commitId>af3b19aa755d9c796d91c93076d28bfb113466b3</commitId><timestamp>1769604890000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Tidyup of handling deferred deep links.

Ensure that user onboarding is always displayed first (if not shown), then take user to deep link (deferred or cold start) if required.

Bring navigation for app start logic into NavigateOnAppStartUseCase such that it can be used by the AcknowledgementViewModel and OnboardingViewModel.
</comment><date>2026-01-28 16:54:50 +0400</date><id>af3b19aa755d9c796d91c93076d28bfb113466b3</id><msg>Tidyup of handling deferred deep links.</msg><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetDeferredDeepLinkUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolLinkRoute.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getplaystorereferrer/GetDeferredDeepLinkUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/onboarding/OnboardingViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onappstart/NavigateOnAppStartUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/navigation/deferreddeeplink/GetDeferredDeepLinkUseCaseAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deferreddeeplink/GetDeferredDeepLinkUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/navigateonaccountcreated/NavigateOnAccountCreatedUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onaccountcreated/NavigateOnAccountCreatedUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>5fd2ca4abe2c905316e2e7947b382b943c10c9cc</commitId><timestamp>1769604922000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Bump version
</comment><date>2026-01-28 16:55:22 +0400</date><id>5fd2ca4abe2c905316e2e7947b382b943c10c9cc</id><msg>Bump version</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</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>e92df3d5035d37932ad859841030b4b8a9fd8e5f</commitId><timestamp>1769669616000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated link flow
</comment><date>2026-01-29 10:53:36 +0400</date><id>e92df3d5035d37932ad859841030b4b8a9fd8e5f</id><msg>updated link flow</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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/InviteEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/InviteAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</affectedPath><commitId>f93192009f3238d3d6622d372fabdae91babf58b</commitId><timestamp>1769675882000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add isFirstPerson property to NewUserInvite.
</comment><date>2026-01-29 12:38:02 +0400</date><id>f93192009f3238d3d6622d372fabdae91babf58b</id><msg>Add isFirstPerson property to NewUserInvite.</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/school/adapters/InviteAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/InviteEntity.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/11.json</affectedPath><affectedPath>respect-app-compose/README.md</affectedPath><commitId>027260ea030f3ea246eedfa709c13af34e8fa56f</commitId><timestamp>1769764849000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix ADB command line start link example.
</comment><date>2026-01-30 13:20:49 +0400</date><id>027260ea030f3ea246eedfa709c13af34e8fa56f</id><msg>Fix ADB command line start link example.</msg><path><editType>add</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/11.json</file></path><path><editType>edit</editType><file>respect-app-compose/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/11.json</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCase.kt</affectedPath><commitId>31f14b6a550caa02f7c9b9ea793a5c6ff0976390</commitId><timestamp>1769775754000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>markFirstUserInviteAsDeleted and handle error case
</comment><date>2026-01-30 17:52:34 +0530</date><id>31f14b6a550caa02f7c9b9ea793a5c6ff0976390</id><msg>markFirstUserInviteAsDeleted and handle error case</msg><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/11.json</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><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/createclass/CreateClassUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt</affectedPath><commitId>1830dfc47e6b053ae7a5c386afdea59fef3f7cb2</commitId><timestamp>1769789941000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Create ClassInvite entities for new classes.

Make flow from class detail screen to invite student/teacher work as expected.
</comment><date>2026-01-30 20:19:01 +0400</date><id>1830dfc47e6b053ae7a5c386afdea59fef3f7cb2</id><msg>Create ClassInvite entities for new classes.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.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-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.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>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createclass/CreateClassUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.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-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectInviteInfo.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/acceptinvite/AcceptInviteScreen.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</affectedPath><commitId>0c73812e4f16034c8148e783fbcfd79dfa15d250</commitId><timestamp>1769794524000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update AcceptInviteScreen to show details for class invite.
</comment><date>2026-01-30 21:35:24 +0400</date><id>0c73812e4f16034c8148e783fbcfd79dfa15d250</id><msg>Update AcceptInviteScreen to show details for class invite.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/acceptinvite/AcceptInviteScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectInviteInfo.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-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/JsonObjectBuilderExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/InviteEntityDao.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/SnackBarDispatcherUseCaseExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/InviteExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/toPerson.kt</affectedPath><commitId>9be5f719aab3f3b11f94d4f2fcd783b1c3680c60</commitId><timestamp>1769864478000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial implementation handling acceptance for teacher or student of class invite.
</comment><date>2026-01-31 17:01:18 +0400</date><id>9be5f719aab3f3b11f94d4f2fcd783b1c3680c60</id><msg>Initial implementation handling acceptance for teacher or student of class invite.</msg><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/toPerson.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/InviteEntityDao.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/SnackBarDispatcherUseCaseExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/InviteExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/JsonObjectBuilderExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/InviteEntityDao.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/EnrollmentExt.kt</affectedPath><commitId>667172afa926f0df7241b3a62fb87749974ce2e3</commitId><timestamp>1769933236000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial implementation of approval for class invites for teachers and students.
</comment><date>2026-02-01 12:07:16 +0400</date><id>667172afa926f0df7241b3a62fb87749974ce2e3</id><msg>Initial implementation of approval for class invites for teachers and students.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/EnrollmentExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/InviteEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.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>957eb8c7e3efa1b2118696fe4d0ecabff1a4585a</commitId><timestamp>1769934016000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove use of role dropdown when inviting to class: this is no longer visible or needed when a user goes through add teacher/add student.
</comment><date>2026-02-01 12:20:16 +0400</date><id>957eb8c7e3efa1b2118696fe4d0ecabff1a4585a</id><msg>Remove use of role dropdown when inviting to class: this is no longer visible or needed when a user goes through add teacher/add student.</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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><commitId>4bfc9e8fd0a3ea9855b82216113bd475127e3a03</commitId><timestamp>1769935052000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix handling permissions for Invite.
</comment><date>2026-02-01 12:37:32 +0400</date><id>4bfc9e8fd0a3ea9855b82216113bd475127e3a03</id><msg>Fix handling permissions for Invite.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt</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>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/acceptinvite/AcceptInviteScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClassPendingPersonListItem.kt</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>43a28968413d151563b4e5208773536a68ab42a8</commitId><timestamp>1769951152000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Maestro fixes:
Accept invite screen: change class to class name to match maestro flow
class detail screen: use IconButton instead of clickable.
Fix teacher password in maestro flow.
</comment><date>2026-02-01 17:05:52 +0400</date><id>43a28968413d151563b4e5208773536a68ab42a8</id><msg>Maestro fixes:</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/acceptinvite/AcceptInviteScreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClassPendingPersonListItem.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-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/InviteEntity.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/11.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ClassInvteModeEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/InviteAdapter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createclass/CreateClassUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</affectedPath><commitId>c4090d26a41be1f7769f8553af46a83274845b99</commitId><timestamp>1769958941000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update invite screen: add support for class invites that are via parents.
</comment><date>2026-02-01 19:15:41 +0400</date><id>c4090d26a41be1f7769f8553af46a83274845b99</id><msg>Update invite screen: add support for class invites that are via parents.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createclass/CreateClassUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/InviteEntity.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-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ClassInvteModeEnum.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/11.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/InviteAdapter.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/SignupScreenModeEnum.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/acceptinvite/AcceptInviteViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/InviteExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/ProfileType.kt</affectedPath><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/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroptionsignup/OtherOptionsSignupViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/acceptinvite/AcceptInviteScreen.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/termsandcondition/TermsAndConditionViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</affectedPath><commitId>5f93539b3987640a4b93c09304deb93c986da0b1</commitId><timestamp>1769964683000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Invitation management: updates to support signup via parent devices for classes.
</comment><date>2026-02-01 20:51:23 +0400</date><id>5f93539b3987640a4b93c09304deb93c986da0b1</id><msg>Invitation management: updates to support signup via parent devices for classes.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/termsandcondition/TermsAndConditionViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/acceptinvite/AcceptInviteScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/acceptinvite/AcceptInviteViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/InviteExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/ProfileType.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/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroptionsignup/OtherOptionsSignupViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/SignupScreenModeEnum.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AddChildAccountRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClassPendingPersonListItem.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/onaccountcreated/NavigateOnAccountCreatedUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDb.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseClient.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/InviteExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDataSource.kt</affectedPath><commitId>078918025ea17b73948f42bf60e896ca30c3c030</commitId><timestamp>1769974551000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial end-to-end implementation of parent device signup for a class invitation.
</comment><date>2026-02-01 23:35:51 +0400</date><id>078918025ea17b73948f42bf60e896ca30c3c030</id><msg>Initial end-to-end implementation of parent device signup for a class invitation.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/InviteExt.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClassPendingPersonListItem.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDb.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/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.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-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AddChildAccountRoute.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseClient.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/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>.maestro/flows/001_001_invite_using_invite_code_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/InviteExt.kt</affectedPath><affectedPath>.maestro/flows/subflows/openlink_flow.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</affectedPath><commitId>c08b922db4c9827c9f385a2fa2db18a78f54e0a3</commitId><timestamp>1769983362000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Shorten  001_001 test due to Maestro bug.

Remove visibility of invite option for adding family member.
</comment><date>2026-02-02 02:02:42 +0400</date><id>c08b922db4c9827c9f385a2fa2db18a78f54e0a3</id><msg>Shorten  001_001 test due to Maestro bug.</msg><path><editType>edit</editType><file>.maestro/flows/subflows/openlink_flow.yaml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.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/src/commonMain/kotlin/world/respect/datalayer/school/ext/InviteExt.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>delete</editType><file>.maestro/flows/001_001_invite_using_invite_code_test.yaml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/admin_add_app_and_teacher.yaml</affectedPath><commitId>c5cb2698fa8fd42130586f7b3bd7ed8f819bfade</commitId><timestamp>1770010811000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix admin_add_app_and_teacher.yaml flow with new update system.
</comment><date>2026-02-02 09:40:11 +0400</date><id>c5cb2698fa8fd42130586f7b3bd7ed8f819bfade</id><msg>Fix admin_add_app_and_teacher.yaml flow with new update system.</msg><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_app_and_teacher.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/waitingforapproval/WaitingForApprovalViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/acceptinvite/AcceptInviteViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/acceptinvite/AcceptInviteScreen.kt</affectedPath><commitId>5eb65e682d129df4ff26e65fda92a6b10c18244b</commitId><timestamp>1770012624000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update AcceptInvite to show error message if/when required and loading indicator.
</comment><date>2026-02-02 10:10:24 +0400</date><id>5eb65e682d129df4ff26e65fda92a6b10c18244b</id><msg>Update AcceptInvite to show error message if/when required and loading indicator.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/acceptinvite/AcceptInviteScreen.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/waitingforapproval/WaitingForApprovalViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/acceptinvite/AcceptInviteViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</affectedPath><commitId>f67ff3c16ec11c24ea3f677aeace7255fd4a9d4c</commitId><timestamp>1770012645000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>fix web registration form size
</comment><date>2026-02-02 11:40:45 +0530</date><id>f67ff3c16ec11c24ea3f677aeace7255fd4a9d4c</id><msg>fix web registration form size</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</affectedPath><commitId>8d8e5e95d6f9f37595ee71295f06ad73b458af21</commitId><timestamp>1770013722000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Ensure waiting for permission to join is enforced in UI.

Hide profile button when waiting for approval.
Make sure selecting an account pending approval goes to wait for approval screen.
Make sure logging in with an account waiting for approval goes to the wait for approval screen.
</comment><date>2026-02-02 10:28:42 +0400</date><id>8d8e5e95d6f9f37595ee71295f06ad73b458af21</id><msg>Ensure waiting for permission to join is enforced in UI.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.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/domain/account/RespectAccountManager.kt</file></path><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-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseClient.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/domain/account/child/AddChildAccountUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDb.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>a7a20719f1026dc9e0da5566519f8999bb79e53b</commitId><timestamp>1770018710000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Invite edge case handling

1) Update AccountList screen to prevent clicking on a family member when account is not yet approved.
2) Update AddChildAccountUseCase to fetch updated parent and child Person to ensure that parent will see child in family members immediately when approval not required.
</comment><date>2026-02-02 11:51:50 +0400</date><id>a7a20719f1026dc9e0da5566519f8999bb79e53b</id><msg>Invite edge case handling</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseClient.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDb.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCase.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/acknowledgement/AcknowledgementScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</affectedPath><commitId>fbf6419013ba11a8a5c4a7fb1fcca1fc2d6ed9de</commitId><timestamp>1770019560000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update notices.
</comment><date>2026-02-02 12:06:00 +0400</date><id>fbf6419013ba11a8a5c4a7fb1fcca1fc2d6ed9de</id><msg>Update notices.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/acknowledgement/AcknowledgementScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/AddDefaultSchoolPermissionGrantsUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/domain/TestCheckPersonPermissionUseCaseImpl.kt</affectedPath><affectedPath>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt</affectedPath><commitId>c04cefd54bc651b5b489538ff16afba87330aa6a</commitId><timestamp>1770025063000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update AddSchoolUseCase and permissions to prevent creation of an additional admin during school self registration
</comment><date>2026-02-02 13:37:43 +0400</date><id>c04cefd54bc651b5b489538ff16afba87330aa6a</id><msg>Update AddSchoolUseCase and permissions to prevent creation of an additional admin during school self registration</msg><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/domain/TestCheckPersonPermissionUseCaseImpl.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/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/AddDefaultSchoolPermissionGrantsUseCase.kt</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-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/DeepLinkConstants.kt</affectedPath><commitId>c2700cf4aef6ab8ebb314741f6f8ae018a0fc78e</commitId><timestamp>1770025655000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove obsolete / unused DeepLinkConstants. Update RegisterSchoolUseCase to use shared invite code logic.
</comment><date>2026-02-02 13:47:35 +0400</date><id>c2700cf4aef6ab8ebb314741f6f8ae018a0fc78e</id><msg>Remove obsolete / unused DeepLinkConstants. Update RegisterSchoolUseCase to use shared invite code logic.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/DeepLinkConstants.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/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryMode.kt</affectedPath><commitId>d91f51a602ce426e739723ba637c2be15ffef4b6</commitId><timestamp>1770027231000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix SchoolDirectoryMode

Was using an enum as a constructor argument instead of string.
</comment><date>2026-02-02 14:13:51 +0400</date><id>d91f51a602ce426e739723ba637c2be15ffef4b6</id><msg>Fix SchoolDirectoryMode</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryMode.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</file></path><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/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>b35dc525708a1899acf5106b43da33036c2e939a</commitId><timestamp>1770028828000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Bump version
</comment><date>2026-02-02 14:40:28 +0400</date><id>b35dc525708a1899acf5106b43da33036c2e939a</id><msg>Bump version</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</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/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>142</buildNumber><marked><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><branch><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><branch><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><branch><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#142</displayName><duration>1429463</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #142</fullDisplayName><id>142</id><inProgress>false</inProgress><keepLog>false</keepLog><number>142</number><queueId>5622</queueId><result>SUCCESS</result><timestamp>1769976480948</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/142/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>141</buildNumber><marked><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><branch><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><branch><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><branch><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#141</displayName><duration>1440841</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #141</fullDisplayName><id>141</id><inProgress>false</inProgress><keepLog>false</keepLog><number>141</number><queueId>5602</queueId><result>SUCCESS</result><timestamp>1769890080948</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/141/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>140</buildNumber><marked><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><branch><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><branch><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><branch><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#140</displayName><duration>1495234</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #140</fullDisplayName><id>140</id><inProgress>false</inProgress><keepLog>false</keepLog><number>140</number><queueId>5581</queueId><result>FAILURE</result><timestamp>1769803680948</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/140/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>139</buildNumber><marked><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><branch><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><branch><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><branch><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#139</displayName><duration>1439366</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #139</fullDisplayName><id>139</id><inProgress>false</inProgress><keepLog>false</keepLog><number>139</number><queueId>5559</queueId><result>SUCCESS</result><timestamp>1769717280948</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/139/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>138</buildNumber><marked><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><branch><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><branch><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><branch><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#138</displayName><duration>1449189</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #138</fullDisplayName><id>138</id><inProgress>false</inProgress><keepLog>false</keepLog><number>138</number><queueId>5540</queueId><result>FAILURE</result><timestamp>1769630880948</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/138/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>137</buildNumber><marked><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><branch><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><branch><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><branch><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#137</displayName><duration>1432721</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #137</fullDisplayName><id>137</id><inProgress>false</inProgress><keepLog>false</keepLog><number>137</number><queueId>5514</queueId><result>SUCCESS</result><timestamp>1769544480948</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/137/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>136</buildNumber><marked><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><branch><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><branch><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><branch><SHA1>f2e2e6aa35ac7f795d9d6c208468711bdeee3719</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#136</displayName><duration>1465202</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #136</fullDisplayName><id>136</id><inProgress>false</inProgress><keepLog>false</keepLog><number>136</number><queueId>5492</queueId><result>SUCCESS</result><timestamp>1769458080948</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/136/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.android.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.desktop.kt</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><commitId>05352ad69b934b033f37bad94032aaa6502b35ee</commitId><timestamp>1769083671000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>add qr code camera permission
</comment><date>2026-01-22 17:37:51 +0530</date><id>05352ad69b934b033f37bad94032aaa6502b35ee</id><msg>add qr code camera permission</msg><path><editType>add</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.android.kt</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.desktop.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-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</affectedPath><commitId>dd390e419ee87a43bef23780ccf949b354341e0a</commitId><timestamp>1769147920000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>code refactor
</comment><date>2026-01-23 11:28:40 +0530</date><id>dd390e419ee87a43bef23780ccf949b354341e0a</id><msg>code refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>135</buildNumber><marked><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><branch><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><branch><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><branch><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#135</displayName><duration>1455109</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #135</fullDisplayName><id>135</id><inProgress>false</inProgress><keepLog>false</keepLog><number>135</number><queueId>5474</queueId><result>SUCCESS</result><timestamp>1769371680948</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/135/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>134</buildNumber><marked><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><branch><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><branch><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><branch><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#134</displayName><duration>1440385</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #134</fullDisplayName><id>134</id><inProgress>false</inProgress><keepLog>false</keepLog><number>134</number><queueId>5457</queueId><result>SUCCESS</result><timestamp>1769285280948</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/134/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>133</buildNumber><marked><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><branch><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><branch><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><branch><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#133</displayName><duration>1057671</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #133</fullDisplayName><id>133</id><inProgress>false</inProgress><keepLog>false</keepLog><number>133</number><queueId>5440</queueId><result>FAILURE</result><timestamp>1769198880948</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/133/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>132</buildNumber><marked><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><branch><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><branch><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><branch><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#132</displayName><duration>1499528</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #132</fullDisplayName><id>132</id><inProgress>false</inProgress><keepLog>false</keepLog><number>132</number><queueId>5423</queueId><result>SUCCESS</result><timestamp>1769112480948</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/132/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>131</buildNumber><marked><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><branch><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><branch><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><branch><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#131</displayName><duration>1454213</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #131</fullDisplayName><id>131</id><inProgress>false</inProgress><keepLog>false</keepLog><number>131</number><queueId>5404</queueId><result>SUCCESS</result><timestamp>1769026080297</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/131/</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 Mike Dawson</shortDescription><userId>mike</userId><userName>Mike Dawson</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>130</buildNumber><marked><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><branch><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><branch><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><branch><SHA1>a5328345c6425d0a9bf53cbec75d150f012676a0</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#130</displayName><duration>1453784</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #130</fullDisplayName><id>130</id><inProgress>false</inProgress><keepLog>false</keepLog><number>130</number><queueId>5400</queueId><result>SUCCESS</result><timestamp>1769015113935</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/130/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/SharedSchoolDeviceLoginSelectClassViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SharedDeviceSettingsViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/EnterRollNumberViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/SharedSchoolDeviceLoginSelectStudentViewModel.kt</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/RespectApp.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/SelectStudentScreen.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/viewmodel/settings/SettingsViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SharedDeviceSettingsScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/SelectClassScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/EnterRollNumberScreen.kt</affectedPath><commitId>c65221f861f513f8bc13c401052072440dd29ab7</commitId><timestamp>1764912074000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>add basic shared device login impl
</comment><date>2025-12-05 10:51:14 +0530</date><id>c65221f861f513f8bc13c401052072440dd29ab7</id><msg>add basic shared device login impl</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/RespectApp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/EnterRollNumberViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SharedDeviceSettingsScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/SelectClassScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/SharedSchoolDeviceLoginSelectClassViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/SharedSchoolDeviceLoginSelectStudentViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/SelectStudentScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SettingsViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/EnterRollNumberScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SharedDeviceSettingsViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/SharedSchoolDeviceLoginSelectClassViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SharedDeviceSettingsViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharedschooldevicelogin/SetSharedDeviceEnabledUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/EnterRollNumberViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/SelectStudentScreen.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/viewmodel/settings/SettingsViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLazyItems.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SharedDeviceSettingsScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/SelectClassScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/EnterRollNumberScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharedschooldevicelogin/GetSharedDeviceEnabledUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>ea0c713fc9b4612e9d579ff5315d6ded353283c9</commitId><timestamp>1765177002000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>add basic shared device login impl
</comment><date>2025-12-08 12:26:42 +0530</date><id>ea0c713fc9b4612e9d579ff5315d6ded353283c9</id><msg>add basic shared device login impl</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/EnterRollNumberScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharedschooldevicelogin/SetSharedDeviceEnabledUseCase.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/EnterRollNumberViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/SelectStudentScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharedschooldevicelogin/GetSharedDeviceEnabledUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</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/acknowledgement/AcknowledgementViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SettingsViewModel.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/SharedSchoolDeviceLoginSelectClassViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SharedDeviceSettingsViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SharedDeviceSettingsScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/SelectClassScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLazyItems.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>e088b1a99844d11b63b1f1362d1c7582a0dddb4d</commitId><timestamp>1765368972000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>added QR badge
</comment><date>2025-12-10 16:16:12 +0400</date><id>e088b1a99844d11b63b1f1362d1c7582a0dddb4d</id><msg>added QR badge</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/test-description/001_002_add_user_direct_test_description.md</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>d4938cbb89b255c08b627ab3bc8391a4dec2a387</commitId><timestamp>1765455995000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>added QR badge test
</comment><date>2025-12-11 16:26:35 +0400</date><id>d4938cbb89b255c08b627ab3bc8391a4dec2a387</id><msg>added QR badge test</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>edit</editType><file>respect-test-end-to-end/test-description/001_002_add_user_direct_test_description.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/layout/activity_web_view.xml</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>README.md</affectedPath><commitId>a2789c89fbfca3b760138bae32c3569bef3abea6</commitId><timestamp>1765782818000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>Add build environment variable for default app list
Remove non-functional try button
Learning unit screen: remove non-functional sorter
Add progress bar to learning unit viewer.
</comment><date>2025-12-15 12:43:38 +0530</date><id>a2789c89fbfca3b760138bae32c3569bef3abea6</id><msg>Add build environment variable for default app list</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.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>README.md</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/res/layout/activity_web_view.xml</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>31719f9b1309d45b39666e6c6310b6f6433d4184</commitId><timestamp>1765782818000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>Bump version for internal testing update.
</comment><date>2025-12-15 12:43:38 +0530</date><id>31719f9b1309d45b39666e6c6310b6f6433d4184</id><msg>Bump version for internal testing update.</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/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>c158d4b024bf09fa01501715c72e34990c6d2e28</commitId><timestamp>1765782818000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>Update db names and pref names to avoid update conflict.
</comment><date>2025-12-15 12:43:38 +0530</date><id>c158d4b024bf09fa01501715c72e34990c6d2e28</id><msg>Update db names and pref names to avoid update conflict.</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</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-app-compose/build.gradle.kts</affectedPath><commitId>dde844bb3148f88461ec1f118d4e83547e648428</commitId><timestamp>1765782818000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>Use default app list set by environment variable when provided.
</comment><date>2025-12-15 12:43:38 +0530</date><id>dde844bb3148f88461ec1f118d4e83547e648428</id><msg>Use default app list set by environment variable when provided.</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/build.gradle.kts</affectedPath><commitId>e1db52c32ec8bb3603273c78328c8fc3cce8efea</commitId><timestamp>1765782818000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>Set versions for public app store.
</comment><date>2025-12-15 12:43:38 +0530</date><id>e1db52c32ec8bb3603273c78328c8fc3cce8efea</id><msg>Set versions for public app store.</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><commitId>32a0477b9a132f38b9d0d44c68480a192d8f2033</commitId><timestamp>1765782818000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>Remove assertVisible try it button which is often unused (and now will not be shown).
</comment><date>2025-12-15 12:43:38 +0530</date><id>32a0477b9a132f38b9d0d44c68480a192d8f2033</id><msg>Remove assertVisible try it button which is often unused (and now will not be shown).</msg><path><editType>edit</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/RespectCredential.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithCredentialDbImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccount.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCaseClient.kt</affectedPath><commitId>4d3520fc26c23a560bd2b7c6b789a03d89822dc0</commitId><timestamp>1765782818000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>Update RespectCredential sealed class to add QR Code Badge credential type.
</comment><date>2025-12-15 12:43:38 +0530</date><id>4d3520fc26c23a560bd2b7c6b789a03d89822dc0</id><msg>Update RespectCredential sealed class to add QR Code Badge credential type.</msg><path><editType>edit</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/RespectCredential.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCaseClient.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithCredentialDbImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccount.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/authenticatepassword/AuthenticateQrBadgeUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonQrCode.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithCredentialDbImpl.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonQrCodeAdapter.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/drawable/fingerprint.png</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/images/RespectImage.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/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.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/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/9.json</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SharedDeviceSettingsScreen.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/person/manageaccount/ManageAccountViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSourceExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/SharedSchoolDeviceLoginSelectClassViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.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/shareddevicelogin/ScanQRCodeScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/CreateAccountSetPasswordScreen.kt</affectedPath><affectedPath>respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticateQrBadgeUseCaseDbImpl.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrCodeDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonQrCodeEntity.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeDataSourceRepository.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/qrcode/QrCodeRoute.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrDataSourceHttp.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/images/RespectImage.android.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</affectedPath><commitId>028b9f680bac8c4dee6cc32963d82ef1b35d3188</commitId><timestamp>1765782818000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>add shared device login impl
</comment><date>2025-12-15 12:43:38 +0530</date><id>028b9f680bac8c4dee6cc32963d82ef1b35d3188</id><msg>add shared device login impl</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SharedDeviceSettingsScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonQrCode.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonQrCodeEntity.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-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithCredentialDbImpl.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrCodeDataSourceLocal.kt</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-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrDataSource.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-server/src/main/kotlin/world/respect/server/routes/qrcode/QrCodeRoute.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/images/RespectImage.android.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/images/RespectImage.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/authenticatepassword/AuthenticateQrBadgeUseCase.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-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticateQrBadgeUseCaseDbImpl.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/androidMain/res/drawable/fingerprint.png</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.kt</file></path><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-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonQrCodeAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/9.json</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/SharedSchoolDeviceLoginSelectClassViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/CreateAccountSetPasswordScreen.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSourceExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SharedDeviceSettingsViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/SharedSchoolDeviceLoginSelectClassViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/EnterRollNumberViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/SharedSchoolDeviceLoginSelectStudentViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/SelectStudentScreen.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/viewmodel/settings/SettingsViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/SelectClassScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SharedDeviceSettingsScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/EnterRollNumberScreen.kt</affectedPath><commitId>958231c52c70ca0f09ac855fc71cc828f1f3dd19</commitId><timestamp>1765784945000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>remove shared device/settings screen changes from assign badge to a student flow
</comment><date>2025-12-15 13:19:05 +0530</date><id>958231c52c70ca0f09ac855fc71cc828f1f3dd19</id><msg>remove shared device/settings screen changes from assign badge to a student flow</msg><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-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/SelectClassScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/SelectStudentScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SharedDeviceSettingsViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/EnterRollNumberScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/SharedSchoolDeviceLoginSelectStudentViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SettingsViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SharedDeviceSettingsScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/EnterRollNumberViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/SharedSchoolDeviceLoginSelectClassViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharedschooldevicelogin/SetSharedDeviceEnabledUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharedschooldevicelogin/GetSharedDeviceEnabledUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/RespectApp.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLazyItems.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>2ef2f3c9d9caaaa71a9d86d100ea73a55af6a61c</commitId><timestamp>1765786488000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>remove shared device/settings screen changes from assign badge to a student flow
</comment><date>2025-12-15 13:44:48 +0530</date><id>2ef2f3c9d9caaaa71a9d86d100ea73a55af6a61c</id><msg>remove shared device/settings screen changes from assign badge to a student flow</msg><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharedschooldevicelogin/GetSharedDeviceEnabledUseCase.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/src/androidMain/kotlin/world/respect/RespectApp.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLazyItems.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharedschooldevicelogin/SetSharedDeviceEnabledUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonQrCode.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonQrCodeAdapter.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrCodeDataSourceLocal.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonQrCodeEntity.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeDataSourceRepository.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/person/manageaccount/ManageAccountViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSourceExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonBadge.kt</affectedPath><commitId>e5e64097b8d212d870fb079e6031779581bc9494</commitId><timestamp>1765799935000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>add refactor
</comment><date>2025-12-15 17:28:55 +0530</date><id>e5e64097b8d212d870fb079e6031779581bc9494</id><msg>add refactor</msg><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonQrCode.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrDataSource.kt</file></path><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/school/PersonQrDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonBadge.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSourceExt.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonQrCodeEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonQrCodeAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrCodeDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.kt</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/school/PersonQrDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppUiState.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</affectedPath><commitId>4c8a97ce2e5ee958258b2bf34ff5cfefaf9c5309</commitId><timestamp>1765883598000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>add qr login flow
</comment><date>2025-12-16 16:43:18 +0530</date><id>4c8a97ce2e5ee958258b2bf34ff5cfefaf9c5309</id><msg>add qr login flow</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</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/sharedschooldevicelogin/ScanQRCodeViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppUiState.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeDataSourceRepository.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</affectedPath><commitId>06177cda745f0ee48093d9a5c9cac22a10eb5ad4</commitId><timestamp>1765950596000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>add refactor
</comment><date>2025-12-17 11:19:56 +0530</date><id>06177cda745f0ee48093d9a5c9cac22a10eb5ad4</id><msg>add refactor</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</affectedPath><commitId>927249d97cb11757ef2ab8515c702151139f6ddf</commitId><timestamp>1765960375000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>add refactor
</comment><date>2025-12-17 14:02:55 +0530</date><id>927249d97cb11757ef2ab8515c702151139f6ddf</id><msg>add refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</affectedPath><commitId>c6286a14b10de2fdd132e3d3f1db89bf55082703</commitId><timestamp>1765961069000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>add refactor
</comment><date>2025-12-17 14:14:29 +0530</date><id>c6286a14b10de2fdd132e3d3f1db89bf55082703</id><msg>add refactor</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>bc3cd41b46b9653bec8ba58daa6486d3af48065f</commitId><timestamp>1765977119000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>test added
</comment><date>2025-12-17 17:11:59 +0400</date><id>bc3cd41b46b9653bec8ba58daa6486d3af48065f</id><msg>test added</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</affectedPath><commitId>1fcd7d7b84fabaa4f9aaa23be185111091cecdc2</commitId><timestamp>1766032890000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>refactor
</comment><date>2025-12-18 10:11:30 +0530</date><id>1fcd7d7b84fabaa4f9aaa23be185111091cecdc2</id><msg>refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/domain/account/AuthWithPasswordIntegrationTest.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/account/invite/RedeemInviteIntegrationTest.kt</affectedPath><commitId>ca337fc7b5a15bc77acf07d22b9a4acad2220ec7</commitId><timestamp>1766037854000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>refactor
</comment><date>2025-12-18 11:34:14 +0530</date><id>ca337fc7b5a15bc77acf07d22b9a4acad2220ec7</id><msg>refactor</msg><path><editType>edit</editType><file>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/account/invite/RedeemInviteIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/domain/account/AuthWithPasswordIntegrationTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</affectedPath><commitId>43aef2590b7bf09fc5b1a9afadfa75b88ad31ee1</commitId><timestamp>1766038149000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>refactor
</comment><date>2025-12-18 11:39:09 +0530</date><id>43aef2590b7bf09fc5b1a9afadfa75b88ad31ee1</id><msg>refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</affectedPath><commitId>0f64b6c13a531e14248ae1a72976e55b341ca09d</commitId><timestamp>1766043418000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>add test tags
</comment><date>2025-12-18 13:06:58 +0530</date><id>0f64b6c13a531e14248ae1a72976e55b341ca09d</id><msg>add test tags</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>801fbc412e67e6e913aba7abb3ec52ee3c2da050</commitId><timestamp>1766056842000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>test added
</comment><date>2025-12-18 15:20:42 +0400</date><id>801fbc412e67e6e913aba7abb3ec52ee3c2da050</id><msg>test added</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>5fe4ed0469cee929c4f86592f3cce33831408a1b</commitId><timestamp>1766065558000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test
</comment><date>2025-12-18 17:45:58 +0400</date><id>5fe4ed0469cee929c4f86592f3cce33831408a1b</id><msg>updated test</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_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/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.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/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateqrbadge/ValidateQrCodeUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</affectedPath><commitId>dc9039a15e7e5133d869b29d6decd680f864d290</commitId><timestamp>1766121689000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>add validation
</comment><date>2025-12-19 10:51:29 +0530</date><id>dc9039a15e7e5133d869b29d6decd680f864d290</id><msg>add validation</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.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/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.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-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrDataSourceHttp.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateqrbadge/ValidateQrCodeUseCase.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/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>fe768937b2f1a37d63e1c2311b0c5405bec4029b</commitId><timestamp>1766134838000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test
</comment><date>2025-12-19 13:00:38 +0400</date><id>fe768937b2f1a37d63e1c2311b0c5405bec4029b</id><msg>updated test</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>b8e3fa446ecd648b5b733c7cfea5dcad551c8f31</commitId><timestamp>1766136215000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test
</comment><date>2025-12-19 13:23:35 +0400</date><id>b8e3fa446ecd648b5b733c7cfea5dcad551c8f31</id><msg>updated test</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.kt</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>e7eacd53a2a7388fbcb6d85d2502049cae6f8e9a</commitId><timestamp>1766152752000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>fix test
</comment><date>2025-12-19 19:29:12 +0530</date><id>e7eacd53a2a7388fbcb6d85d2502049cae6f8e9a</id><msg>fix test</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</affectedPath><commitId>8c8cb0e0252a8fc97a574ccb99271d58650b5e51</commitId><timestamp>1766462314000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>add validation
</comment><date>2025-12-23 09:28:34 +0530</date><id>8c8cb0e0252a8fc97a574ccb99271d58650b5e51</id><msg>add validation</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>a5d3f615d74cd3d71356bed9841b5eb7ab9bd091</commitId><timestamp>1766576027000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test flow
</comment><date>2025-12-24 15:33:47 +0400</date><id>a5d3f615d74cd3d71356bed9841b5eb7ab9bd091</id><msg>updated test flow</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>b0696c8d850af3f0f5751183fecfae8caec5f1a9</commitId><timestamp>1766577508000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test
</comment><date>2025-12-24 15:58:28 +0400</date><id>b0696c8d850af3f0f5751183fecfae8caec5f1a9</id><msg>updated test</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateqrbadge/ValidateQrCodeUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.kt</affectedPath><commitId>a69c326e6ffa95d60aa1ceb9712de338142d57bf</commitId><timestamp>1767097156000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>update create accound screen
</comment><date>2025-12-30 17:49:16 +0530</date><id>a69c326e6ffa95d60aa1ceb9712de338142d57bf</id><msg>update create accound screen</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateqrbadge/ValidateQrCodeUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.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/sharedschooldevicelogin/ScanQRCodeViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</affectedPath><commitId>1c7437aeb7b9e39fbb417811c0456ce259ddbecc</commitId><timestamp>1767114487000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>fix test
</comment><date>2025-12-30 22:38:07 +0530</date><id>1c7437aeb7b9e39fbb417811c0456ce259ddbecc</id><msg>fix test</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.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-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonExt.kt</file></path><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</affectedPath><commitId>6ed681d79f66132537e4de61f288e0ac7165f195</commitId><timestamp>1767115767000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>fix test
</comment><date>2025-12-30 22:59:27 +0530</date><id>6ed681d79f66132537e4de61f288e0ac7165f195</id><msg>fix test</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>2521e0f65acb48b2b7e2be3b416a6296bb1bedd8</commitId><timestamp>1767159445000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>fix test
</comment><date>2025-12-31 11:07:25 +0530</date><id>2521e0f65acb48b2b7e2be3b416a6296bb1bedd8</id><msg>fix test</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</affectedPath><commitId>915278ea88ae8a0d867fbc5e0c114ab17ec35fd2</commitId><timestamp>1767160227000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>fix test
</comment><date>2025-12-31 11:20:27 +0530</date><id>915278ea88ae8a0d867fbc5e0c114ab17ec35fd2</id><msg>fix test</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</affectedPath><commitId>670d57b479c56cfb52fa2c38dcee8cedb808b45f</commitId><timestamp>1767161107000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>fix test
</comment><date>2025-12-31 11:35:07 +0530</date><id>670d57b479c56cfb52fa2c38dcee8cedb808b45f</id><msg>fix test</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>65573370e9537b24bc17e332ab85dab78d978214</commitId><timestamp>1767170003000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test flow
</comment><date>2025-12-31 12:33:23 +0400</date><id>65573370e9537b24bc17e332ab85dab78d978214</id><msg>updated test flow</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</affectedPath><commitId>7bc84b4016c26b3475f00c60d496996a24cc1582</commitId><timestamp>1767172523000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>fix  popup menu
</comment><date>2025-12-31 14:45:23 +0530</date><id>7bc84b4016c26b3475f00c60d496996a24cc1582</id><msg>fix  popup menu</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/qrcode/QrCodeRoute.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeDataSourceRepository.kt</affectedPath><commitId>4432768f4f73f3bd437dbeb7a75ee64c1220cb84</commitId><timestamp>1767174384000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>fix revoke qr
</comment><date>2025-12-31 15:16:24 +0530</date><id>4432768f4f73f3bd437dbeb7a75ee64c1220cb84</id><msg>fix revoke qr</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/qrcode/QrCodeRoute.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-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeDataSourceRepository.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.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/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</affectedPath><commitId>881292056fd4a1fa40e64208b83ccacf6db7469b</commitId><timestamp>1767181334000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>code refactor
</comment><date>2025-12-31 17:12:14 +0530</date><id>881292056fd4a1fa40e64208b83ccacf6db7469b</id><msg>code refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.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/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/assign_qr_badge_flow.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>2bc1067f6c9cbcb0a00a46ddfb37dceea8ff48b1</commitId><timestamp>1767187547000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test as per comments
</comment><date>2025-12-31 17:25:47 +0400</date><id>2bc1067f6c9cbcb0a00a46ddfb37dceea8ff48b1</id><msg>updated test as per comments</msg><path><editType>add</editType><file>.maestro/flows/subflows/assign_qr_badge_flow.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/assign_qr_badge_flow.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>ae9c33681028799ef1e4f0e77896dd9a299cc7ed</commitId><timestamp>1767187838000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test as per comments
</comment><date>2025-12-31 17:30:38 +0400</date><id>ae9c33681028799ef1e4f0e77896dd9a299cc7ed</id><msg>updated test as per comments</msg><path><editType>edit</editType><file>.maestro/flows/subflows/assign_qr_badge_flow.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>73de0e585e195e4d8bb9de8cb0a0b1a7a13f702e</commitId><timestamp>1767333315000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test- added assignment flow
</comment><date>2026-01-02 09:55:15 +0400</date><id>73de0e585e195e4d8bb9de8cb0a0b1a7a13f702e</id><msg>updated test- added assignment flow</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>d426a7f2c5c787142555e4fc3c042bf3c07c273b</commitId><timestamp>1767334848000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test- added assignment flow
</comment><date>2026-01-02 10:20:48 +0400</date><id>d426a7f2c5c787142555e4fc3c042bf3c07c273b</id><msg>updated test- added assignment flow</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/AppStateIconExtensions.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppStateIcon.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/images/RespectImage.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppActionButton.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/drawable/fingerprint.png</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeDataSourceRepository.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/qrcode/QrCodeRoute.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/images/RespectImage.android.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppUiState.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/UrlParser.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonBadge.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</affectedPath><commitId>bafc6e0046c1ab9aba0a85b70b8252cfe17c61b2</commitId><timestamp>1767595712000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>fix comments
</comment><date>2026-01-05 12:18:32 +0530</date><id>bafc6e0046c1ab9aba0a85b70b8252cfe17c61b2</id><msg>fix comments</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppStateIcon.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeDataSourceRepository.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppUiState.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/images/RespectImage.android.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/images/RespectImage.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/AppStateIconExtensions.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonBadge.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.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-server/src/main/kotlin/world/respect/server/routes/qrcode/QrCodeRoute.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppActionButton.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/composeResources/drawable/fingerprint.png</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/UrlParser.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><commitId>524ea1e54058c099fb28a472a8f1cc99203713ec</commitId><timestamp>1767597629000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>fix cconflict
</comment><date>2026-01-05 12:50:29 +0530</date><id>524ea1e54058c099fb28a472a8f1cc99203713ec</id><msg>fix cconflict</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.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/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>8b7699c21ad2e470732a33af39e46256c9010702</commitId><timestamp>1767605605000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test- added assignment flow
</comment><date>2026-01-05 13:33:25 +0400</date><id>8b7699c21ad2e470732a33af39e46256c9010702</id><msg>updated test- added assignment flow</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>da71fdb6b3c7b5b69cf9476dbf48e4c6d8e8cea6</commitId><timestamp>1767605615000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test- added assignment flow
</comment><date>2026-01-05 13:33:35 +0400</date><id>da71fdb6b3c7b5b69cf9476dbf48e4c6d8e8cea6</id><msg>updated test- added assignment flow</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonQrCodeAdapter.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.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/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.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/school/entities/PersonQrCodeEntity.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/NextAfterScan.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSourceExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateqrbadge/ValidateQrCodeUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</affectedPath><commitId>4099456112d4f4031b062831015499aad6f19fd4</commitId><timestamp>1767699201000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>fix qr code delete function
</comment><date>2026-01-06 17:03:21 +0530</date><id>4099456112d4f4031b062831015499aad6f19fd4</id><msg>fix qr code delete function</msg><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrDataSource.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-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrDataSourceHttp.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/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonQrCodeAdapter.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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonQrCodeEntity.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSourceExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateqrbadge/ValidateQrCodeUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/NextAfterScan.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/qrcode/QrCodeRoute.kt</affectedPath><commitId>e3dcdaef343f0931eb2016fdf55f1365b0748c04</commitId><timestamp>1767760527000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>fix build failure
</comment><date>2026-01-07 10:05:27 +0530</date><id>e3dcdaef343f0931eb2016fdf55f1365b0748c04</id><msg>fix build failure</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/qrcode/QrCodeRoute.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/NextAfterScan.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.kt</affectedPath><commitId>9fdd846dd8c1d7a915e7856ce5083941ffb75fa0</commitId><timestamp>1767765086000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>refactor
</comment><date>2026-01-07 11:21:26 +0530</date><id>9fdd846dd8c1d7a915e7856ce5083941ffb75fa0</id><msg>refactor</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/NextAfterScan.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</affectedPath><commitId>9f0fe133650f50d8cd964d813f69a142a3fd61cc</commitId><timestamp>1768310001000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove gap on top of Scan QR code screen that should not have been there.
</comment><date>2026-01-13 17:13:21 +0400</date><id>9f0fe133650f50d8cd964d813f69a142a3fd61cc</id><msg>Remove gap on top of Scan QR code screen that should not have been there.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>4ff80d2eb7dd31b51c9cd9bf12737884a56be83e</commitId><timestamp>1768313739000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test-resolved merge conflicts
</comment><date>2026-01-13 18:15:39 +0400</date><id>4ff80d2eb7dd31b51c9cd9bf12737884a56be83e</id><msg>updated test-resolved merge conflicts</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.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><commitId>092160e5fb042cf2df38f1c989f128c5505e2099</commitId><timestamp>1768316270000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Minor tidyups:

a) Rename QR code screen and viewmodel package to scanqrcode (not shareddevicelogin) because the Scan QR code function will be used for more than just badge login
b) Minor formatting fixes for AppBar (avoid line overrun)
</comment><date>2026-01-13 18:57:50 +0400</date><id>092160e5fb042cf2df38f1c989f128c5505e2099</id><msg>Minor tidyups:</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.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/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/sharedschooldevicelogin/ScanQRCodeViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/shareddevicelogin/ScanQRCodeScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</affectedPath><commitId>92d7f8189d0243896b73fbd7358647678fee19ce</commitId><timestamp>1768317223000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>ScanQRCodeViewModel: should accept account manager as a normal dependency
Remove duplicate error messages from uistate. Should have only one error message.
Remove UiStates isloading - this should use launchWithLoadingIndicator and appstate's loading state (which is connected to the appbar and will automatically show a progress indicator accordingly).
</comment><date>2026-01-13 19:13:43 +0400</date><id>92d7f8189d0243896b73fbd7358647678fee19ce</id><msg>ScanQRCodeViewModel: should accept account manager as a normal dependency</msg><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-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateqrbadge/ValidateQrCodeUseCase.kt</affectedPath><commitId>7c1bbd436075fe605b8e363b9e80b255ad1e2d8f</commitId><timestamp>1768368838000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>fix test
</comment><date>2026-01-14 11:03:58 +0530</date><id>7c1bbd436075fe605b8e363b9e80b255ad1e2d8f</id><msg>fix test</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateqrbadge/ValidateQrCodeUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateqrbadge/ValidateQrCodeUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</affectedPath><commitId>9901224b918beca894e77668cd4e7eb703236e35</commitId><timestamp>1768382915000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>add invalid qr code ui part
</comment><date>2026-01-14 14:58:35 +0530</date><id>9901224b918beca894e77668cd4e7eb703236e35</id><msg>add invalid qr code ui part</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateqrbadge/ValidateQrCodeUseCase.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-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</affectedPath><commitId>6715826b1773888a4cd4a22d5fea65cac73ee927</commitId><timestamp>1768384040000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>remove qrCodeBadgeError from manageaccountviewmodel
</comment><date>2026-01-14 15:17:20 +0530</date><id>6715826b1773888a4cd4a22d5fea65cac73ee927</id><msg>remove qrCodeBadgeError from manageaccountviewmodel</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>c9dde0b32fa524fed1012727692aef84380f7ca8</commitId><timestamp>1768392736000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test - error
</comment><date>2026-01-14 16:12:16 +0400</date><id>c9dde0b32fa524fed1012727692aef84380f7ca8</id><msg>updated test - error</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</affectedPath><commitId>8ea3a38b49b9ec887cd96c545a182ac905d99a64</commitId><timestamp>1768456145000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>fix landscape mode
</comment><date>2026-01-15 11:19:05 +0530</date><id>8ea3a38b49b9ec887cd96c545a182ac905d99a64</id><msg>fix landscape mode</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppActionButton.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</affectedPath><commitId>6659bccefdd6c8491d9e1779eef88466b26981ea</commitId><timestamp>1768564544000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Change AppActionButton contentDescription to use UiText instead of string.
</comment><date>2026-01-16 15:55:44 +0400</date><id>6659bccefdd6c8491d9e1779eef88466b26981ea</id><msg>Change AppActionButton contentDescription to use UiText instead of string.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppActionButton.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</affectedPath><commitId>5f533721228a5e8deb87303bde33bd1f39adf00f</commitId><timestamp>1768565527000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix ManageAccountViewModel : remove race condition created by calling .launch twice for a single operation.
</comment><date>2026-01-16 16:12:07 +0400</date><id>5f533721228a5e8deb87303bde33bd1f39adf00f</id><msg>Fix ManageAccountViewModel : remove race condition created by calling .launch twice for a single operation.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonQrBadgeAdapter.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/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonQrCodeAdapter.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/RespectCredential.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrBadgeDataSourceDb.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/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonQrBadge.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonQrBadgeEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSourceExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrCodeBadgeDataSourceLocal.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrCodeDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeBadgeDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonQrCodeEntity.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/qrcode/QrCodeRoute.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrDataSourceHttp.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/qrcode/PersonQrBadgeRoute.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonBadge.kt</affectedPath><commitId>435971fd8d72873ad2551abbbe65d3de97c5f230</commitId><timestamp>1768568786000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Refactor for consistent naming on PersonQrBadge entity.

Previously some parts were called PersonBadge, some PersonQr. Needs to be consistent.
</comment><date>2026-01-16 17:06:26 +0400</date><id>435971fd8d72873ad2551abbbe65d3de97c5f230</id><msg>Refactor for consistent naming on PersonQrBadge entity.</msg><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrCodeBadgeDataSourceLocal.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonQrBadgeAdapter.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrBadgeDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttp.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrCodeDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonBadge.kt</file></path><path><editType>edit</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/RespectCredential.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-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrDataSourceHttp.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-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonQrCodeEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonQrBadgeEntity.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/PersonQrBadgeDataSourceExt.kt</file></path><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-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonQrCodeAdapter.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/qrcode/PersonQrBadgeRoute.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonQrBadge.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/qrcode/QrCodeRoute.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeBadgeDataSourceRepository.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>adc7e7c2768e5bfdfa4c32deee8928f2e6f828bd</commitId><timestamp>1768627428000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>change qr code library
</comment><date>2026-01-17 10:53:48 +0530</date><id>adc7e7c2768e5bfdfa4c32deee8928f2e6f828bd</id><msg>change qr code library</msg><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</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/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</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/school/adapters/PersonQrBadgeAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.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/components/StringBuilderExt.kt</affectedPath><affectedPath>respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticateQrBadgeUseCaseDbImpl.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrBadgeDataSourceDb.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeBadgeDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonQrBadge.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/UrlParser.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSourceExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonQrBadgeEntity.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</affectedPath><commitId>1ff4f69aa944f87e8ba11f0cff66b2e60d2601cd</commitId><timestamp>1768740026000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Tidyup ManageAccountScreen: if password not set, still use the same ListItem.
Remove includeDeleted from PersonQrBadgeDataSource.GetListParams - this is already available in common
Change PersonQrBadgeEntity Url field to use Url type.
Implement permission enforcement in PersonQrBadgeDataSourceDb
</comment><date>2026-01-18 16:40:26 +0400</date><id>1ff4f69aa944f87e8ba11f0cff66b2e60d2601cd</id><msg>Tidyup ManageAccountScreen: if password not set, still use the same ListItem.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/UrlParser.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSourceExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.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-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonQrBadgeEntity.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/school/daos/PersonQrBadgeEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeBadgeDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticateQrBadgeUseCaseDbImpl.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/StringBuilderExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonQrBadgeAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrBadgeDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonQrBadge.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectQrBadgeInfoBox.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.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/person/manageaccount/ManageAccountScreen.kt</affectedPath><commitId>32a89ebad88b2143a3dd64fbc8209d27de0ee5cc</commitId><timestamp>1768745882000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Further tidyup:
Ensure event functions are named onEventName eg onClickButton
Move Badge Info box into its own function
</comment><date>2026-01-18 18:18:02 +0400</date><id>32a89ebad88b2143a3dd64fbc8209d27de0ee5cc</id><msg>Further tidyup:</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.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-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectQrBadgeInfoBox.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeBadgeDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</affectedPath><commitId>fa0dc13b9d7b3c51f4da208fcbb59500af1150c5</commitId><timestamp>1768749707000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Tidyup ScanQRCodeViewModel:

a) Remove unnecessary try-catch statements: multiple try catch statements were all the same: if an exception is caught, set uiState error text to .uiTextOrGeneric
b) Remove unnecessary extra launch statements.
</comment><date>2026-01-18 19:21:47 +0400</date><id>fa0dc13b9d7b3c51f4da208fcbb59500af1150c5</id><msg>Tidyup ScanQRCodeViewModel:</msg><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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeBadgeDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</affectedPath><commitId>9b3e623660d98887adcb09ef0dfbf1bc5647423e</commitId><timestamp>1768801521000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>refactor
</comment><date>2026-01-19 11:15:21 +0530</date><id>9b3e623660d98887adcb09ef0dfbf1bc5647423e</id><msg>refactor</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/assign_qr_badge_flow.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>cc8ef7c83589eabd78ff74253913132347774d74</commitId><timestamp>1768809560000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test - More Options
</comment><date>2026-01-19 11:59:20 +0400</date><id>cc8ef7c83589eabd78ff74253913132347774d74</id><msg>updated test - More Options</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/assign_qr_badge_flow.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSource.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeBadgeDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrBadgeDataSourceDb.kt</affectedPath><commitId>9217f81d1821ad8c20e94aaa91a66f8ce2debbcb</commitId><timestamp>1768809675000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove PersonQrBadge existsByUrl: looking for a badge by URL needs to be done by using the list function.
</comment><date>2026-01-19 12:01:15 +0400</date><id>9217f81d1821ad8c20e94aaa91a66f8ce2debbcb</id><msg>Remove PersonQrBadge existsByUrl: looking for a badge by URL needs to be done by using the list function.</msg><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeBadgeDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrBadgeDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><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/school/daos/PersonQrBadgeEntityDao.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSourceExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonQrBadgeEntity.kt</affectedPath><commitId>f3d7f8fc88945ec5e072c433938796cc9e8567d6</commitId><timestamp>1768812372000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Further qr badge datasource tidyup:
1) Remove unnecessary extension function (even though it was following the same pattern we had used for password)
2) Remove unused DAO query function
3) Add index for QR code url
</comment><date>2026-01-19 12:46:12 +0400</date><id>f3d7f8fc88945ec5e072c433938796cc9e8567d6</id><msg>Further qr badge datasource tidyup:</msg><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/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSourceExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonQrBadgeEntity.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</affectedPath><commitId>f6103410abc1b55e0f2bc36477e51433c12e78a3</commitId><timestamp>1768813679000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Minor tidyup on SetUsernameAndPassword:
1) Remove unused ui state property isQrAlreadyAssigned
2) Rename uistate property: not isStudent, should be showQrBadgeInfoBox
</comment><date>2026-01-19 13:07:59 +0400</date><id>f6103410abc1b55e0f2bc36477e51433c12e78a3</id><msg>Minor tidyup on SetUsernameAndPassword:</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticateQrBadgeUseCaseDbImpl.kt</affectedPath><commitId>5882c8eed7695c5777994d7aa8d86e6b87612c68</commitId><timestamp>1768814421000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>AuthenticateQrBadgeUseCaseDbImpl: remove useless if statement that could never be true

qrCodeEntity.pqrQrCodeUrl != credential.qrCodeUrl would never be - it was found by searching the database by Url.
</comment><date>2026-01-19 13:20:21 +0400</date><id>5882c8eed7695c5777994d7aa8d86e6b87612c68</id><msg>AuthenticateQrBadgeUseCaseDbImpl: remove useless if statement that could never be true</msg><path><editType>edit</editType><file>respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticateQrBadgeUseCaseDbImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><commitId>c0dd4e4deb4fde98ff0b521d8ec1778c4286a182</commitId><timestamp>1768815721000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>Remove hardcoded english from ui text strings
</comment><date>2026-01-19 15:12:01 +0530</date><id>c0dd4e4deb4fde98ff0b521d8ec1778c4286a182</id><msg>Remove hardcoded english from ui text strings</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><commitId>ad35e73e8c202735f82cc0cb64c8e8d106eae99f</commitId><timestamp>1768817989000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>add automatic username suggestion
</comment><date>2026-01-19 15:49:49 +0530</date><id>ad35e73e8c202735f82cc0cb64c8e8d106eae99f</id><msg>add automatic username suggestion</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><commitId>5748955401b96196a48a88d986e2b5a24bbdf97a</commitId><timestamp>1768820871000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>fix revoke issue
</comment><date>2026-01-19 16:37:51 +0530</date><id>5748955401b96196a48a88d986e2b5a24bbdf97a</id><msg>fix revoke issue</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>626f643f39ba0cb381fb00f7525a2aea8811a592</commitId><timestamp>1768821408000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test - automated username field
</comment><date>2026-01-19 15:16:48 +0400</date><id>626f643f39ba0cb381fb00f7525a2aea8811a592</id><msg>updated test - automated username field</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>29a192823296d7934f48ebb62acbbc8d30513252</commitId><timestamp>1768821530000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test - automated username field
</comment><date>2026-01-19 15:18:50 +0400</date><id>29a192823296d7934f48ebb62acbbc8d30513252</id><msg>updated test - automated username field</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/README.md</affectedPath><affectedPath>respect-datalayer/README.md</affectedPath><commitId>8db274da685d982c6446ebda0d041793ae05df32</commitId><timestamp>1768825559000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>Update datalayer README to add conceptual notes on data deletion.
</comment><date>2026-01-19 17:55:59 +0530</date><id>8db274da685d982c6446ebda0d041793ae05df32</id><msg>Update datalayer README to add conceptual notes on data deletion.</msg><path><editType>edit</editType><file>respect-datalayer-repository/README.md</file></path><path><editType>edit</editType><file>respect-datalayer/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/erase_text.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_using_invite_code_test.yaml</affectedPath><commitId>5d2f9461c1b913d096c0e3bf86dc58a96b7b31e4</commitId><timestamp>1768825642000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>updated eraseText
</comment><date>2026-01-19 17:57:22 +0530</date><id>5d2f9461c1b913d096c0e3bf86dc58a96b7b31e4</id><msg>updated eraseText</msg><path><editType>edit</editType><file>.maestro/flows/001_001_invite_using_invite_code_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/erase_text.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt</affectedPath><commitId>da316f2f3d5146e9ade72aa0140596e59b219312</commitId><timestamp>1768825653000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>Fix UrlExt.schoolUrlOrNull function.
</comment><date>2026-01-19 17:57:33 +0530</date><id>da316f2f3d5146e9ade72aa0140596e59b219312</id><msg>Fix UrlExt.schoolUrlOrNull function.</msg><path><editType>edit</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateqrbadge/ValidateQrCodeUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/UrlParser.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</affectedPath><commitId>b672c46c339df2ef1e78bdabaf7f8510414cfe55</commitId><timestamp>1768825653000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>remove other custom logic for schoolurl
</comment><date>2026-01-19 17:57:33 +0530</date><id>b672c46c339df2ef1e78bdabaf7f8510414cfe55</id><msg>remove other custom logic for schoolurl</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateqrbadge/ValidateQrCodeUseCase.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/util/UrlParser.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>0726c29208a0b19d6e9fc170e00db06b1abe2bc8</commitId><timestamp>1768829659000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test - automated username field
</comment><date>2026-01-19 17:34:19 +0400</date><id>0726c29208a0b19d6e9fc170e00db06b1abe2bc8</id><msg>updated test - automated username field</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.kt</affectedPath><commitId>12088ad3df17ed4f6d79dd4b986b121350e217ec</commitId><timestamp>1768831977000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix PersonQrBadgeEntityDao LIST_SQL query: the WHERE clause was not handling guidNum = 0 correctly.
</comment><date>2026-01-19 18:12:57 +0400</date><id>12088ad3df17ed4f6d79dd4b986b121350e217ec</id><msg>Fix PersonQrBadgeEntityDao LIST_SQL query: the WHERE clause was not handling guidNum = 0 correctly.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>f0a8c73c3497f110b72458e49adb808fb2719365</commitId><timestamp>1768884536000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>updated eraseText
</comment><date>2026-01-20 10:18:56 +0530</date><id>f0a8c73c3497f110b72458e49adb808fb2719365</id><msg>updated eraseText</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</affectedPath><affectedPath>respect-lib-util/src/jvmTest/kotlin/world/respect/libutil/ext/UrlResolveTest.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt</affectedPath><commitId>6a4dea3826b5bbee639badcad4e04a963e7d62e7</commitId><timestamp>1768884540000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>Add normalization for school endpoint URL.
</comment><date>2026-01-20 10:19:00 +0530</date><id>6a4dea3826b5bbee639badcad4e04a963e7d62e7</id><msg>Add normalization for school endpoint URL.</msg><path><editType>edit</editType><file>respect-lib-util/src/jvmTest/kotlin/world/respect/libutil/ext/UrlResolveTest.kt</file></path><path><editType>edit</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/drawable/undraw_qr_code_scan_bewe.xml</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/images/RespectImage.android.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectQrBadgeInfoBox.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/drawable/fingerprint.png</affectedPath><commitId>f01aea6265748d566589af4ba8c85a1a5324a508</commitId><timestamp>1768887431000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>add qr code image
</comment><date>2026-01-20 11:07:11 +0530</date><id>f01aea6265748d566589af4ba8c85a1a5324a508</id><msg>add qr code image</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/images/RespectImage.android.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/drawable/fingerprint.png</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectQrBadgeInfoBox.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/composeResources/drawable/undraw_qr_code_scan_bewe.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/images/RespectImage.kt</affectedPath><commitId>6ecaa887d61eceebac5d9362620754a32c3f1570</commitId><timestamp>1768887699000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>code refactor
</comment><date>2026-01-20 11:11:39 +0530</date><id>6ecaa887d61eceebac5d9362620754a32c3f1570</id><msg>code refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/images/RespectImage.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>b1c48b8af1ec1fcafac7c46674133e230d6bc9b7</commitId><timestamp>1768888353000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test - automated username field
</comment><date>2026-01-20 09:52:33 +0400</date><id>b1c48b8af1ec1fcafac7c46674133e230d6bc9b7</id><msg>updated test - automated username field</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><commitId>fcbfb6581579024f495c6b2dff2d9163fa54ed48</commitId><timestamp>1768889640000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>code refactor
</comment><date>2026-01-20 11:44:00 +0530</date><id>fcbfb6581579024f495c6b2dff2d9163fa54ed48</id><msg>code refactor</msg><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/viewmodel/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>42623e066a548bc385ecc1822c018857d79a12b7</commitId><timestamp>1768890869000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test - automated username flow
</comment><date>2026-01-20 10:34:29 +0400</date><id>42623e066a548bc385ecc1822c018857d79a12b7</id><msg>updated test - automated username flow</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><commitId>fb0aab95d9603de66cf4a109636f01f741484819</commitId><timestamp>1768894131000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Rename ManageAccount route parameters and add property KDocs.
</comment><date>2026-01-20 11:28:51 +0400</date><id>fb0aab95d9603de66cf4a109636f01f741484819</id><msg>Rename ManageAccount route parameters and add property KDocs.</msg><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/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>1467d9165cae49927852f92a09af6a29f59ff95e</commitId><timestamp>1768896352000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>remove authenticateqrbadgeusecase from client di
</comment><date>2026-01-20 13:35:52 +0530</date><id>1467d9165cae49927852f92a09af6a29f59ff95e</id><msg>remove authenticateqrbadgeusecase from client di</msg><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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</affectedPath><commitId>cbc8484d1ceab349b644f1dc57710bcf96599e1e</commitId><timestamp>1768912979000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update CreateAccountSetUserNameViewModel:

1) Simplify use of suggestedUsername: ensure that the use case is only invoked once. Because it can connect to the server, put the personDataSource collection into collectLatest so it can be cancelled.

2) Use existing validatepasswordusecase.
</comment><date>2026-01-20 16:42:59 +0400</date><id>cbc8484d1ceab349b644f1dc57710bcf96599e1e</id><msg>Update CreateAccountSetUserNameViewModel:</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</affectedPath><commitId>f9a00ae83433feb5c27bd5bf76393ae3f8e9ade1</commitId><timestamp>1768917605000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>remove validatepassword fun
</comment><date>2026-01-20 19:30:05 +0530</date><id>f9a00ae83433feb5c27bd5bf76393ae3f8e9ade1</id><msg>remove validatepassword fun</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>66dd3fb9d8cdeb3e0f4800bd4e8087ca612efc69</commitId><timestamp>1768968076000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Updated password error
</comment><date>2026-01-21 08:01:16 +0400</date><id>66dd3fb9d8cdeb3e0f4800bd4e8087ca612efc69</id><msg>Updated password error</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>53fa07ed6b876b56ec1933e1417b7d43da1ac7c3</commitId><timestamp>1768970015000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Updated password error
</comment><date>2026-01-21 08:33:35 +0400</date><id>53fa07ed6b876b56ec1933e1417b7d43da1ac7c3</id><msg>Updated password error</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</affectedPath><commitId>af965e4459675fe7edd91536a6c616ebe5dfa7d8</commitId><timestamp>1768971564000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>code refactor
</comment><date>2026-01-21 10:29:24 +0530</date><id>af965e4459675fe7edd91536a6c616ebe5dfa7d8</id><msg>code refactor</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</affectedPath><commitId>1e939cfb01b872fb3534901d9747100004a893a5</commitId><timestamp>1768982317000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix OtherOptionsViewModel to use normalized endpoint URL string when URL entered manually.
</comment><date>2026-01-21 11:58:37 +0400</date><id>1e939cfb01b872fb3534901d9747100004a893a5</id><msg>Fix OtherOptionsViewModel to use normalized endpoint URL string when URL entered manually.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</affectedPath><commitId>e9967b71a295c34febcdccf3cce3e559502ab1fd</commitId><timestamp>1768989202000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>Anugraha@sutara.org</authorEmail><comment>code refactor
</comment><date>2026-01-21 15:23:22 +0530</date><id>e9967b71a295c34febcdccf3cce3e559502ab1fd</id><msg>code refactor</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><commitId>da7cc819229bec7b4b34f1e2b2bf80b75362e925</commitId><timestamp>1768990905000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Terminology change: class edit screen to show 'class name', assignment edit screen to show 'assignment name'.
</comment><date>2026-01-21 14:21:45 +0400</date><id>da7cc819229bec7b4b34f1e2b2bf80b75362e925</id><msg>Terminology change: class edit screen to show 'class name', assignment edit screen to show 'assignment name'.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><commitId>b31a3399147b740b729469521d48ad2eff43fa4d</commitId><timestamp>1768991246000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Terminology change: class edit screen to show 'class name', assignment edit screen to show 'assignment name'.
</comment><date>2026-01-21 14:27:26 +0400</date><id>b31a3399147b740b729469521d48ad2eff43fa4d</id><msg>Terminology change: class edit screen to show 'class name', assignment edit screen to show 'assignment name'.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/admin_add_class.yaml</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_app_and_teacher.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_using_invite_code_test.yaml</affectedPath><commitId>0bde3ec630d282513020dba81483a8600f6051a0</commitId><timestamp>1768991904000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Updated Name* to Class name* /Assignment name*
</comment><date>2026-01-21 14:38:24 +0400</date><id>0bde3ec630d282513020dba81483a8600f6051a0</id><msg>Updated Name* to Class name* /Assignment name*</msg><path><editType>edit</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_app_and_teacher.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_001_invite_using_invite_code_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_class.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonQrBadge.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonQrBadgeEntity.kt</affectedPath><affectedPath>respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticateQrBadgeUseCaseDbImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</affectedPath><commitId>2b439a06c73b4593a8e3072f12d785ca79e0261c</commitId><timestamp>1769001379000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Tidyup:
a) Make PersonQrBadge qrUrl nullable: if no QR badge is assigned, we don't want to delete the PersonQrBadge itself. The Url should be set as null.
b) Tidyup ManageAccountViewModel
</comment><date>2026-01-21 17:16:19 +0400</date><id>2b439a06c73b4593a8e3072f12d785ca79e0261c</id><msg>Tidyup:</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonQrBadgeEntity.kt</file></path><path><editType>edit</editType><file>respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticateQrBadgeUseCaseDbImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.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-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonQrBadge.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>ea6042d39766b0524933983eab99d6344228aa3c</commitId><timestamp>1769013545000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Temporarily disable checking invalid QR code scanned: this check should be in manage account screen.
Fix refactored ScanQRCodeViewModel (incorrectly had ! before sendResultIfExpected)
</comment><date>2026-01-21 20:39:05 +0400</date><id>ea6042d39766b0524933983eab99d6344228aa3c</id><msg>Temporarily disable checking invalid QR code scanned: this check should be in manage account screen.</msg><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>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</affectedPath><commitId>90fd361a3b462e064efacc2f2fbde3ba01b7ddac</commitId><timestamp>1769015037000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add try/catch to avoid CreateAccountSetUserNameViewModel crashing if offline.
</comment><date>2026-01-21 21:03:57 +0400</date><id>90fd361a3b462e064efacc2f2fbde3ba01b7ddac</id><msg>Add try/catch to avoid CreateAccountSetUserNameViewModel crashing if offline.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.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/anugraha</absoluteUrl><fullName>Anugraha</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>129</buildNumber><marked><SHA1>fe3208ef8f17bf71f492b677e2284f1ced80d1c7</SHA1><branch><SHA1>fe3208ef8f17bf71f492b677e2284f1ced80d1c7</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>fe3208ef8f17bf71f492b677e2284f1ced80d1c7</SHA1><branch><SHA1>fe3208ef8f17bf71f492b677e2284f1ced80d1c7</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>fe3208ef8f17bf71f492b677e2284f1ced80d1c7</SHA1><branch><SHA1>fe3208ef8f17bf71f492b677e2284f1ced80d1c7</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#129</displayName><duration>1238856</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #129</fullDisplayName><id>129</id><inProgress>false</inProgress><keepLog>false</keepLog><number>129</number><queueId>5367</queueId><result>SUCCESS</result><timestamp>1768939680177</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/129/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>128</buildNumber><marked><SHA1>fe3208ef8f17bf71f492b677e2284f1ced80d1c7</SHA1><branch><SHA1>fe3208ef8f17bf71f492b677e2284f1ced80d1c7</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>fe3208ef8f17bf71f492b677e2284f1ced80d1c7</SHA1><branch><SHA1>fe3208ef8f17bf71f492b677e2284f1ced80d1c7</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>fe3208ef8f17bf71f492b677e2284f1ced80d1c7</SHA1><branch><SHA1>fe3208ef8f17bf71f492b677e2284f1ced80d1c7</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#128</displayName><duration>1227324</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #128</fullDisplayName><id>128</id><inProgress>false</inProgress><keepLog>false</keepLog><number>128</number><queueId>5342</queueId><result>SUCCESS</result><timestamp>1768853280177</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/128/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/StringExt.kt</affectedPath><commitId>f0be4dd07f9abc0fd6e3c4bfd9470ade4add3009</commitId><timestamp>1768819323000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add UrlExt function to separate a school endpoint url from the rest of any link.
</comment><date>2026-01-19 14:42:03 +0400</date><id>f0be4dd07f9abc0fd6e3c4bfd9470ade4add3009</id><msg>Add UrlExt function to separate a school endpoint url from the rest of any link.</msg><path><editType>edit</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt</file></path><path><editType>add</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/StringExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/erase_text.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_using_invite_code_test.yaml</affectedPath><commitId>9860e9bc7594551c16b7f4ddbd15c531b25f9797</commitId><timestamp>1768821269000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated eraseText
</comment><date>2026-01-19 15:14:29 +0400</date><id>9860e9bc7594551c16b7f4ddbd15c531b25f9797</id><msg>updated eraseText</msg><path><editType>edit</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_001_invite_using_invite_code_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/erase_text.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/README.md</affectedPath><affectedPath>respect-datalayer/README.md</affectedPath><commitId>a4bb1f65ab87994871bf3899241b71902a49f67e</commitId><timestamp>1768822659000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update datalayer README to add conceptual notes on data deletion.
</comment><date>2026-01-19 15:37:39 +0400</date><id>a4bb1f65ab87994871bf3899241b71902a49f67e</id><msg>Update datalayer README to add conceptual notes on data deletion.</msg><path><editType>edit</editType><file>respect-datalayer/README.md</file></path><path><editType>edit</editType><file>respect-datalayer-repository/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt</affectedPath><commitId>40e96524b4e4c0fa3d6da36839f3208662b1e072</commitId><timestamp>1768824961000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix UrlExt.schoolUrlOrNull function.
</comment><date>2026-01-19 16:16:01 +0400</date><id>40e96524b4e4c0fa3d6da36839f3208662b1e072</id><msg>Fix UrlExt.schoolUrlOrNull function.</msg><path><editType>edit</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</affectedPath><affectedPath>respect-lib-util/src/jvmTest/kotlin/world/respect/libutil/ext/UrlResolveTest.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt</affectedPath><commitId>fe3208ef8f17bf71f492b677e2284f1ced80d1c7</commitId><timestamp>1768830866000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add normalization for school endpoint URL.
</comment><date>2026-01-19 17:54:26 +0400</date><id>fe3208ef8f17bf71f492b677e2284f1ced80d1c7</id><msg>Add normalization for school endpoint URL.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt</file></path><path><editType>edit</editType><file>respect-lib-util/src/jvmTest/kotlin/world/respect/libutil/ext/UrlResolveTest.kt</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>127</buildNumber><marked><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><branch><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><branch><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><branch><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#127</displayName><duration>1018394</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #127</fullDisplayName><id>127</id><inProgress>false</inProgress><keepLog>false</keepLog><number>127</number><queueId>5313</queueId><result>FAILURE</result><timestamp>1768766880177</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/127/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>126</buildNumber><marked><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><branch><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><branch><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><branch><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#126</displayName><duration>1123595</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #126</fullDisplayName><id>126</id><inProgress>false</inProgress><keepLog>false</keepLog><number>126</number><queueId>5295</queueId><result>SUCCESS</result><timestamp>1768680480177</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/126/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>125</buildNumber><marked><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><branch><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><branch><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><branch><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#125</displayName><duration>1144037</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #125</fullDisplayName><id>125</id><inProgress>false</inProgress><keepLog>false</keepLog><number>125</number><queueId>5277</queueId><result>FAILURE</result><timestamp>1768594080177</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/125/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>124</buildNumber><marked><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><branch><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><branch><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><branch><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#124</displayName><duration>1113985</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #124</fullDisplayName><id>124</id><inProgress>false</inProgress><keepLog>false</keepLog><number>124</number><queueId>5259</queueId><result>SUCCESS</result><timestamp>1768507680177</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/124/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>123</buildNumber><marked><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><branch><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><branch><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><branch><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#123</displayName><duration>1123898</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #123</fullDisplayName><id>123</id><inProgress>false</inProgress><keepLog>false</keepLog><number>123</number><queueId>5238</queueId><result>SUCCESS</result><timestamp>1768421280150</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/123/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>122</buildNumber><marked><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><branch><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><branch><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><branch><SHA1>c5c9f99af13b5b3684f7e715503bd696a4c6eb5b</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#122</displayName><duration>1103540</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #122</fullDisplayName><id>122</id><inProgress>false</inProgress><keepLog>false</keepLog><number>122</number><queueId>5209</queueId><result>SUCCESS</result><timestamp>1768334880150</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/122/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</affectedPath><commitId>6ef14002f9579c54d9ea01a0ea7d6bd6664d0a41</commitId><timestamp>1764913428000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>connected family added in account list
</comment><date>2025-12-05 11:13:48 +0530</date><id>6ef14002f9579c54d9ea01a0ea7d6bd6664d0a41</id><msg>connected family added in account list</msg><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/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><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/domain/account/RespectAccount.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/biometric/CheckBiometricAvailableUseCase.kt</affectedPath><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/biometric/BiometricResult.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</affectedPath><commitId>e464a6386505b264f1e917b8ad4c1c775678141f</commitId><timestamp>1765176383000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>app can start child session
</comment><date>2025-12-08 12:16:23 +0530</date><id>e464a6386505b264f1e917b8ad4c1c775678141f</id><msg>app can start child session</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccount.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/biometric/BiometricResult.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>gradle/libs.versions.toml</file></path><path><editType>edit</editType><file>respect-lib-shared/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/biometric/CheckBiometricAvailableUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCaseAndroidChannelHost.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/biometric/CheckBiometricAvailableUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthManager.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCaseAndroidImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthProcessor.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthJob.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/biometric/BiometricResult.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt</affectedPath><commitId>5fe00cc8e7ce21c07262966b5bc10ce68c0daef5</commitId><timestamp>1765258969000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>biometric auth added
</comment><date>2025-12-09 11:12:49 +0530</date><id>5fe00cc8e7ce21c07262966b5bc10ce68c0daef5</id><msg>biometric auth added</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthProcessor.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthManager.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/biometric/CheckBiometricAvailableUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthJob.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCaseAndroidImpl.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/biometric/BiometricResult.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCaseAndroidChannelHost.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCase.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-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthProcessor.kt</affectedPath><commitId>35151b21705a9a535234bea0407bf9b8b017665c</commitId><timestamp>1765260360000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>biometric auth changes
</comment><date>2025-12-09 11:36:00 +0530</date><id>35151b21705a9a535234bea0407bf9b8b017665c</id><msg>biometric auth changes</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthProcessor.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDataSource.kt</affectedPath><commitId>8e87db04904193c19df4a2f59599becf1648a38a</commitId><timestamp>1765435868000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>biometric auth changes
</comment><date>2025-12-11 12:21:08 +0530</date><id>8e87db04904193c19df4a2f59599becf1648a38a</id><msg>biometric auth changes</msg><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-app-compose/src/commonMain/kotlin/world/respect/app/app/App.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-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDataSource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><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/domain/account/RespectSessionAndPerson.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.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/domain/account/child/AddChildAccountUseCaseDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</affectedPath><commitId>3b3314b796e2b963ba1476fa09a502aa2bc32e33</commitId><timestamp>1765862141000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>switch profile funtion added
</comment><date>2025-12-16 10:45:41 +0530</date><id>3b3314b796e2b963ba1476fa09a502aa2bc32e33</id><msg>switch profile funtion added</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSessionAndPerson.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.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-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>3cd334d0e2d9e89a3e9729fdad3d17977e1c127c</commitId><timestamp>1765890286000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated e2e test
</comment><date>2025-12-16 17:04:46 +0400</date><id>3cd334d0e2d9e89a3e9729fdad3d17977e1c127c</id><msg>updated e2e test</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>622b6192dabf8ba0143533cac48f1f9df055221d</commitId><timestamp>1765952129000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated e2e test
</comment><date>2025-12-17 10:15:29 +0400</date><id>622b6192dabf8ba0143533cac48f1f9df055221d</id><msg>updated e2e test</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><commitId>7af0113a974e7f769bc7530f76c68c78b0fcfcec</commitId><timestamp>1765953180000</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>2025-12-17 12:03:00 +0530</date><id>7af0113a974e7f769bc7530f76c68c78b0fcfcec</id><msg>commit</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.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/AppBar.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>657204242bd30a9935886924586be22cac2337fc</commitId><timestamp>1765955336000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated e2e test
</comment><date>2025-12-17 11:08:56 +0400</date><id>657204242bd30a9935886924586be22cac2337fc</id><msg>updated e2e test</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/000_000_hello_world.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_using_invite_code_test.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>83934e7f6016c5e832687d8f1937fa4ee1bff420</commitId><timestamp>1765957853000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated e2e test
</comment><date>2025-12-17 11:50:53 +0400</date><id>83934e7f6016c5e832687d8f1937fa4ee1bff420</id><msg>updated e2e test</msg><path><editType>edit</editType><file>.maestro/flows/000_000_hello_world.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_001_invite_using_invite_code_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</affectedPath><commitId>89efd626539452681223d5705eb9a269324e7bb1</commitId><timestamp>1765966662000</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>2025-12-17 15:47:42 +0530</date><id>89efd626539452681223d5705eb9a269324e7bb1</id><msg>commit</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</affectedPath><commitId>285e74df888507d751807a3580b1d409f4f18084</commitId><timestamp>1765972069000</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>2025-12-17 17:17:49 +0530</date><id>285e74df888507d751807a3580b1d409f4f18084</id><msg>commit</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/test-description/001_002_add_user_direct_test_description.md</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>0435f8245268784797f47af88f4ccc698db9000e</commitId><timestamp>1766048060000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated e2e test description
</comment><date>2025-12-18 12:54:20 +0400</date><id>0435f8245268784797f47af88f4ccc698db9000e</id><msg>updated e2e test description</msg><path><editType>edit</editType><file>respect-test-end-to-end/test-description/001_002_add_user_direct_test_description.md</file></path><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthManager.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><commitId>fa88abdd06c1dd02401086f702c13108dab093dd</commitId><timestamp>1766154259000</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>2025-12-19 19:54:19 +0530</date><id>fa88abdd06c1dd02401086f702c13108dab093dd</id><msg>commit</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthManager.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthManager.kt</affectedPath><commitId>cf363cf364babee1c37632e361cf84f4ec2a7b65</commitId><timestamp>1766983920000</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>2025-12-29 10:22:00 +0530</date><id>cf363cf364babee1c37632e361cf84f4ec2a7b65</id><msg>commit</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthManager.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>cffbd3d7479670186f9413fb18ecc4a27d8d81f9</commitId><timestamp>1766999480000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test flow
</comment><date>2025-12-29 13:11:20 +0400</date><id>cffbd3d7479670186f9413fb18ecc4a27d8d81f9</id><msg>updated test flow</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>031551ddf6d969b3672e2aac96b6c0894ad4662d</commitId><timestamp>1767018289000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test flow
</comment><date>2025-12-29 18:24:49 +0400</date><id>031551ddf6d969b3672e2aac96b6c0894ad4662d</id><msg>updated test flow</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</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/domain/account/RespectAccount.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCaseAndroidImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSessionAndPerson.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthProcessor.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</affectedPath><commitId>fb2e1409761be68465ccc049d7cdd9e745d8e3a7</commitId><timestamp>1767096774000</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>2025-12-30 17:42:54 +0530</date><id>fb2e1409761be68465ccc049d7cdd9e745d8e3a7</id><msg>commit</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccount.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.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-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCaseAndroidImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSessionAndPerson.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-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthProcessor.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</affectedPath><commitId>fde66d9bf7789cb425b988450a375257cd91340b</commitId><timestamp>1767102961000</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>2025-12-30 19:26:01 +0530</date><id>fde66d9bf7789cb425b988450a375257cd91340b</id><msg>commit</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCaseAndroidChannelHost.kt</affectedPath><commitId>ab7c9a77fad88a96c880c7f2dbb7259ca90bcb05</commitId><timestamp>1767349644000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>BiometricAuthUseCaseAndroidChannelHost removed
</comment><date>2026-01-02 15:57:24 +0530</date><id>ab7c9a77fad88a96c880c7f2dbb7259ca90bcb05</id><msg>BiometricAuthUseCaseAndroidChannelHost removed</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCaseAndroidChannelHost.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</affectedPath><commitId>a870d6f5516d538381636b569145d8837579b4da</commitId><timestamp>1767357322000</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-01-02 18:05:22 +0530</date><id>a870d6f5516d538381636b569145d8837579b4da</id><msg>commit</msg><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/acknowledgement/AcknowledgementViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</affectedPath><commitId>0816cc742f6e9cac1688a0c9b0f16225ec963c41</commitId><timestamp>1767596154000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>full name error fix
</comment><date>2026-01-05 12:25:54 +0530</date><id>0816cc742f6e9cac1688a0c9b0f16225ec963c41</id><msg>full name error fix</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>10e246ce0a7a67849183bfdebeb549643f5c9aee</commitId><timestamp>1767597373000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>removed 000 test name from maestro.sh
</comment><date>2026-01-05 11:16:13 +0400</date><id>10e246ce0a7a67849183bfdebeb549643f5c9aee</id><msg>removed 000 test name from maestro.sh</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/000_000_hello_world.yaml</affectedPath><commitId>f2446429b59d7e81627a064eebc9f8216b7e7982</commitId><timestamp>1767598059000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>removed 000 test
</comment><date>2026-01-05 11:27:39 +0400</date><id>f2446429b59d7e81627a064eebc9f8216b7e7982</id><msg>removed 000 test</msg><path><editType>delete</editType><file>.maestro/flows/000_000_hello_world.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthManager.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSessionAndPerson.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</affectedPath><commitId>856ef1ded6f832f9c102d18a0248f54742a721e0</commitId><timestamp>1768303824000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Tidyup

a) Remove use of KoinScopeComponent from AccountListViewModel : it does not use any scoped dependencies and does not need it.
b) Tidyup AccountListScreen to use LazyListScope items as appropriate and add key
c) Tidyup AcknowledgementViewModel: remove isChild from UiState. It is not used as part of the UiState. Whether or not the user is a child is used by the viewmodel to decide where to navigate. It is not used as part of the UI. Remove familyPersons from UiState. This created duplicated data that did not respect single point of truth (it is always selectedAccount.relatedPersons).

d) Change text for biometric prompt to be clearer: explicitly state its for a parents only section instead of "biometric login"
e) Minor tidyup of how App.kt handles different top level navigation items for child/"normal" mode
f) BiometricAuthManager.kt: remove unnecessary if deferred.isCompleted checks: CompleteableDeferred already handles this itself.
</comment><date>2026-01-13 15:30:24 +0400</date><id>856ef1ded6f832f9c102d18a0248f54742a721e0</id><msg>Tidyup</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSessionAndPerson.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthManager.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-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.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.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>121</buildNumber><marked><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><branch><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><branch><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><branch><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#121</displayName><duration>1045787</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #121</fullDisplayName><id>121</id><inProgress>false</inProgress><keepLog>false</keepLog><number>121</number><queueId>5191</queueId><result>SUCCESS</result><timestamp>1768248480151</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/121/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>120</buildNumber><marked><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><branch><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><branch><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><branch><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#120</displayName><duration>1033854</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #120</fullDisplayName><id>120</id><inProgress>false</inProgress><keepLog>false</keepLog><number>120</number><queueId>5175</queueId><result>SUCCESS</result><timestamp>1768162080150</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/120/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>119</buildNumber><marked><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><branch><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><branch><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><branch><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#119</displayName><duration>1022353</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #119</fullDisplayName><id>119</id><inProgress>false</inProgress><keepLog>false</keepLog><number>119</number><queueId>5160</queueId><result>SUCCESS</result><timestamp>1768075680151</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/119/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>118</buildNumber><marked><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><branch><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><branch><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><branch><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#118</displayName><duration>1028679</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #118</fullDisplayName><id>118</id><inProgress>false</inProgress><keepLog>false</keepLog><number>118</number><queueId>5145</queueId><result>SUCCESS</result><timestamp>1767989280151</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/118/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>117</buildNumber><marked><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><branch><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><branch><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><branch><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#117</displayName><duration>1032805</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #117</fullDisplayName><id>117</id><inProgress>false</inProgress><keepLog>false</keepLog><number>117</number><queueId>5130</queueId><result>SUCCESS</result><timestamp>1767902880150</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/117/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>116</buildNumber><marked><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><branch><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><branch><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><branch><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#116</displayName><duration>1000654</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #116</fullDisplayName><id>116</id><inProgress>false</inProgress><keepLog>false</keepLog><number>116</number><queueId>5115</queueId><result>SUCCESS</result><timestamp>1767816480150</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/116/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>115</buildNumber><marked><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><branch><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><branch><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><branch><SHA1>4b9bb703ecc684b105316be3750cdc1c025bf225</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#115</displayName><duration>1033666</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #115</fullDisplayName><id>115</id><inProgress>false</inProgress><keepLog>false</keepLog><number>115</number><queueId>5097</queueId><result>SUCCESS</result><timestamp>1767730080164</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/115/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>gradle/libs.versions.toml</affectedPath><commitId>4b9bb703ecc684b105316be3750cdc1c025bf225</commitId><timestamp>1767701543000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update AGP plugin version
</comment><date>2026-01-06 16:12:23 +0400</date><id>4b9bb703ecc684b105316be3750cdc1c025bf225</id><msg>Update AGP plugin version</msg><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>114</buildNumber><marked><SHA1>f98f983b325e5575b889ba4cde45cdf87f9f0656</SHA1><branch><SHA1>f98f983b325e5575b889ba4cde45cdf87f9f0656</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>f98f983b325e5575b889ba4cde45cdf87f9f0656</SHA1><branch><SHA1>f98f983b325e5575b889ba4cde45cdf87f9f0656</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>f98f983b325e5575b889ba4cde45cdf87f9f0656</SHA1><branch><SHA1>f98f983b325e5575b889ba4cde45cdf87f9f0656</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#114</displayName><duration>966824</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #114</fullDisplayName><id>114</id><inProgress>false</inProgress><keepLog>false</keepLog><number>114</number><queueId>5072</queueId><result>SUCCESS</result><timestamp>1767643680164</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/114/</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 Mike Dawson</shortDescription><userId>mike</userId><userName>Mike Dawson</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>113</buildNumber><marked><SHA1>f98f983b325e5575b889ba4cde45cdf87f9f0656</SHA1><branch><SHA1>f98f983b325e5575b889ba4cde45cdf87f9f0656</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>f98f983b325e5575b889ba4cde45cdf87f9f0656</SHA1><branch><SHA1>f98f983b325e5575b889ba4cde45cdf87f9f0656</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>f98f983b325e5575b889ba4cde45cdf87f9f0656</SHA1><branch><SHA1>f98f983b325e5575b889ba4cde45cdf87f9f0656</SHA1><name>refs/remotes/origin/main</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_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#113</displayName><duration>968504</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #113</fullDisplayName><id>113</id><inProgress>false</inProgress><keepLog>false</keepLog><number>113</number><queueId>5067</queueId><result>SUCCESS</result><timestamp>1767619726609</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/113/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/AGENTS.md</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/PersonExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/exceptions/UnauthorizedException.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolPermissionGrantDataSourceLocal.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.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/school/GetAuthenticatedPersonUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolPermissionGrantEntity.kt</affectedPath><affectedPath>respect-datalayer/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/exceptions/ForbiddenException.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/SchoolPermissionGrantAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolPermissionGrantDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/AssignmentDatasourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PermissionFlags.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/LocalModelDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadState.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolPermissionGrantDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/AGENTS.md</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolPermissionGrantDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/changepassword/ChangePasswordViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>AGENTS.md</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolPermissionGrant.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><commitId>fb4cdd11f1d6441233f2531f788c52eb88a3e0b1</commitId><timestamp>1761142573000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add permission management: work in progress.
</comment><date>2025-10-22 18:16:13 +0400</date><id>fb4cdd11f1d6441233f2531f788c52eb88a3e0b1</id><msg>Add permission management: work in progress.</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/src/commonMain/kotlin/world/respect/datalayer/shared/LocalModelDataSource.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json</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/AGENTS.md</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt</file></path><path><editType>edit</editType><file>respect-datalayer/build.gradle.kts</file></path><path><editType>add</editType><file>AGENTS.md</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/SchoolPermissionGrantAdapter.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/changepassword/ChangePasswordViewModel.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolPermissionGrant.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>add</editType><file>respect-datalayer/AGENTS.md</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolPermissionGrantDataSource.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>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/PersonExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/AssignmentDatasourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PermissionFlags.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/GetAuthenticatedPersonUseCase.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/person/list/PersonListViewModel.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/src/commonMain/kotlin/world/respect/datalayer/DataLoadState.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/exceptions/ForbiddenException.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolPermissionGrantDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonExt.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolPermissionGrantEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/exceptions/UnauthorizedException.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolPermissionGrantDataSourceDb.kt</file></path><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-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolPermissionGrantDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/AGENTS.md</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolPermissionGrantDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolPermissionGrantDataSource.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolPermissionGrantDataSourceRepository.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/school/SchoolPermissionGrantDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-http/AGENTS.md</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/SchoolDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</affectedPath><affectedPath>respect-datalayer-repository/AGENTS.md</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><commitId>d63a784ce84ad38f86491b031d6bad9bdf187dd5</commitId><timestamp>1761204786000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add SchoolPermissionGrantDataSource implementations.
</comment><date>2025-10-23 11:33:06 +0400</date><id>d63a784ce84ad38f86491b031d6bad9bdf187dd5</id><msg>Add SchoolPermissionGrantDataSource implementations.</msg><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-repository/AGENTS.md</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolPermissionGrantDataSourceHttp.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-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.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-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/SchoolPermissionGrantDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer/AGENTS.md</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-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/school/SchoolPermissionGrantDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/AGENTS.md</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolPermissionGrantDataSourceRepository.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/domain/TestCheckPersonPermissionUseCaseImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestSchoolDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonRoleEnumExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.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/school/domain/AddDefaultSchoolPermissionGrantsUseCase.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolPermissionGrant.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/CheckPersonPermissionUseCaseDbImpl.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolPermissionGrantDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PermissionFlags.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolPermissionGrantRoute.kt</affectedPath><commitId>d087ad04fa1983803a659a5cee2339fce1be58e5</commitId><timestamp>1761227669000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial implementation of using CheckPersonPermissionUseCase
</comment><date>2025-10-23 17:54:29 +0400</date><id>d087ad04fa1983803a659a5cee2339fce1be58e5</id><msg>Initial implementation of using CheckPersonPermissionUseCase</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolPermissionGrant.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/CheckPersonPermissionUseCaseDbImpl.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonRoleEnumExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PermissionFlags.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolPermissionGrantRoute.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/AddDefaultSchoolPermissionGrantsUseCase.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestSchoolDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolPermissionGrantDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/domain/TestCheckPersonPermissionUseCaseImpl.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.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-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt</affectedPath><affectedPath>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</affectedPath><commitId>ae01d219481d0814d5c5e323cee98ad0aea3e4ab</commitId><timestamp>1761230727000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fixes for PersonRepositoryIntegrationTest.kt (one test remaining)
</comment><date>2025-10-23 18:45:27 +0400</date><id>ae01d219481d0814d5c5e323cee98ad0aea3e4ab</id><msg>Fixes for PersonRepositoryIntegrationTest.kt (one test remaining)</msg><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.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-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonRoleEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt</affectedPath><affectedPath>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/MapPagingSource.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/PermissionCheckPagingSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PermissionFlags.kt</affectedPath><commitId>6869dd8e50b4394a92548905d11560e18966dafc</commitId><timestamp>1762179475000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Permission enforcement work in progress

a) throw ForbiddenException / return status code 403 if a request for a person is made that the user is not authorized to see. Marking the response as forbidden, rather than returning an empty json allows fail2ban/throttling implementation when someone is up to no good.
b) Fix usage of add default grants in add school use case.
</comment><date>2025-11-03 18:17:55 +0400</date><id>6869dd8e50b4394a92548905d11560e18966dafc</id><msg>Permission enforcement work in progress</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-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/MapPagingSource.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/model/PersonRoleEnum.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/PermissionCheckPagingSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PermissionFlags.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolPermissionGrantDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/domain/TestCheckPersonPermissionUseCaseImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/PermissionCheckPagingSource.kt</affectedPath><commitId>bc306635b7538babc81b849bbdf473d47a802f9b</commitId><timestamp>1764246578000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix compilation after merging main updates.
</comment><date>2025-11-27 16:29:38 +0400</date><id>bc306635b7538babc81b849bbdf473d47a802f9b</id><msg>Fix compilation after merging main updates.</msg><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-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolPermissionGrantDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/domain/TestCheckPersonPermissionUseCaseImpl.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/PermissionCheckPagingSource.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/PersonDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ClassAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Clazz.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassEntityWithPermissions.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassPermissionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassPermissionEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/9.json</affectedPath><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/school/ClassDatasourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ClassPermission.kt</affectedPath><commitId>a15f134552b8149b5d6d43b156454a15d6f1351f</commitId><timestamp>1764942544000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add CLassPermission to model and datasources.
</comment><date>2025-12-05 17:49:04 +0400</date><id>a15f134552b8149b5d6d43b156454a15d6f1351f</id><msg>Add CLassPermission to model and datasources.</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/school/adapters/ClassAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.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-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/9.json</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassPermissionEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Clazz.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ClassPermission.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassEntityWithPermissions.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassPermissionEntity.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</affectedPath><commitId>cc7ef41804c7789e5490b90873e49f2a85046e40</commitId><timestamp>1765197753000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update RespectAccountManager to use a shared hot flow to prevent lag.
</comment><date>2025-12-08 16:42:33 +0400</date><id>cc7ef41804c7789e5490b90873e49f2a85046e40</id><msg>Update RespectAccountManager to use a shared hot flow to prevent lag.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/AddDefaultSchoolPermissionGrantsUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolPermissionGrantDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PermissionFlags.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.kt</affectedPath><commitId>1834bca60da831c327c95e30c4eba74544daf259</commitId><timestamp>1765203505000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Enforce class view permissions including support for enrollment role-based permissions.
</comment><date>2025-12-08 18:18:25 +0400</date><id>1834bca60da831c327c95e30c4eba74544daf259</id><msg>Enforce class view permissions including support for enrollment role-based permissions.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PermissionFlags.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/AddDefaultSchoolPermissionGrantsUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolPermissionGrantDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LastModifiedAndPermission.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/WritableDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.kt</affectedPath><commitId>c2aadbfda36308b406464f90d050fa95e775c294</commitId><timestamp>1765460539000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Enforce class write permission.
</comment><date>2025-12-11 17:42:19 +0400</date><id>c2aadbfda36308b406464f90d050fa95e775c294</id><msg>Enforce class write permission.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/WritableDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LastModifiedAndPermission.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt</affectedPath><commitId>ab1f830df858d5a9367b4500fdb738adcc22d711</commitId><timestamp>1765461416000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Merge session changes from main.
</comment><date>2025-12-11 17:56:56 +0400</date><id>ab1f830df858d5a9367b4500fdb738adcc22d711</id><msg>Merge session changes from main.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt</file></path></item><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/school/daos/PersonEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.kt</affectedPath><commitId>517121263286883aee09ecd77b95e570980cc5fb</commitId><timestamp>1765727646000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial implementation of read person permission checks.
</comment><date>2025-12-14 15:54:06 +0000</date><id>517121263286883aee09ecd77b95e570980cc5fb</id><msg>Initial implementation of read person permission checks.</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/school/daos/PersonEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt</affectedPath><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/school/daos/PersonEntityDao.kt</affectedPath><commitId>87132ca9c0b370017c9c8fea4ce97753b477161c</commitId><timestamp>1765739839000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Handle permissions for parents based on class permissions of children.
</comment><date>2025-12-14 19:17:19 +0000</date><id>87132ca9c0b370017c9c8fea4ce97753b477161c</id><msg>Handle permissions for parents based on class permissions of children.</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/school/daos/PersonEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/EnrollmentRoleEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PermissionFlags.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LastModifiedAndPermission.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt</affectedPath><commitId>e49f7dd1f03c83732a47062c9b31bc4c18837b2e</commitId><timestamp>1765884380000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add permission enforcement/checks to enrollment entities.
</comment><date>2025-12-16 15:26:20 +0400</date><id>e49f7dd1f03c83732a47062c9b31bc4c18837b2e</id><msg>Add permission enforcement/checks to enrollment entities.</msg><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/entities/LastModifiedAndPermission.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/EnrollmentRoleEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PermissionFlags.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassPermissionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/9.json</affectedPath><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/school/daos/PersonEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt</affectedPath><commitId>0e6dd7db5e356d4ee99e8669bc7809eef38ba359</commitId><timestamp>1765975040000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix ClassPermissionEntity to use autoincrement primary key
Update PersonDataSource permission checks to add a CTE to get the permission personuid list (active user plus any children personuids in the case of a parent user).
</comment><date>2025-12-17 16:37:20 +0400</date><id>0e6dd7db5e356d4ee99e8669bc7809eef38ba359</id><msg>Fix ClassPermissionEntity to use autoincrement primary key</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassPermissionEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/9.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.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/school/PersonDataSourceDb.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/viewmodel/person/detail/PersonDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/CheckPersonPermissionUseCaseDbImpl.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.kt</affectedPath><commitId>8e1628f9325ca674d471b5c23fcc5391ba7f15cb</commitId><timestamp>1766060857000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update CheckPersonPermissionUseCase: can be used before person is saved to db or after saved to db without needing to lookup role.
</comment><date>2025-12-18 16:27:37 +0400</date><id>8e1628f9325ca674d471b5c23fcc5391ba7f15cb</id><msg>Update CheckPersonPermissionUseCase: can be used before person is saved to db or after saved to db without needing to lookup role.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/CheckPersonPermissionUseCaseDbImpl.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/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.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/person/detail/PersonDetailViewModel.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</affectedPath><commitId>2ae2abfd160d041c9ab2d362775b8e0043f90180</commitId><timestamp>1766066355000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix person entity list permission check to include viewing related persons for the authenticated user.
</comment><date>2025-12-18 17:59:15 +0400</date><id>2ae2abfd160d041c9ab2d362775b8e0043f90180</id><msg>Fix person entity list permission check to include viewing related persons for the authenticated user.</msg><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/daos/PersonEntityDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/LocalModelDataSource.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/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonPasswordEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasswordDataSourceDb.kt</affectedPath><commitId>63f5ea635a01235f174d8e760dcadc8c30425589</commitId><timestamp>1766144945000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update SQL to enforce password entity permissions
</comment><date>2025-12-19 15:49:05 +0400</date><id>63f5ea635a01235f174d8e760dcadc8c30425589</id><msg>Update SQL to enforce password entity permissions</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasswordDataSourceDb.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/shared/LocalModelDataSource.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-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonPasswordEntityDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/PersonPasskeyEntityDao.kt</affectedPath><commitId>a2a843193719003af2e543ad2c191dda17806def</commitId><timestamp>1766145521000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove unused PersonPasskeyEntityDao functions.
</comment><date>2025-12-19 15:58:41 +0400</date><id>a2a843193719003af2e543ad2c191dda17806def</id><msg>Remove unused PersonPasskeyEntityDao functions.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/PersonPasskeyEntityDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasskeyDataSourceDb.kt</affectedPath><commitId>f024121520d5998e74f73092cca2d9064ac1fbf6</commitId><timestamp>1766146428000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update PersonDataSourceDb to follow same function name pattern as other DAOs and split store/updateLocal
</comment><date>2025-12-19 16:13:48 +0400</date><id>f024121520d5998e74f73092cca2d9064ac1fbf6</id><msg>Update PersonDataSourceDb to follow same function name pattern as other DAOs and split store/updateLocal</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasskeyDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</affectedPath><commitId>b5d3d5ccb23cd53f30c116ce775afb033c33b034</commitId><timestamp>1766396276000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update class permission queries to include permissions for parents to see child's classes.
Update use of select AuthenticatedPermissionPersonUids to use constant.
</comment><date>2025-12-22 13:37:56 +0400</date><id>b5d3d5ccb23cd53f30c116ce775afb033c33b034</id><msg>Update class permission queries to include permissions for parents to see child's classes.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/SchoolPermissionGrantExt.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolPermissionGrantDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/domain/TestCheckPersonPermissionUseCaseImpl.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/viewmodel/person/list/PersonListViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestSchoolDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolPermissionGrantDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.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/school/daos/SchoolPermissionGrantDao.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/permissions/CheckSchoolPermissionsUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.kt</affectedPath><commitId>417df627dae1a87979c76f7cf53bdf84c2b70d29</commitId><timestamp>1766408696000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add CheckSchoolPermissionsUseCase and use it in PersonList and ClassList to control the visibility of add button.
Update junit tests to handle permissions
</comment><date>2025-12-22 17:04:56 +0400</date><id>417df627dae1a87979c76f7cf53bdf84c2b70d29</id><msg>Add CheckSchoolPermissionsUseCase and use it in PersonList and ClassList to control the visibility of add button.</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/SchoolPermissionGrantExt.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/person/list/PersonListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolPermissionGrantDao.kt</file></path><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-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.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>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/permissions/CheckSchoolPermissionsUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolPermissionGrantDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolPermissionGrantDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/domain/TestCheckPersonPermissionUseCaseImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/EnrollmentDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/entities/NetworkValidationInfoEntity.kt</affectedPath><affectedPath>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/RepoWorkerConstants.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpHeadersExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/EnqueueRunPullSyncUseCase.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PullSyncStatusEntity.kt</affectedPath><affectedPath>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/pullsync/EnqueueRunPullSyncUseCaseAndroidImpl.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncWorker.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/NetworkValidationInfo.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PullSyncStatus.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PullSyncStatusAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/2.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/PullSyncTracker.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadMetaInfo.kt</affectedPath><affectedPath>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/writequeue/EnqueueDrainRemoteWriteQueueUseCaseAndroidImpl.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/daos/PullSyncStatusEntityDao.kt</affectedPath><affectedPath>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueWorker.kt</affectedPath><affectedPath>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/worker/DataBuilderExt.kt</affectedPath><affectedPath>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/worker/WorkerExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncUseCase.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DataLoadStateExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/EnqueueDrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/PullSyncTrackerDbImpl.kt</affectedPath><commitId>e08156910ebb699221cc9ebc660c9c728879bb6d</commitId><timestamp>1767018672000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement pulling enrollment entities using a worker.

Required to ensure permissions are resolved as expected.
</comment><date>2025-12-29 18:31:12 +0400</date><id>e08156910ebb699221cc9ebc660c9c728879bb6d</id><msg>Implement pulling enrollment entities using a worker.</msg><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PullSyncStatusEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.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/school/daos/EnrollmentEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/PullSyncTrackerDbImpl.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadMetaInfo.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PullSyncStatusAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/entities/NetworkValidationInfoEntity.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/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/EnqueueDrainRemoteWriteQueueUseCase.kt</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/pullsync/EnqueueRunPullSyncUseCaseAndroidImpl.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/EnqueueRunPullSyncUseCase.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/src/commonMain/kotlin/world/respect/datalayer/ext/HttpHeadersExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/writequeue/EnqueueDrainRemoteWriteQueueUseCaseAndroidImpl.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/NetworkValidationInfo.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PullSyncStatusEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PullSyncStatus.kt</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/worker/DataBuilderExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/EnrollmentDataSourceRepository.kt</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/RepoWorkerConstants.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/PullSyncTracker.kt</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncWorker.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueWorker.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DataLoadStateExt.kt</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/worker/WorkerExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpHeadersExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetPermissionLastModifiedUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/GetPermissionLastModifiedUseCaseDbImpl.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PullSyncStatusEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/params/GetListCommonParams.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/pullsync/PullSyncTracker.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PullSyncStatus.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PullSyncStatusAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerParams.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/PullSyncTracker.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/ParametersBuilderExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadMetaInfo.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/params/OrderOption.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/EnrollmentDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncUseCase.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerHeaders.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/PullSyncTrackerDbImpl.kt</affectedPath><commitId>75fc244fba28cda004d8274bd698f53cf9761e31</commitId><timestamp>1767114370000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add sinceIfPermissionsNotChangedSince parameter support.

Used to ensure that when permissions change (eg. as a result of a person joining a class) that the user does not miss out on updates being retrieved via pull sync runs.
</comment><date>2025-12-30 21:06:10 +0400</date><id>75fc244fba28cda004d8274bd698f53cf9761e31</id><msg>Add sinceIfPermissionsNotChangedSince parameter support.</msg><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/GetPermissionLastModifiedUseCaseDbImpl.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/src/commonMain/kotlin/world/respect/datalayer/db/shared/PullSyncTrackerDbImpl.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.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/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PullSyncStatusAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/PullSyncTracker.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/entities/PullSyncStatusEntity.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/src/commonMain/kotlin/world/respect/datalayer/DataLayerParams.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetPermissionLastModifiedUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadMetaInfo.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/ParametersBuilderExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSource.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/pullsync/PullSyncTracker.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerHeaders.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpHeadersExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PullSyncStatus.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncUseCase.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/params/OrderOption.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/daos/EnrollmentEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/params/GetListCommonParams.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AssignmentAssigneeRefEntityDao.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Assignment.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentEntity.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/AssignmentAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/AssignmentDatasourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentAssigneeRef.kt</affectedPath><commitId>bddb16ab6a058c879b320758a100a856d8296176</commitId><timestamp>1767197488000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Refactor assignment to link one assignment to one class.
</comment><date>2025-12-31 20:11:28 +0400</date><id>bddb16ab6a058c879b320758a100a856d8296176</id><msg>Refactor assignment to link one assignment to one class.</msg><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-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AssignmentAssigneeRefEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentEntity.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/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentAssigneeRef.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-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/AssignmentAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/AssignmentDatasourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Assignment.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AssignmentEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/AssignmentDatasourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentAssigneeRefEntity.kt</affectedPath><commitId>729a6eaf049d5d8ef25eb567613d23b4ee963184</commitId><timestamp>1767200016000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial permission check for assignment read.
</comment><date>2025-12-31 20:53:36 +0400</date><id>729a6eaf049d5d8ef25eb567613d23b4ee963184</id><msg>Initial permission check for assignment read.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AssignmentEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/AssignmentDatasourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentAssigneeRefEntity.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/LocalModelDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/CacheableHttpPagingSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadState.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/EnrollmentRoleEnum.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncUseCase.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DataLoadStateExt.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt</affectedPath><affectedPath>.maestro/flows/001_001_invite_using_invite_code_test.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><commitId>9036fcffa2b121cab5d6ba66660b96661e8785ce</commitId><timestamp>1767544118000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Run pull sync fixes:

a) Handle not-modified http response status
b) Ensure not-modified http dataloadstate preserves metadata
c) Update ClazzViewModel to use only enqueue run pull sync to update enrollments.
</comment><date>2026-01-04 20:28:38 +0400</date><id>9036fcffa2b121cab5d6ba66660b96661e8785ce</id><msg>Run pull sync fixes:</msg><path><editType>edit</editType><file>.maestro/flows/001_001_invite_using_invite_code_test.yaml</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/LocalModelDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/EnrollmentRoleEnum.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadState.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncUseCase.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-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/CacheableHttpPagingSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DataLoadStateExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDataSource.kt</affectedPath><commitId>b7e0f98a0418c132f169f6e245a7ecc96de2ec31</commitId><timestamp>1767545996000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update SignupViewModel: remove unnecessary scope.launc that should not be there.
</comment><date>2026-01-04 20:59:56 +0400</date><id>b7e0f98a0418c132f169f6e245a7ecc96de2ec31</id><msg>Update SignupViewModel: remove unnecessary scope.launc that should not be there.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</affectedPath><commitId>67c2d84be6085b3af5016c63ef358f741bc375f4</commitId><timestamp>1767547604000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add debugging logs to SignupViewModel.
Remove signupviewmodel async launch functions setting app uistate that was not necessary.
</comment><date>2026-01-04 21:26:44 +0400</date><id>67c2d84be6085b3af5016c63ef358f741bc375f4</id><msg>Add debugging logs to SignupViewModel.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/ProfileType.kt</affectedPath><commitId>fdb330302942df56686f26d34554ec40158a02dd</commitId><timestamp>1767550670000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add more debugging logs to SignupViewModel.
Fix ProfileType enum to use serialization as per pattern (using a string constant) to avoid potential discrepency between minified and non minified versions.
</comment><date>2026-01-04 22:17:50 +0400</date><id>fdb330302942df56686f26d34554ec40158a02dd</id><msg>Add more debugging logs to SignupViewModel.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.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/profile/ProfileType.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/000_000_hello_world.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_using_invite_code_test.yaml</affectedPath><commitId>b7676667f0a9cf5bd27160cfb25a08e236734121</commitId><timestamp>1767552139000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove hello world maestro flow
Tweak 001_001 to try and avoid maestro flakey tap
</comment><date>2026-01-04 22:42:19 +0400</date><id>b7676667f0a9cf5bd27160cfb25a08e236734121</id><msg>Remove hello world maestro flow</msg><path><editType>edit</editType><file>.maestro/flows/001_001_invite_using_invite_code_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/000_000_hello_world.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_001_invite_using_invite_code_test.yaml</affectedPath><commitId>1984e6061772b1f7ee97c21753e3852c7b84b8e4</commitId><timestamp>1767552389000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add retryTapIfNoChange to 001_001.
</comment><date>2026-01-04 22:46:29 +0400</date><id>1984e6061772b1f7ee97c21753e3852c7b84b8e4</id><msg>Add retryTapIfNoChange to 001_001.</msg><path><editType>edit</editType><file>.maestro/flows/001_001_invite_using_invite_code_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_001_invite_using_invite_code_test.yaml</affectedPath><commitId>e0d6182b066450057da81bbd834f21746f729626</commitId><timestamp>1767553784000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove action bar id parameter from 001_001
</comment><date>2026-01-04 23:09:44 +0400</date><id>e0d6182b066450057da81bbd834f21746f729626</id><msg>Remove action bar id parameter from 001_001</msg><path><editType>edit</editType><file>.maestro/flows/001_001_invite_using_invite_code_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/tap_done_again.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_using_invite_code_test.yaml</affectedPath><commitId>45071e76474e3dccbea467bb5da8fb19db44369f</commitId><timestamp>1767555668000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add repeat loop workaround for waiting Maestro cloud error.
</comment><date>2026-01-04 23:41:08 +0400</date><id>45071e76474e3dccbea467bb5da8fb19db44369f</id><msg>Add repeat loop workaround for waiting Maestro cloud error.</msg><path><editType>add</editType><file>.maestro/flows/subflows/tap_done_again.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_001_invite_using_invite_code_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_001_invite_using_invite_code_test.yaml</affectedPath><commitId>73c7dc12bb5b15ea41adc790e939f933c63749de</commitId><timestamp>1767556723000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Another attempt for 001_001 maestro workaround.
</comment><date>2026-01-04 23:58:43 +0400</date><id>73c7dc12bb5b15ea41adc790e939f933c63749de</id><msg>Another attempt for 001_001 maestro workaround.</msg><path><editType>edit</editType><file>.maestro/flows/001_001_invite_using_invite_code_test.yaml</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>112</buildNumber><marked><SHA1>ac99a6db28be9965dad2d5e05989e7c4116b8f39</SHA1><branch><SHA1>ac99a6db28be9965dad2d5e05989e7c4116b8f39</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>ac99a6db28be9965dad2d5e05989e7c4116b8f39</SHA1><branch><SHA1>ac99a6db28be9965dad2d5e05989e7c4116b8f39</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>ac99a6db28be9965dad2d5e05989e7c4116b8f39</SHA1><branch><SHA1>ac99a6db28be9965dad2d5e05989e7c4116b8f39</SHA1><name>refs/remotes/origin/main</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>000_000_hello_world.mp4</displayPath><fileName>000_000_hello_world.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/000_000_hello_world.mp4</relativePath></artifact><artifact><displayPath>001_001_invite_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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>000_000_hello_world.png</displayPath><fileName>000_000_hello_world.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/000_000_hello_world.png</relativePath></artifact><artifact><displayPath>001_001_invite_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#112</displayName><duration>1339130</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #112</fullDisplayName><id>112</id><inProgress>false</inProgress><keepLog>false</keepLog><number>112</number><queueId>5041</queueId><result>FAILURE</result><timestamp>1767557280165</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/112/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>111</buildNumber><marked><SHA1>ac99a6db28be9965dad2d5e05989e7c4116b8f39</SHA1><branch><SHA1>ac99a6db28be9965dad2d5e05989e7c4116b8f39</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>ac99a6db28be9965dad2d5e05989e7c4116b8f39</SHA1><branch><SHA1>ac99a6db28be9965dad2d5e05989e7c4116b8f39</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>ac99a6db28be9965dad2d5e05989e7c4116b8f39</SHA1><branch><SHA1>ac99a6db28be9965dad2d5e05989e7c4116b8f39</SHA1><name>refs/remotes/origin/main</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>000_000_hello_world.mp4</displayPath><fileName>000_000_hello_world.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/000_000_hello_world.mp4</relativePath></artifact><artifact><displayPath>001_001_invite_using_invite_code_test.mp4</displayPath><fileName>001_001_invite_using_invite_code_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_using_invite_code_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>000_000_hello_world.png</displayPath><fileName>000_000_hello_world.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/000_000_hello_world.png</relativePath></artifact><artifact><displayPath>001_001_invite_using_invite_code_test.png</displayPath><fileName>001_001_invite_using_invite_code_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_using_invite_code_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>#111</displayName><duration>1009833</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #111</fullDisplayName><id>111</id><inProgress>false</inProgress><keepLog>false</keepLog><number>111</number><queueId>5015</queueId><result>SUCCESS</result><timestamp>1767470880164</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/111/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet></build><color>blue</color><firstBuild _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UserIdCause'><shortDescription>Started by user Mike Dawson</shortDescription><userId>mike</userId><userName>Mike Dawson</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>1</buildNumber><marked><SHA1>be748aa3945bd42579158ca9f4707861d8b4c530</SHA1><branch><SHA1>be748aa3945bd42579158ca9f4707861d8b4c530</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>be748aa3945bd42579158ca9f4707861d8b4c530</SHA1><branch><SHA1>be748aa3945bd42579158ca9f4707861d8b4c530</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run></buildsByBranchName><lastBuiltRevision><SHA1>be748aa3945bd42579158ca9f4707861d8b4c530</SHA1><branch><SHA1>be748aa3945bd42579158ca9f4707861d8b4c530</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</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><building>false</building><displayName>#1</displayName><duration>105597</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #1</fullDisplayName><id>1</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1</number><queueId>3789</queueId><result>FAILURE</result><timestamp>1759768018889</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/1/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet></firstBuild><healthReport><description>Build stability: No recent builds failed.</description><iconClassName>icon-health-80plus</iconClassName><iconUrl>health-80plus.png</iconUrl><score>100</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>210</buildNumber><marked><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><branch><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><branch><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><branch><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><name>refs/remotes/origin/main</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>#210</displayName><duration>1585561</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #210</fullDisplayName><id>210</id><inProgress>false</inProgress><keepLog>false</keepLog><number>210</number><queueId>7076</queueId><result>SUCCESS</result><timestamp>1775236080411</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/210/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet></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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>210</buildNumber><marked><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><branch><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><branch><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><branch><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><name>refs/remotes/origin/main</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>#210</displayName><duration>1585561</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #210</fullDisplayName><id>210</id><inProgress>false</inProgress><keepLog>false</keepLog><number>210</number><queueId>7076</queueId><result>SUCCESS</result><timestamp>1775236080411</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/210/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet></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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>203</buildNumber><marked><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><branch><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><branch><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><branch><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><name>refs/remotes/origin/main</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>#203</displayName><duration>1288773</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #203</fullDisplayName><id>203</id><inProgress>false</inProgress><keepLog>false</keepLog><number>203</number><queueId>6900</queueId><result>FAILURE</result><timestamp>1774631280663</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/203/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet></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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>210</buildNumber><marked><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><branch><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><branch><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><branch><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><name>refs/remotes/origin/main</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>#210</displayName><duration>1585561</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #210</fullDisplayName><id>210</id><inProgress>false</inProgress><keepLog>false</keepLog><number>210</number><queueId>7076</queueId><result>SUCCESS</result><timestamp>1775236080411</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/210/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>210</buildNumber><marked><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><branch><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><branch><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><branch><SHA1>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</SHA1><name>refs/remotes/origin/main</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>#210</displayName><duration>1585561</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #210</fullDisplayName><id>210</id><inProgress>false</inProgress><keepLog>false</keepLog><number>210</number><queueId>7076</queueId><result>SUCCESS</result><timestamp>1775236080411</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/210/</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><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>203</buildNumber><marked><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><branch><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><branch><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><branch><SHA1>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</SHA1><name>refs/remotes/origin/main</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>#203</displayName><duration>1288773</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #203</fullDisplayName><id>203</id><inProgress>false</inProgress><keepLog>false</keepLog><number>203</number><queueId>6900</queueId><result>FAILURE</result><timestamp>1774631280663</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/203/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet></lastUnsuccessfulBuild><nextBuildNumber>211</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>