<freeStyleProject _class='hudson.model.FreeStyleProject'><action></action><action></action><action></action><action></action><action _class='hudson.plugins.jobConfigHistory.JobConfigHistoryProjectAction'></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.JobDisplayAction'><displayUrl>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/</displayUrl></action><action _class='com.cloudbees.plugins.credentials.ViewCredentialsAction'><stores></stores></action><description>RESPECT-Primary</description><displayName>RESPECT-Primary-MavenPublish</displayName><fullDisplayName>RESPECT-Primary-MavenPublish</fullDisplayName><fullName>RESPECT-Primary-MavenPublish</fullName><name>RESPECT-Primary-MavenPublish</name><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/</url><buildable>true</buildable><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 _class='hudson.plugins.git.util.Build'><buildNumber>51</buildNumber><marked><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><branch><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><branch><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><branch><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.35.zip</displayPath><fileName>respect-cli-1.0.35.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.35.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.35.zip</displayPath><fileName>respect-server-1.0.35.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.35.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.35.zip</displayPath><fileName>respect-server-shadow-1.0.35.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.35.zip</relativePath></artifact><building>false</building><displayName>#51</displayName><duration>156892</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #51</fullDisplayName><id>51</id><inProgress>false</inProgress><keepLog>false</keepLog><number>51</number><queueId>10979</queueId><result>SUCCESS</result><timestamp>1785914610157</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/51/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_ADD_YOUR_APP.md</affectedPath><affectedPath>respect-lib-opds-model/README_LAUNCHABLE_APP.md</affectedPath><commitId>b14d70228ade3d0a0282bced3d341c9b8a984f93</commitId><timestamp>1785914385000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Make terminology consistent: use collection instead of catalog.
</comment><date>2026-08-05 11:19:45 +0400</date><id>b14d70228ade3d0a0282bced3d341c9b8a984f93</id><msg>Make terminology consistent: use collection instead of catalog.</msg><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path><path><editType>edit</editType><file>respect-lib-opds-model/README_LAUNCHABLE_APP.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 _class='hudson.plugins.git.util.Build'><buildNumber>49</buildNumber><marked><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><branch><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><branch><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><branch><SHA1>52845f44836ba14427dd22dbeb7169292931effa</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#49</displayName><duration>166801</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #49</fullDisplayName><id>49</id><inProgress>false</inProgress><keepLog>false</keepLog><number>49</number><queueId>10948</queueId><result>SUCCESS</result><timestamp>1785826921293</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/49/</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 _class='hudson.plugins.git.util.Build'><buildNumber>48</buildNumber><marked><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><branch><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><branch><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><branch><SHA1>52845f44836ba14427dd22dbeb7169292931effa</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#48</displayName><duration>157546</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #48</fullDisplayName><id>48</id><inProgress>false</inProgress><keepLog>false</keepLog><number>48</number><queueId>10929</queueId><result>SUCCESS</result><timestamp>1785740521293</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/48/</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 _class='hudson.plugins.git.util.Build'><buildNumber>47</buildNumber><marked><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><branch><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><branch><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><branch><SHA1>52845f44836ba14427dd22dbeb7169292931effa</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#47</displayName><duration>154281</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #47</fullDisplayName><id>47</id><inProgress>false</inProgress><keepLog>false</keepLog><number>47</number><queueId>10909</queueId><result>SUCCESS</result><timestamp>1785654120420</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/47/</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-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCase.kt</affectedPath><affectedPath>respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticatePasswordUseCaseDbImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</affectedPath><commitId>62688c7fe742af0eaf0396c76297482ed4c3b9b7</commitId><timestamp>1785596640000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Improvements to reduce potential flakiness in Login and improve authentication logging.
</comment><date>2026-08-01 19:04:00 +0400</date><id>62688c7fe742af0eaf0396c76297482ed4c3b9b7</id><msg>Improvements to reduce potential flakiness in Login and improve authentication logging.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCase.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-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>edit</editType><file>respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticatePasswordUseCaseDbImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-ihttp-iostreams/build.gradle.kts</affectedPath><affectedPath>respect-lib-ihttp-core/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</affectedPath><affectedPath>gradle/wrapper/gradle-wrapper.properties</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>52845f44836ba14427dd22dbeb7169292931effa</commitId><timestamp>1785599456000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Dependency version updates.
</comment><date>2026-08-01 19:50:56 +0400</date><id>52845f44836ba14427dd22dbeb7169292931effa</id><msg>Dependency version updates.</msg><path><editType>edit</editType><file>gradle/wrapper/gradle-wrapper.properties</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>app-android/src/main/AndroidManifest.xml</file></path><path><editType>edit</editType><file>respect-lib-ihttp-iostreams/build.gradle.kts</file></path><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>edit</editType><file>respect-lib-ihttp-core/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 _class='hudson.plugins.git.util.Build'><buildNumber>46</buildNumber><marked><SHA1>d290141a45d04b62ac859482d07c3c209b5ee129</SHA1><branch><SHA1>d290141a45d04b62ac859482d07c3c209b5ee129</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>d290141a45d04b62ac859482d07c3c209b5ee129</SHA1><branch><SHA1>d290141a45d04b62ac859482d07c3c209b5ee129</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>d290141a45d04b62ac859482d07c3c209b5ee129</SHA1><branch><SHA1>d290141a45d04b62ac859482d07c3c209b5ee129</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#46</displayName><duration>154453</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #46</fullDisplayName><id>46</id><inProgress>false</inProgress><keepLog>false</keepLog><number>46</number><queueId>10886</queueId><result>SUCCESS</result><timestamp>1785567720420</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/46/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/admin_add_new_student_to_class.yaml</affectedPath><affectedPath>.maestro/flows/subflows/add_person_create_account.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_student.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows/002_001_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_new_teacher_to_class.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>7dcdde677d98a6a3b10e72d4c0a1150c2f68e93a</commitId><timestamp>1785415095000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Improve Maestro test stability
</comment><date>2026-07-30 16:38:15 +0400</date><id>7dcdde677d98a6a3b10e72d4c0a1150c2f68e93a</id><msg>Improve Maestro test stability</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_002_add_user_direct_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_new_teacher_to_class.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/002_001_browse_lessons_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/add_person_create_account.yaml</file></path><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_new_student_to_class.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_student.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</affectedPath><commitId>faa61f31a71b8ee63ff42eeb83663138a65bdf35</commitId><timestamp>1785493292000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update PinPublicationPrepareUseCase to include the manifest itself and images.
</comment><date>2026-07-31 14:21:32 +0400</date><id>faa61f31a71b8ee63ff42eeb83663138a65bdf35</id><msg>Update PinPublicationPrepareUseCase to include the manifest itself and images.</msg><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorAndroid.kt</affectedPath><commitId>81ec123a349ff08a6f530ab152003c911a9e9f21</commitId><timestamp>1785495341000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Improve logging for UstadCacheInterceptor and ConnectivityMonitorAndroid.kt
</comment><date>2026-07-31 14:55:41 +0400</date><id>81ec123a349ff08a6f530ab152003c911a9e9f21</id><msg>Improve logging for UstadCacheInterceptor and ConnectivityMonitorAndroid.kt</msg><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.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/androidMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt</affectedPath><commitId>b866879743dfc1c1cc1b471ce1af3d6c40988cf7</commitId><timestamp>1785497367000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add logging on UstadCacheInterceptor even when not applying further processing.
</comment><date>2026-07-31 15:29:27 +0400</date><id>b866879743dfc1c1cc1b471ce1af3d6c40988cf7</id><msg>Add logging on UstadCacheInterceptor even when not applying further processing.</msg><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>.maestro/README.md</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</affectedPath><affectedPath>ci-run-e2e-tests.sh</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ChannelExt.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</affectedPath><commitId>d290141a45d04b62ac859482d07c3c209b5ee129</commitId><timestamp>1785526145000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update UstadCache to use a Channel to batch and execute database updates instead of an interval.

The interval approach led to flakey test results when the app was killed before updates were committed to the database.
</comment><date>2026-07-31 23:29:05 +0400</date><id>d290141a45d04b62ac859482d07c3c209b5ee129</id><msg>Update UstadCache to use a Channel to batch and execute database updates instead of an interval.</msg><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ChannelExt.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/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</file></path><path><editType>edit</editType><file>.maestro/README.md</file></path><path><editType>edit</editType><file>ci-run-e2e-tests.sh</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.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 _class='hudson.plugins.git.util.Build'><buildNumber>45</buildNumber><marked><SHA1>beec082677ecfe343236c083f1545d158453e63f</SHA1><branch><SHA1>beec082677ecfe343236c083f1545d158453e63f</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>beec082677ecfe343236c083f1545d158453e63f</SHA1><branch><SHA1>beec082677ecfe343236c083f1545d158453e63f</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>beec082677ecfe343236c083f1545d158453e63f</SHA1><branch><SHA1>beec082677ecfe343236c083f1545d158453e63f</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#45</displayName><duration>156065</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #45</fullDisplayName><id>45</id><inProgress>false</inProgress><keepLog>false</keepLog><number>45</number><queueId>10861</queueId><result>SUCCESS</result><timestamp>1785481320420</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/45/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>97ac20242d7390216f788048a1b7854592ce390c</commitId><timestamp>1785405360000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update README.md

Update README.md to specify using the latest stable channel version of Android Studio
</comment><date>2026-07-30 13:56:00 +0400</date><id>97ac20242d7390216f788048a1b7854592ce390c</id><msg>Update README.md</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/6.json</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>.maestro/flows/002_001_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</affectedPath><affectedPath>.maestro/flows/002_002_browse_demo_app_test.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geticonforxapiactivity/GetPublicationForXapiActivityUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCaseAndroid.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/util/CommonSortOptions.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/5.json</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/drawable/no_bookmark.xml</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_statement_maker.js</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/AddBookmarkUseCase.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/license/GetLicenseLabelUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/bookmark/BookmarkListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/RemoveBookmarkUseCase.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/index.html</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/Snack.kt</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_app.yaml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/PublicationListItem.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</affectedPath><commitId>beec082677ecfe343236c083f1545d158453e63f</commitId><timestamp>1785408254000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Dev bookmark xapi (#272)

* Add bookmark button to lesson details

* Add bookmark functionality for learning units

Key changes include:
- Updating the `OpdsDataSource` interface and its implementations (`OpdsDataSourceRepository`, `OpdsDataSourceDb`) to handle observing and setting bookmark status.
- Adding a `BookmarkEntity` and `BookmarkDao` to the database schema to persist bookmark state.
- Implementing the bookmark logic in the `LearningUnitDetailViewModel`, which now observes and updates the bookmark status.
- The bookmark button in `LearningUnitDetailScreen` now dynamically changes its icon based on whether the unit is bookmarked.

* feat: Add bookmark data layer

Introduced the data layer components required for managing publication bookmarks.

This includes:
- A `BookmarkEntity` to store bookmark status and timestamp.
- A `BookmarkDao` with functions to insert/update bookmarks, observe a single bookmark's status, and retrieve all bookmarked publications.
- An implementation in `OpdsDataSourceDb` to get a flow of bookmarked `OpdsPublication` objects.
- An update to `ReadiumLinkEntityDao` to find all links associated with a publication UID.

* feat: Implement fetching of bookmarked publications

This commit introduces the functionality to retrieve a list of all bookmarked publications from the local database.

Key changes:

-   Added `getBookmarkedPublications()` to the `OpdsDataSource` interface.
-   Implemented the new function in `OpdsDataSourceRepository` to delegate the call to the local data source.
-   In `OpdsDataSourceDb`, the implementation now fetches bookmarked publication entities from `BookmarkDao` and maps them to `OpdsPublication` models.
-   Updated the `OpdsDataSourceHttp` stub to include the new interface method.

* feat: Store title and timestamp for bookmarks

This change enhances the bookmarking functionality by storing the title of the bookmarked item and implicitly tracking when it was last updated.

Key changes include:
- Updating the `setBookmarkStatus` function across the `OpdsDataSource` interface and its implementations (`OpdsDataSourceDb`, `OpdsDataSourceRepository`, `OpdsDataSourceHttp`) to accept a `title` parameter.
- Modifying the `BookmarkDao` to no longer retrieve `OpdsPublicationEntity` objects directly. Instead, a new `observeAllBookmarks` function returns a flow of `BookmarkEntity` objects, ordered by their update timestamp.
- The `LearningUnitDetailViewModel` now passes the lesson title when setting the bookmark status.
- The `OpdsDataSourceDb` was updated to implement these DAO changes and now provides a `getAllBookmarks` function.

* Implement fetching of all bookmarks
This commit introduces the functionality to retrieve a list of all bookmarks.

* Display app name and icon on learning unit detail screen

* Store subtitle and app icon for bookmarks

* Store subtitle and app icon for bookmarks

* Improve code formatting in OpdsDataSourceDb

* Improve code formatting in OpdsDataSourceDb

* Implement bookmark list screen

* Implement bookmark list screen

* Implement bookmark list screen

* Implement bookmark list screen

* Implement bookmark list screen

* Implement bookmark list screen

* Refactor bookmarking logic to toggle status

This commit refactors the bookmarking functionality. Instead of explicitly passing a boolean to set the bookmark status, the `setBookmarkStatus` function now toggles the state. If a bookmark exists, it's removed; otherwise, a new one is created.

This change simplifies the bookmarking logic across the data layers and the view model. Additionally, the bookmark list screen now allows for the removal of bookmarks.

* Refactor bookmarking logic to toggle status

This commit refactors the bookmarking functionality. Instead of explicitly passing a boolean to set the bookmark status, the `setBookmarkStatus` function now toggles the state. If a bookmark exists, it's removed; otherwise, a new one is created.

This change simplifies the bookmarking logic across the data layers and the view model. Additionally, the bookmark list screen now allows for the removal of bookmarks.

* Delete respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/2.json

* Refactor bookmarking logic to toggle status

This commit refactors the bookmarking functionality. Instead of explicitly passing a boolean to set the bookmark status, the `setBookmarkStatus` function now toggles the state. If a bookmark exists, it's removed; otherwise, a new one is created.

This change simplifies the bookmarking logic across the data layers and the view model. Additionally, the bookmark list screen now allows for the removal of bookmarks.

* Refactor bookmarking logic to toggle status

* Refactor: Enhance bookmark data and enable navigation

* Seperation of bookmark implementation

* Seperation of bookmark implementation

* Update bookmark data model to include learning unit URL

* Update bookmark

* Move bookmarking logic from respect app data source to school data source

* Update bookmark logic to use enum to delete

* Rename bookmark observation methods to getBookmarkStatus and getAllBookmarks

* Rename bookmark observation methods to getBookmarkStatus and getAllBookmarks

* Refactor bookmarking logic to use Bookmark model and toggle status

* Refactor bookmarking logic to use Bookmark model and toggle status

* Refactor bookmarking logic to use Bookmark model and toggle status

* Refactor bookmarking logic to use Bookmark model and toggle status

* Rename Bookmark field learningUnitUrl to learningUnitManifestUrl

This commit renames the `learningUnitUrl` property in the `Bookmark` data class to `learningUnitManifestUrl` for better clarity and consistency with other parts of the codebase.

The changes include:
- Updating the `Bookmark` model definition.
- Updating the `BookmarkAdapter` mapping logic to reflect the rename.
- Adjusting usages in `LearningUnitDetailViewModel` and `BookmarkListViewModel`.
- Updating the database access logic in `BookmarkDataSourceDb`.
- Cleaning up unused imports.

* Rename Bookmark field learningUnitUrl to learningUnitManifestUrl

* Added playlist test

* Move bookmark-related database components to the school package

* Move bookmark-related database components to the school package

* Added bookmark test

* Add user identification to bookmark database components

* Add user identification to bookmark database components

* Add user identification to bookmark database components

* Update bookmark storage logic

* Implement bookmark toggling and update database components

* Refactor bookmark data layer to use unique identifiers and timestamps

* Refactor bookmark data layer to use composite primary keys and remove UID generation logic

* Refactor bookmark data layer to use composite primary keys and remove UID generation logic

* Clean up code and refactor bookmark icon logic

* Implement bookmark data layer including HTTP, DB, and Repository components

* Update Bookmark model and data layer to support titles, subtitles, and images.

- Add `title`, `subtitle`, and `imageUrl` properties to the `Bookmark` model.
- Implement `BookmarkEntities` and `PublicationWithDetails` in the DB layer to handle relational data for bookmarks and OPDS publications.
- Update `BookmarkDao` and `BookmarkDataSourceDb` to return bookmarks with their associated publication details.
- Refactor `BookmarkListScreen` to display bookmark images and text content.
- Add navigation logic to `AppLauncherViewModel` for navigating to the bookmark list.
- Minor clean up and documentation updates in OPDS and Bookmark entities.

* Remove title, subtitle, and image fields from Bookmark model and DAO logic

* Add localized title support to bookmarks and update database relations

* Refactor LearningUnitDetailViewModel and clean up unused imports and whitespace.

* Update Bookmark model and data layer to include subtitles and improve app detail handling in LearningUnitDetailScreen.

* Remove properties

* Update BookmarkListViewModel to use LoadingUiState and clean up imports

* Update BookmarkListViewModel to use LoadingUiState and clean up imports

* Update BookmarkListViewModel to use LoadingUiState and clean up imports

* Update BookmarkListViewModel to use LoadingUiState and clean up imports

* Clean up formatting in BookmarkDao

* Clean up formatting in BookmarkAdapter.kt

* Clean up

* Clean up

* Clean up

* Clean up LearningUnitDetailViewModel constructor and improve code formatting

* Add image URL support to Bookmark model and UI components

* Add BookmarkEntity to database schema and implement navigation to bookmark list from app launcher.

* Add BookmarkEntity to database schema and implement navigation to bookmark list from app launcher.

* Add BookmarkEntity to database schema and implement navigation to bookmark list from app launcher.

* Added lesson002 and updated test

* Implement bookmark navigation and fix data synchronization in BookmarkListViewModel

* Update bookmark implementation to include application manifest URLs and app metadata.

* commented bookmark code for playlist screen

* commented bookmark code for playlist screen

* Update bookmark implementation to include application manifest URLs and app metadata.

* Update bookmark data layer, database entities, and cleanup ViewModel logic

* Rename findBookmarks to findBookmarksWithMissingPublication and update loading logic in BookmarkListViewModel

* Implement getBookmarkLastModified and findByUidList in BookmarkDao and BookmarkDataSourceDb

* Register Bookmark components in RespectSchoolDatabase and update OPDS package imports

* Register Bookmark components in RespectSchoolDatabase and update OPDS package imports

* Add language, grade, and type fields to Bookmark model and display them in BookmarkListScreen

* Update navigation labels to "Home" and integrate BookmarkListScreen into HomeScreen

- Rename "Apps" navigation label to "Home" across `App.kt`, `AppLauncherViewModel`, and `BookmarkListViewModel`.
- Update `HomeScreen` to include a new "Bookmarks" tab alongside the existing "Apps" tab.
- Refactor `BookmarkListScreen` UI: remove redundant styling boxes/borders around icons and adjust icon sizing.
- Update `strings.xml` to include new "home" and "bookmarks" resources and update the bookmark empty state message.
- Update Maestro flow test to reflect UI text changes.

* Update navigation labels to "Home" and integrate BookmarkListScreen into HomeScreen

* Add NO_BOOKMARK to RespectImage and update EmptyBookmarkState UI in BookmarkListScreen

* Add NO_BOOKMARK to RespectImage and update EmptyBookmarkState UI in BookmarkListScreen

* Add NO_BOOKMARK to RespectImage and update EmptyBookmarkState UI in BookmarkListScreen

* Add NO_BOOKMARK to RespectImage and update EmptyBookmarkState UI in BookmarkListScreen

* Update UI layout and styling in BookmarkListScreen.kt

* Update UI layout and styling in BookmarkListScreen.kt

* Move no_bookmark image to shared resources and update BookmarkListScreen usage

* Implement `listAsFlow` in `BookmarkDataSource` and update `BookmarkListViewModel` to reactive flow

Instead Of using Paging Source I am using List as Flow because-App loading per item getting messy with paging

* Implement paging support for BookmarkDataSource across DB, HTTP, and Repository layers

* Remove redundant comments in BookmarkListViewModel

* Introduce `BookmarkDetails` to associate bookmarks with their corresponding application data and refactor `BookmarkListViewModel` to load these details concurrently.

* Update Maestro flows

* test - update Maestro flow for lesson browsing

* Update Maestro test flows

*   **002_browse_lessons_test.yaml**: Updated the "Bookmark" tap index from 1 to 0 and commented out several assertion and undo steps.

* Update Maestro test flows

* Update Maestro test flows

* Update BookmarkDataSource and related components to support includeDeleted parameter and fix BookmarkDao query

* Update SnackBar implementation to support actions and implement undo functionality for bookmark removal

*   Modify `App.kt` to handle `SnackbarResult` and trigger the snackbar's `onAction` callback.
*   Update `BookmarkListViewModel` to use `SnackBarDispatcher` and provide an "Undo" action when removing a bookmark.
*   Add `remove_bookmark` and `undo` string resources.

* Implement `UiText.asString()` extension and update `Snack` to support `UiText` actions

* Use default snackbar duration in App.kt

* test is failing as Snack bar appears but due to duration by the time tapOn Undo is triggered it disappears

* test: Update browse lessons Maestro flow with additional assertions

* test: update browse lessons Maestro flow

* Updated `002_browse_lessons_test.yaml` Maestro flow

* test: update Maestro browse lessons flow

* test is failing as Snack bar appears but due to duration by the time tapOn Undo is triggered it disappears

* Format code and apply style improvements across bookmark and data layer components

* Update icon URI handling in Bookmark and LearningUnit detail screens and resolve publication URLs in ViewModels

* Update snackbar message handling to support StringUiText and StringResourceUiText in App.kt

* Update snackbar message handling to support StringUiText and StringResourceUiText in App.kt

* Update bookmark query field and remote sync logic.

* Refactor data loading state and clean up bookmark-related logic.

- Move `DataLoadState`, `DataLoadParams`, and related extensions from `world.respect.datalayer` to `world.respect.lib.dataloadstate`.
- Remove `UiText.asString()` extension in favor of explicit `when` branches in the `App` composable.
- Remove `AssignmentDataSource` and related references across the data layer and server routes.
- Replace `getTitle()` with `langMapString()` for title resolution in `BookmarkListScreen` and `LearningUnitDetailScreen`.
- Fix parameter mapping in `LearningUnitDetailViewModel` to use `learningUnitManifestUrl` and update bookmark storage logic.
- Clean up unused imports and duplicate string resources.

* Add `gradle-daemon-jvm.properties` to specify Java 21 for the Gradle daemon.

* Add `gradle-daemon-jvm.properties` to specify Java 21 for the Gradle daemon.

* Add `gradle-daemon-jvm.properties` to specify Java 21 for the Gradle daemon.

* removed bookmark data source

* Refactor bookmark management to use xapi statements instead of a dedicated `BookmarkDataSource`.

- Remove `BookmarkDataSourceRepository` and its associated server-side route.
- Update `LearningUnitDetailViewModel` to fetch and store bookmark status using `xapiResource.statements` with the `ID_BOOKMARKED` verb.
- Update `BookmarkListViewModel` and `BookmarkListScreen` to display and manage bookmarks based on xapi statements and linked `OpdsPublication` data.
- Add `ID_BOOKMARKED` constant to `XapiVerb`.
- Update Maestro UI tests to reflect changes in sample data names and bookmark behavior.

* Sort bookmark statements by timestamp in `BookmarkListViewModel` and remove unused imports and test steps.

* Remove redundant newline in `002_browse_lessons_test.yaml`.

* Update Maestro flow assertions to use "Home" instead of "Apps".

* Update Maestro flow assertions to use "Home" instead of "Apps".

* Reorganize Maestro YAML files between flows and test directories.

* Update lesson visibility assertion in `002_browse_lessons_test.yaml`.

* Add `BookmarkEntity` table to `RespectSchoolDatabase` schema and move Maestro test files to the `flows` directory.

* Update school self-registration test and remove unused admin subflow.

* Update school self-registration test and remove unused admin subflow.

* Update `002_browse_lessons_test.yaml` to use `${output.TEST_APP_URL}` variable.

* Update `002_browse_lessons_test.yaml` to use `${output.TEST_APP_URL}` variable.

* Update `002_browse_lessons_test.yaml` to use `${output.TEST_APP_URL}` variable.

* Add database schema files for versions 1 through 8 of `RespectAppDatabase`.

* Add database schema files for versions 1 through 8 of `RespectAppDatabase`.

* Refine code formatting and whitespace.

* Refine code formatting and whitespace.

* Refine imports in `SchoolDataSourceDb.kt` and remove trailing whitespace in `OpdsPublicationEntityAdapter.kt`.

* Remove extraneous blank lines from documentation comments in `OpdsPublicationEntity.kt`.

* Introduce `AddBookmarkUseCase` and `RemoveBookmarkUseCase` to centralize bookmarking logic and refactor view models to use these use cases.

- Deleted legacy `Bookmark` model from `datalayer`.
- Added `AddBookmarkUseCase` and `RemoveBookmarkUseCase` in `respect-lib-shared`.
- Refactored `LearningUnitDetailViewModel` and `BookmarkListViewModel` to use the new use cases and improve error handling via snackbars.
- Updated `AppKoinModule.kt` to provide the new use cases within the account scope.
- Refined UI styles and string resources in `BookmarkListScreen`, `LearningUnitDetailScreen`, and `strings.xml`.
- Fixed typo from `accountMananger` to `accountManager` in `LearningUnitDetailViewModel`.

* Remove unused `FontWeight` import in `LearningUnitDetailScreen`.

* Include `appManifestUrl` in `LearningUnitDetail` route and xAPI bookmark statements.

- Update `LearningUnitDetail` route to include and persist `appManifestUrl`.
- Pass `appManifestUrl` through `AddBookmarkUseCase` and store it within the xAPI statement's `context.contextActivities.parent` field.
- Update `LearningUnitDetailViewModel` to fetch application data using `appManifestUrl` from the route.
- Enhance `BookmarkListViewModel` to extract `appManifestUrl` from bookmark statements when navigating to unit details.
- Simplify UI in `LearningUnitDetailScreen` by removing the subtitle from the supporting content row.

* Refactor `BookmarkListScreen` to use `PublicationListItem` and add `trailingContent` support to `PublicationListItem`.

* Remove `grade1` test case data, including `lesson002` HTML, JSON, and media assets.

* Replace duplicated getString code with new getUiTextString function

* Move PublicationListItem into its own file

* Update `.maestro/flows/002_browse_lessons_test.yaml` to include a test flow for downloading a lesson and verifying its functionality in offline mode.

* Refactor bookmark handling to utilize new XAPI constants and improve context management

* Refactor AddBookmarkUseCase and LearningUnitDetailViewModel to remove appManifestUrl handling

* Refactor AddBookmarkUseCase and LearningUnitDetailViewModel to remove appManifestUrl handling

* Enhance AddBookmarkUseCase to include title in bookmark xAPI statement

* Refactor BookmarkListViewModel and LearningUnitDetailViewModel to remove appManifestUrl handling and improve bookmark state management

* Add sorting functionality to BookmarkListViewModel and UI for bookmarks

* Add sorting functionality to BookmarkListViewModel and UI for bookmarks

* Refactor LearningUnitDetailScreen to use Column layout for improved UI structure and add app icon

* Add error handling and user feedback for bookmark operations

* Add test tags to top navigation items for improved UI testing

* Update `.maestro/flows/002_browse_lessons_test.yaml` to use element IDs instead of text-based indexing for navigating to the home screen and asserting home visibility.

* Update Maestro test flows to use resource IDs for home navigation visibility assertions.

* Update `admin_add_app.yaml` to use the resource ID `nav_home` for the home navigation tap action instead of the "Home" text label.

* Tidyup of bookmark saving to/from xAPI.

* Update `.maestro/flows/002_browse_lessons_test.yaml` to refine the navigation flow. Replace the back button action with specific navigation to the home screen and "Apps" section to access the "Statement Maker" feature.

* Refactored
The screen now:
Extracts the activityId
Passes it as Url(activityId)to uiState.taskInfoFlow()
Collects the returned flow
Renders the PublicationListItem

* Minor tidyup on homescreen.kt

* Add bookmark button back to learning unit detail screen.

* Bookmark cleanup

1) Use remember on bookmarklistscreen when collecting flow
2) bookmarklistviewmodel to filter current active user.

* Fix 002_001 browse lessons test flow.

* Tidyup bookmarks

1) Learning detail screen updated to use a shared flow to avoid unnecessarily reloading app detail
2) Use separate buttons enabled setting for bookmark button on learning unit detail to avoid potential end to end test flakiness: it is a separate load/API call.

* Resolve OpdsPublication in BookmarkListViewModel to ensure icon will display as expected if it is a relative href.

* Update demo app test to reflect navigation changes from "Apps" to "Home"

* Correct license link on DemoLaunchableAppManifestRoute.kt

* Update demo app test to use navigation ID for "Home"

* Replace tapOn home with using test tag

* Add additional logging to WebViewActivity and lesson launch to attempt to diagnose learning unit not opening flakey results on Maestro testing.

* Add more logging on xapi_statement_maker.js .

* Revert database JSON schema change: BookmarkEntity was not added when using xapi so no change.

---------

Co-authored-by: pooja &lt;pooja@ustadmobile.com&gt;
Co-authored-by: Mike Dawson &lt;mike@ustadmobile.com&gt;
</comment><date>2026-07-30 14:44:14 +0400</date><id>beec082677ecfe343236c083f1545d158453e63f</id><msg>Dev bookmark xapi (#272)</msg><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/5.json</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/AddBookmarkUseCase.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-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</file></path><path><editType>edit</editType><file>.maestro/flows/002_001_browse_lessons_test.yaml</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/PublicationListItem.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/index.html</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/6.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>add</editType><file>respect-lib-shared/src/commonMain/composeResources/drawable/no_bookmark.xml</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</file></path><path><editType>edit</editType><file>.maestro/flows/002_002_browse_demo_app_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</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/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.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>.maestro/flows/subflows/admin_add_app.yaml</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>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CommonSortOptions.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>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/RemoveBookmarkUseCase.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/app/appstate/Snack.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_statement_maker.js</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.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/view/bookmark/BookmarkListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geticonforxapiactivity/GetPublicationForXapiActivityUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCaseAndroid.kt</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 _class='hudson.plugins.git.util.Build'><buildNumber>44</buildNumber><marked><SHA1>21bf77a143458be553aea314cb2be726fb7bec2f</SHA1><branch><SHA1>21bf77a143458be553aea314cb2be726fb7bec2f</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>21bf77a143458be553aea314cb2be726fb7bec2f</SHA1><branch><SHA1>21bf77a143458be553aea314cb2be726fb7bec2f</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>21bf77a143458be553aea314cb2be726fb7bec2f</SHA1><branch><SHA1>21bf77a143458be553aea314cb2be726fb7bec2f</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#44</displayName><duration>115549</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #44</fullDisplayName><id>44</id><inProgress>false</inProgress><keepLog>false</keepLog><number>44</number><queueId>10834</queueId><result>SUCCESS</result><timestamp>1785394920421</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/44/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/006_user_send_feedback_test.yaml</affectedPath><commitId>21bf77a143458be553aea314cb2be726fb7bec2f</commitId><timestamp>1785320719000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix feedback maestro flow
 Remove unnecessary user creation and login not related to the scope of this test.
</comment><date>2026-07-29 14:25:19 +0400</date><id>21bf77a143458be553aea314cb2be726fb7bec2f</id><msg>Fix feedback maestro flow</msg><path><editType>edit</editType><file>.maestro/flows/006_user_send_feedback_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 _class='hudson.plugins.git.util.Build'><buildNumber>43</buildNumber><marked><SHA1>12d17c84759230028533dd23ce037c6328ae8692</SHA1><branch><SHA1>12d17c84759230028533dd23ce037c6328ae8692</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>12d17c84759230028533dd23ce037c6328ae8692</SHA1><branch><SHA1>12d17c84759230028533dd23ce037c6328ae8692</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>12d17c84759230028533dd23ce037c6328ae8692</SHA1><branch><SHA1>12d17c84759230028533dd23ce037c6328ae8692</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#43</displayName><duration>155253</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #43</fullDisplayName><id>43</id><inProgress>false</inProgress><keepLog>false</keepLog><number>43</number><queueId>10800</queueId><result>SUCCESS</result><timestamp>1785308520665</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/43/</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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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/accountlist/AccountListScreen.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/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><commitId>8cd1739ed559e2e42563d131b695b1da4d57837b</commitId><timestamp>1768996473000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>-Created SharedFeedback Screen and its viewmodel (added in app route, appNavHost, app koin)
-in AccountList have added a text with trailing icon "Share feedback)" and on click of it navigation to share feed back
-In Share feedback screen added section on Quick Contact (as text) the using List Item to define 3 options of whatsapp, email and public forum)
added on click methods to it (not functional yet )
</comment><date>2026-01-21 17:24:33 +0530</date><id>8cd1739ed559e2e42563d131b695b1da4d57837b</id><msg>-Created SharedFeedback Screen and its viewmodel (added in app route, appNavHost, app koin)</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/view/manageuser/accountlist/AccountListScreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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/composeResources/values/strings.xml</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/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><commitId>9b5200c1c64f65a9c944127bd3f885b2bfffc33f</commitId><timestamp>1769011246000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Remove redundant content descriptions
</comment><date>2026-01-21 21:30:46 +0530</date><id>9b5200c1c64f65a9c944127bd3f885b2bfffc33f</id><msg>Refactor: Remove redundant content descriptions</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</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/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherAndroid.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/launchers/WhatsAppLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncher.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/launchers/WebLauncher.kt</affectedPath><affectedPath>respect-datalayer-repository/log/respect-server.2026-01-14.0.log</affectedPath><affectedPath>respect-lib-shared/log/respect-server.2026-01-14.0.log</affectedPath><commitId>98949c9108a009648bdfcdf0dc4e8fdb19fd1538</commitId><timestamp>1769063995000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Added functionality to open whatsapp to a default number and also when click on public forum opening respect website

Once I get the Whatsapp support number will change that and also will replace the web support link once provided
</comment><date>2026-01-22 12:09:55 +0530</date><id>98949c9108a009648bdfcdf0dc4e8fdb19fd1538</id><msg>Added functionality to open whatsapp to a default number and also when click on public forum opening respect website</msg><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-datalayer-repository/log/respect-server.2026-01-14.0.log</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncher.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncher.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherAndroid.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/log/respect-server.2026-01-14.0.log</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>e47c0aaa7481f27ce8331d8ca10b44fb083be7c5</commitId><timestamp>1769070937000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>merged main
</comment><date>2026-01-22 14:05:37 +0530</date><id>e47c0aaa7481f27ce8331d8ca10b44fb083be7c5</id><msg>merged 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/composeResources/values/strings.xml</affectedPath><affectedPath>gradle/wrapper/gradle-wrapper.properties</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>704dedde542a471542ef6b154ba770c8056c8928</commitId><timestamp>1769161032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Add feedback form to Share Feedback screen

This commit introduces a detailed feedback form on the "Share Feedback" screen, allowing users to submit structured feedback.

Key changes include:
- A dropdown menu for selecting a feedback category.
- A multi-line text field for users to describe their feedback in detail.
- A checkbox for users to request a response from the team.
- A "Submit" button to send the feedback.
- Updated string resources for the new UI elements.
- Renamed "WhatsApp/Email Support" to "WhatsApp/Email Respect".
- Upgraded Gradle version from 8.13 to 9.1.0 and updated related dependencies.
</comment><date>2026-01-23 15:07:12 +0530</date><id>704dedde542a471542ef6b154ba770c8056c8928</id><msg>feat: Add feedback form to Share Feedback screen</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>edit</editType><file>gradle/wrapper/gradle-wrapper.properties</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/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>d4ca86c10492cb109c510c9cb98bbf3ca82464d1</commitId><timestamp>1769163289000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Adds optional phone number and email fields to the "Share Feedback" screen. These fields are displayed only when the user agrees to be contacted by checking a box. The phone number input utilizes the `RespectPhoneNumberTextField` component.
</comment><date>2026-01-23 15:44:49 +0530</date><id>d4ca86c10492cb109c510c9cb98bbf3ca82464d1</id><msg>Adds optional phone number and email fields to the "Share Feedback" screen. These fields are displayed only when the user agrees to be contacted by checking a box. The phone number input utilizes the `RespectPhoneNumberTextField` component.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncher.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>d2ad80ef88ed51fb88c6efab1ed0e493ef84de86</commitId><timestamp>1769165149000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Introduced an `EmailLauncher` to enable users to send feedback via email.
- Created a common `EmailLauncher` interface.
- Added an Android-specific implementation (`EmailLauncherAndroid`) that opens an email client with a pre-filled recipient and subject.
</comment><date>2026-01-23 16:15:49 +0530</date><id>d2ad80ef88ed51fb88c6efab1ed0e493ef84de86</id><msg>Introduced an `EmailLauncher` to enable users to send feedback via email.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncher.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/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/model/FeedbackTicket.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/sharefeedback/FeedBackDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>209d5d17e8fbba1ae8254a0cc63eaa87f9dd3e7e</commitId><timestamp>1769190673000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Implemented Zammad ticket creation for feedback

- Added `FeedBackDataSource` interface and its HTTP implementation to create feedback tickets via the Zammad API.
- Implemented a repository for the feedback data source.
- Defined `FeedbackTicket` and ` data models for the ticket.
- Integrated the ticket creation logic into `ShareFeedbackViewModel`'s `onClickSubmit` function for testing purposes.
</comment><date>2026-01-23 23:21:13 +0530</date><id>209d5d17e8fbba1ae8254a0cc63eaa87f9dd3e7e</id><msg>Implemented Zammad ticket creation for feedback</msg><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/model/FeedbackTicket.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/sharefeedback/FeedBackDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>a6d22afea62ab81feffaa73dc64902dc471cd682</commitId><timestamp>1769190744000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: remove unused accountManager

Removes the unused `accountManager` field from the `ShareFeedbackViewModel` constructor.
</comment><date>2026-01-23 23:22:24 +0530</date><id>a6d22afea62ab81feffaa73dc64902dc471cd682</id><msg>Refactor: remove unused accountManager</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>ff6e74cdb0ef0568cf22fb53bd4e733d88442fad</commitId><timestamp>1769445344000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>creating list of category from string.xml
</comment><date>2026-01-26 22:05:44 +0530</date><id>ff6e74cdb0ef0568cf22fb53bd4e733d88442fad</id><msg>creating list of category from string.xml</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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/launchers/EmailLauncherAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>78eb1098a7bd589e5f1f03ef8151c21b401bac06</commitId><timestamp>1769446978000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Implement feedback submission functionality

This commit wires up the ShareFeedback screen to enable users to submit feedback.

Key changes:
- Implemented `onPhoneChanged` and `onEmailChanged` to update the UI state.
- Connected the "Submit" button to create and send a `FeedbackTicket`.
- The ticket now correctly uses the user-provided email, selected category, and feedback text.
- Standardized the email subject line using a string resource.
</comment><date>2026-01-26 22:32:58 +0530</date><id>78eb1098a7bd589e5f1f03ef8151c21b401bac06</id><msg>feat: Implement feedback submission functionality</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.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/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.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/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>00f944b82cc7799a057a65be32fe5d4dc1723c58</commitId><timestamp>1769488351000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Implement feedback ticket submission

This commit introduces the functionality to create and submit a feedback ticket.

Changes include:
- Adding the necessary Koin dependency injection for `FeedbackDataSource`.
- Correcting the Zammad authentication token format.
- Updating the `ShareFeedbackViewModel` to construct and submit the `FeedbackTicket`.
- Modifying the `FeedbackDataSourceHttp` to remove the response body handling.
</comment><date>2026-01-27 10:02:31 +0530</date><id>00f944b82cc7799a057a65be32fe5d4dc1723c58</id><msg>feat: Implement feedback ticket submission</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/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.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/sharefeedback/FeedBackDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncher.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>bc4cb731b6210e8f5b2dd172c60f382cb50678f1</commitId><timestamp>1769492342000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactored share feedback view model

- Extracted hardcoded strings to constants.
- Added a `ticketTitle` variable to `ShareFeedbackViewModel`.
- The `ticketTitle` is now passed as the subject when sending an email.
- Updated the `guess` string resource to include a colon.
</comment><date>2026-01-27 11:09:02 +0530</date><id>bc4cb731b6210e8f5b2dd172c60f382cb50678f1</id><msg>Refactored share feedback view model</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/launchers/EmailLauncher.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.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/sharefeedback/ShareFeedbackViewModel.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-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><commitId>889350a0ca1ed4e28b906610ddcd4799ecb4d6c7</commitId><timestamp>1769493693000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refact: Move feedback data source to school data source

The `FeedBackDataSource` is now accessed through the `SchoolDataSource` interface.

Changes include:
- Adding `feedBackDataSource` to the `SchoolDataSource` interface.
- Implementing `feedBackDataSource` in `SchoolDataSourceHttp`, `SchoolDataSourceRepository`, and `SchoolDataSourceDb` (with a TODO).
- Updating `ShareFeedbackViewModel` to use `schoolDataSource.feedBackDataSource`.
- Removing the now-redundant `FeedbackDataSource` Koin definitions.
</comment><date>2026-01-27 11:31:33 +0530</date><id>889350a0ca1ed4e28b906610ddcd4799ecb4d6c7</id><msg>Refact: Move feedback data source to school data source</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/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.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-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></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>58d45b3e973aa06d1cd1b50b8bfe14d5dff88185</commitId><timestamp>1769495167000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Renamed `ticketTitle` to `subject` for clarity.

The `ticketTitle` variable in `ShareFeedbackViewModel` has been renamed to `subject` to better reflect its purpose.

In `EmailLauncherAndroid`, the logic for building the mailto URI has been updated to use string interpolation and `toUri()` for a more concise implementation.
</comment><date>2026-01-27 11:56:07 +0530</date><id>58d45b3e973aa06d1cd1b50b8bfe14d5dff88185</id><msg>Refactor: Renamed `ticketTitle` to `subject` for clarity.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherAndroid.kt</affectedPath><commitId>70aa6344ea518a1f4d14d29f02c2744c2188043c</commitId><timestamp>1769507693000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Moved hardcoded values for WhatsApp, web URLs, and email recipients to a companion object in `ShareFeedbackViewModel`.
</comment><date>2026-01-27 15:24:53 +0530</date><id>70aa6344ea518a1f4d14d29f02c2744c2188043c</id><msg>Moved hardcoded values for WhatsApp, web URLs, and email recipients to a companion object in `ShareFeedbackViewModel`.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>2b8e20c1f9ff2442f20abf39818b9f086e6b4cc3</commitId><timestamp>1769508238000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Moved hardcoded values for WhatsApp, web URLs, and email recipients to a companion object in `ShareFeedbackViewModel`.
</comment><date>2026-01-27 15:33:58 +0530</date><id>2b8e20c1f9ff2442f20abf39818b9f086e6b4cc3</id><msg>Moved hardcoded values for WhatsApp, web URLs, and email recipients to a companion object in `ShareFeedbackViewModel`.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><commitId>df262cc009526fe23c50664fd222e495b6ce0f95</commitId><timestamp>1769513507000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Add validation to share feedback screen

- Implement required field validation for the feedback description.
- Add validation to ensure either a phone number or email is provided when a response is requested.
- Display error messages on the respective fields.
- Refactor `feedbackText` to `feedbackDescription` for clarity.
</comment><date>2026-01-27 17:01:47 +0530</date><id>df262cc009526fe23c50664fd222e495b6ce0f95</id><msg>feat: Add validation to share feedback screen</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.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-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherAndroid.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/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><commitId>e775f4b827b76a76c029d5deaa73d9d0a048285b</commitId><timestamp>1769573786000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor
</comment><date>2026-01-28 09:46:26 +0530</date><id>e775f4b827b76a76c029d5deaa73d9d0a048285b</id><msg>Refactor</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.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/sharefeedback/ShareFeedbackScreen.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/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherAndroid.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><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>b37421b295042e61a653b9699a6eb26ff5e07984</commitId><timestamp>1769574739000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor
</comment><date>2026-01-28 10:02:19 +0530</date><id>b37421b295042e61a653b9699a6eb26ff5e07984</id><msg>Refactor</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/androidMain/kotlin/world/respect/AppKoinModule.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/sharefeedback/ShareFeedbackScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>b97060ae591ccac9216e387e1abdae58504200a2</commitId><timestamp>1769579614000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Removed email from contact validation on feedback form.
</comment><date>2026-01-28 11:23:34 +0530</date><id>b97060ae591ccac9216e387e1abdae58504200a2</id><msg>feat: Removed email from contact validation on feedback form.</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/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>3170d46d2bb22994e42648e6dea0607b0e079a46</commitId><timestamp>1769579680000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Removed email from contact validation on feedback form.
</comment><date>2026-01-28 11:24:40 +0530</date><id>3170d46d2bb22994e42648e6dea0607b0e079a46</id><msg>feat: Removed email from contact validation on feedback form.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><commitId>b9f6f0d89ce01e99c6d32d7eda68e59575c8d4ae</commitId><timestamp>1769580768000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Fix: Share feedback contact validation

Corrected the validation logic for the phone number field on the share feedback screen. The error will now be correctly triggered if the "contact me" checkbox is selected and the phone number field is left blank.
</comment><date>2026-01-28 11:42:48 +0530</date><id>b9f6f0d89ce01e99c6d32d7eda68e59575c8d4ae</id><msg>Fix: Share feedback contact validation</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>3bc1b77d4a8ac89585b74833e40873657cb46120</commitId><timestamp>1769581119000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Appends the user's phone number to the body of the feedback ticket being created.
</comment><date>2026-01-28 11:48:39 +0530</date><id>3bc1b77d4a8ac89585b74833e40873657cb46120</id><msg>Appends the user's phone number to the body of the feedback ticket being created.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>668e871940c87a96077d588d535822742a712982</commitId><timestamp>1769581351000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Appends the user's phone number to the body of the feedback ticket being created.
</comment><date>2026-01-28 11:52:31 +0530</date><id>668e871940c87a96077d588d535822742a712982</id><msg>Appends the user's phone number to the body of the feedback ticket being created.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt</affectedPath><commitId>20989f794deb131a87be9c2ebdb5730c6c05bac3</commitId><timestamp>1769584121000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Appends the user's phone number to the body of the feedback ticket being created.
</comment><date>2026-01-28 12:38:41 +0530</date><id>20989f794deb131a87be9c2ebdb5730c6c05bac3</id><msg>Appends the user's phone number to the body of the feedback ticket being created.</msg><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.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/sharefeedback/model/FeedbackTicket.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><commitId>58faa6168ea37cb58bb9754c4d8d9376493f847c</commitId><timestamp>1769585134000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>The contact validation error message, which applies to both phone and email fields, has been moved from the phone number field to the email field to ensure it's always visible. Additionally, the validation logic is updated to require at least one contact method (phone or email) when the feedback checkbox is selected, and a new string resource for this validation message has been added.
</comment><date>2026-01-28 12:55:34 +0530</date><id>58faa6168ea37cb58bb9754c4d8d9376493f847c</id><msg>The contact validation error message, which applies to both phone and email fields, has been moved from the phone number field to the email field to ensure it's always visible. Additionally, the validation logic is updated to require at least one contact method (phone or email) when the feedback checkbox is selected, and a new string resource for this validation message has been added.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.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/sharefeedback/model/FeedbackTicket.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/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><commitId>4d8b3ea5b05b5a04ac72a864fc722ee782cf85b2</commitId><timestamp>1769593172000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Separate contact field validation on feedback form

The shared `contactError` state has been replaced with individual `phoneNumberError` and `emailError` states for the phone and email fields on the share feedback screen.

This change introduces specific validation logic for each field:
*   If the "contact me" checkbox is selected, an error is now displayed under the email field, requiring at least one contact method.
*   Individual validation for incorrect phone number and email formats has been added, displaying "Invalid" or "Invalid email" respectively.
*   The error message for requiring at least one contact method has been updated for clarity.
</comment><date>2026-01-28 15:09:32 +0530</date><id>4d8b3ea5b05b5a04ac72a864fc722ee782cf85b2</id><msg>Refactor: Separate contact field validation on feedback form</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/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.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/sharefeedback/FeedbackSubmittedScreen.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/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/model/FeedbackTicket.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/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</affectedPath><commitId>c1517a73866c94cc252eada8bc1db51492116dde</commitId><timestamp>1769595267000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Add feedback submitted screen

Introduced a confirmation screen that appears after a user successfully submits feedback. This involves creating the `FeedbackSubmittedScreen` and its corresponding `FeedbackSubmittedViewModel`.

Upon successful ticket creation, the app now navigates to this new screen. Additionally, the phone number is no longer appended to the feedback ticket's article type.
</comment><date>2026-01-28 15:44:27 +0530</date><id>c1517a73866c94cc252eada8bc1db51492116dde</id><msg>feat: Add feedback submitted screen</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/manageuser/sharefeedback/FeedbackSubmittedViewModel.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/sharefeedback/model/FeedbackTicket.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/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>c9b29b3995e18cfc591d3aa4713222d8b9a5f03a</commitId><timestamp>1769595603000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Appends the user's phone number to the body of the feedback ticket being created.
</comment><date>2026-01-28 15:50:03 +0530</date><id>c9b29b3995e18cfc591d3aa4713222d8b9a5f03a</id><msg>Appends the user's phone number to the body of the feedback ticket being created.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>2f1e0ec71b0e50c59cb1f9c2af727b2b2235c173</commitId><timestamp>1769595619000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Appends the user's phone number to the body of the feedback ticket being created.
</comment><date>2026-01-28 15:50:19 +0530</date><id>2f1e0ec71b0e50c59cb1f9c2af727b2b2235c173</id><msg>Appends the user's phone number to the body of the feedback ticket being created.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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>e0d6c7f3e669335a88532177a3017f67b1176cc0</commitId><timestamp>1769595651000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Appends the user's phone number to the body of the feedback ticket being created.
</comment><date>2026-01-28 15:50:51 +0530</date><id>e0d6c7f3e669335a88532177a3017f67b1176cc0</id><msg>Appends the user's phone number to the body of the feedback ticket being created.</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-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>409d446aec3f2a1707e242231d34771dcce86953</commitId><timestamp>1769605638000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Appends the user's phone number to the body of the feedback ticket being created.
</comment><date>2026-01-28 18:37:18 +0530</date><id>409d446aec3f2a1707e242231d34771dcce86953</id><msg>Appends the user's phone number to the body of the feedback ticket being created.</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/composeResources/values/strings.xml</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/drawable/feedback_sent.xml</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.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/sharefeedback/ShareFeedbackViewModel.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/SchoolDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</affectedPath><commitId>c09dc8cd4b4ec4271c4d5420c3357fb08e4ef992</commitId><timestamp>1769605642000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Appends the user's phone number to the body of the feedback ticket being created.
</comment><date>2026-01-28 18:37:22 +0530</date><id>c09dc8cd4b4ec4271c4d5420c3357fb08e4ef992</id><msg>Appends the user's phone number to the body of the feedback ticket being created.</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/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.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/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.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-app-compose/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.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/sharefeedback/FeedbackSubmittedViewModel.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/src/commonMain/composeResources/drawable/feedback_sent.xml</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/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>784c88546941121f6433fe6083af9d0c40e30659</commitId><timestamp>1769607456000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Display submission error on feedback form

Introduces an error message on the "Share Feedback" screen that is displayed to the user if the feedback submission fails. This is implemented by adding an `errorMessage` state to the `ShareFeedbackViewModel` and a corresponding `Text` component in the UI to show the message. Additionally, a new string resource for the error has been created.
</comment><date>2026-01-28 19:07:36 +0530</date><id>784c88546941121f6433fe6083af9d0c40e30659</id><msg>feat: Display submission error on feedback form</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.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/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>765037d6d5a5a721c6a9462fdda3029053f7e64f</commitId><timestamp>1769609128000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>added end-to-end test
</comment><date>2026-01-28 18:05:28 +0400</date><id>765037d6d5a5a721c6a9462fdda3029053f7e64f</id><msg>added end-to-end test</msg><path><editType>edit</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</affectedPath><commitId>659d0082b864fa67567d217a0c2555129f02e389</commitId><timestamp>1769614249000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Cleared share feedback screen from backstack

After successfully submitting feedback, the navigation logic is updated to clear the `ShareFeedback` screen from the back stack. This prevents the user from navigating back to the form they just submitted. Additionally, padding was added to the image on the `FeedbackSubmittedScreen`.
</comment><date>2026-01-28 21:00:49 +0530</date><id>659d0082b864fa67567d217a0c2555129f02e389</id><msg>feat: Cleared share feedback screen from backstack</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</affectedPath><commitId>d3625e0f8b038a9937ee33ef7f92c34c93f13db1</commitId><timestamp>1769616111000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>refactor
</comment><date>2026-01-28 21:31:51 +0530</date><id>d3625e0f8b038a9937ee33ef7f92c34c93f13db1</id><msg>refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><commitId>2828513646853240f8871234560cb1c7b51a6bb7</commitId><timestamp>1769665993000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment> Refactor contact validation error on feedback form
</comment><date>2026-01-29 11:23:13 +0530</date><id>2828513646853240f8871234560cb1c7b51a6bb7</id><msg>Refactor contact validation error on feedback form</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>gradle/wrapper/gradle-wrapper.properties</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-datalayer-repository/log/respect-server.2026-01-14.0.log</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>7ff74f04134b5fd2478c3e5cc7e3646e6d628d46</commitId><timestamp>1769674384000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment> Update Gradle and remove log files
</comment><date>2026-01-29 13:43:04 +0530</date><id>7ff74f04134b5fd2478c3e5cc7e3646e6d628d46</id><msg>Update Gradle and remove log files</msg><path><editType>delete</editType><file>respect-datalayer-repository/log/respect-server.2026-01-14.0.log</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>edit</editType><file>gradle/wrapper/gradle-wrapper.properties</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>b2537e62509dfa2cedcb0b938e04431a70b8f72e</commitId><timestamp>1769677857000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Configuration loading for Zammad credentials has been updated in `build.gradle.kts`, now sourcing the token and URL from a `zammad.properties` file or environment variables.
</comment><date>2026-01-29 14:40:57 +0530</date><id>b2537e62509dfa2cedcb0b938e04431a70b8f72e</id><msg>Configuration loading for Zammad credentials has been updated in `build.gradle.kts`, now sourcing the token and URL from a `zammad.properties` file or environment variables.</msg><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/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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>.maestro/flows/subflows/add_person_create_account.yaml</affectedPath><affectedPath>.maestro/flows/004_user_send_feedback_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/school_user_login_flow.yaml</affectedPath><commitId>915ab3c24000630e1706b5a0a8b4af87e68e0e59</commitId><timestamp>1769679989000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>added validations
</comment><date>2026-01-29 13:46:29 +0400</date><id>915ab3c24000630e1706b5a0a8b4af87e68e0e59</id><msg>added validations</msg><path><editType>add</editType><file>.maestro/flows/004_user_send_feedback_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/add_person_create_account.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/school_user_login_flow.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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/SchoolDataSourceRepository.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/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><commitId>76cd48a5efd336dc8c549ff95dde093f553d7dcc</commitId><timestamp>1769704111000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>refactor: Integrate FeedbackDataSource into SchoolDataSource

Extracted the `FeedBackDataSource` into the `SchoolDataSource` interface and its various implementations (`Http`, `Db`, `Repository`). This refactoring centralizes data source access.

Key changes include:
- Passing Zammad URL and token configurations from the `AppKoinModule` to `SchoolDataSourceHttp`.
- Updating `ShareFeedbackViewModel` to obtain the `feedBackDataSource` via the main `SchoolDataSource`.
- Removing the hardcoded Zammad URL from `FeedbackDataSourceHttp` and using the configured one instead.
- Hiding the bottom navigation on the "Share Feedback" screen.
</comment><date>2026-01-29 21:58:31 +0530</date><id>76cd48a5efd336dc8c549ff95dde093f553d7dcc</id><msg>refactor: Integrate FeedbackDataSource into SchoolDataSource</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-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.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/manageuser/sharefeedback/ShareFeedbackViewModel.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-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>aeea06f22157081cdd4b39d9b45681bc3482b0f4</commitId><timestamp>1769705189000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Handle feedback submission errors and hide navigation

- Checks the HTTP response status after attempting to create a feedback ticket.
- Displays a generic error message to the user if the ticket submission fails.
- On the feedback submission confirmation screen, the bottom navigation is now hidden.
- The `createTicket` function in the data source and view model now returns an `HttpResponse` to enable status checking.
</comment><date>2026-01-29 22:16:29 +0530</date><id>aeea06f22157081cdd4b39d9b45681bc3482b0f4</id><msg>Handle feedback submission errors and hide navigation</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncher.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncher.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncher.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherAndroid.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/launchers/WhatsAppLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCase.kt</affectedPath><commitId>741ff12b56f782bf6fa602ae19402ce5b24b026d</commitId><timestamp>1769706105000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Append "UseCase" to launcher class names

Renamed the `EmailLauncher`, `WebLauncher`, and `WhatsAppLauncher` classes and their corresponding Android implementations to `EmailLauncherUseCase`, `WebLauncherUseCase`, and `WhatsAppLauncherUseCase` respectively. This change makes their purpose as use cases clearer and aligns them with the project's naming conventions.

The `ShareFeedbackViewModel` and the Koin dependency injection module have been updated to reflect these new class names.
</comment><date>2026-01-29 22:31:45 +0530</date><id>741ff12b56f782bf6fa602ae19402ce5b24b026d</id><msg>Refactor: Append "UseCase" to launcher class names</msg><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncher.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncher.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCase.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/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncher.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/sharefeedback/FeedBackDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><commitId>f4de51a39e15ee38525f4984521f1ff869953108</commitId><timestamp>1769711106000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Removes the `FeedBackDataSource`, its HTTP implementation, and repository, along with their integration into the existing data source layers. The responsibility for feedback ticket creation has been moved from the data layer to the `ShareFeedbackViewModel`.

Additionally, Zammad API credentials (URL and token) are now configured through `buildConfigField` in the `respect-lib-shared` module, removing the previous hardcoded values and `respect-app-compose` build configurations.
</comment><date>2026-01-29 23:55:06 +0530</date><id>f4de51a39e15ee38525f4984521f1ff869953108</id><msg>Removes the `FeedBackDataSource`, its HTTP implementation, and repository, along with their integration into the existing data source layers. The responsibility for feedback ticket creation has been moved from the data layer to the `ShareFeedbackViewModel`.</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-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/sharefeedback/FeedBackDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.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/manageuser/sharefeedback/ShareFeedbackViewModel.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-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>d40c7cc0b87c46fff6d4993e6bd088461452db09</commitId><timestamp>1769712553000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Refactored feedback property names for clarity and consistency.

Renamed Zammad and Respect contact properties to use a `FEEDBACK_` prefix, improving clarity about their purpose. This change affects build configuration files (`build.gradle.kts`) by renaming build config fields and the property files from which they are loaded (e.g., `zammad.properties` to `feedback.properties`).

Specifically, the following properties were renamed:
- `ZAMMAD_URL` to `FEEDBACK_ZAMMADURL`
- `ZAMMAD_TOKEN` to `FEEDBACK_ZAMMADTOKEN`

Additionally, new properties for Respect's contact details were introduced with the same naming convention:
- `FEEDBACK_RESPECTPHONENUMBER`
- `FEEDBACK_RESPECTEMAILID`
</comment><date>2026-01-30 00:19:13 +0530</date><id>d40c7cc0b87c46fff6d4993e6bd088461452db09</id><msg>feat: Refactored feedback property names for clarity and consistency.</msg><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></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><commitId>6d249989f5de189a7a2a9efda5faa9581d947a09</commitId><timestamp>1769754663000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update build.gradle.kts
</comment><date>2026-01-30 12:01:03 +0530</date><id>6d249989f5de189a7a2a9efda5faa9581d947a09</id><msg>Update build.gradle.kts</msg><path><editType>edit</editType><file>respect-lib-shared/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>6114a11cce90d520c07570b8502128178db91c0d</commitId><timestamp>1769754866000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update AppKoinModule.kt
</comment><date>2026-01-30 12:04:26 +0530</date><id>6114a11cce90d520c07570b8502128178db91c0d</id><msg>Update AppKoinModule.kt</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/androidMain/kotlin/world/respect/shared/domain/feedback/GetFeedbackInfoUseCaseImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/CreateTicketUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCase.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/sharefeedback/FeedbackSubmittedScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/ZammadTicketResponse.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackTicket.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/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/model/FeedbackTicket.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/GetFeedbackInfoUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/feedback/CreateTicketUseCaseImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</affectedPath><commitId>a3eef313e4a16ce1ae3718a622c9691e3c799ecf</commitId><timestamp>1769766902000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Integrate Zammad for feedback submission and refactor configuration

Integrated the feedback submission feature with the Zammad ticketing system. When a user submits feedback, a ticket is now created in Zammad, and the resulting ticket ID is passed to the confirmation screen.

Key changes include:
- A new `CreateTicketUseCase` is introduced to handle the API call to Zammad.
- The `ShareFeedbackViewModel` now uses this use case to create a ticket and navigates to a success screen with the new ticket ID.
- Configuration properties for Zammad (URL, token) and contact details (phone, email) have been moved from the `respect-app-compose` module to the `respect-lib-shared` module. This centralizes feedback-related settings.
- The `EmailLauncherUseCase` and `WhatsAppLauncherUseCase` were updated to use the newly centralized contact information.
</comment><date>2026-01-30 15:25:02 +0530</date><id>a3eef313e4a16ce1ae3718a622c9691e3c799ecf</id><msg>feat: Integrate Zammad for feedback submission and refactor configuration</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCase.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/model/FeedbackTicket.kt</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>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/feedback/GetFeedbackInfoUseCaseImpl.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/CreateTicketUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/GetFeedbackInfoUseCase.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/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/ZammadTicketResponse.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackTicket.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/feedback/CreateTicketUseCaseImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</affectedPath><commitId>ebdf205e7743ca2e21c120d1984761739dd04ca5</commitId><timestamp>1769771208000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Display Zammad ticket ID on feedback submission screen

Adds the Zammad ticket ID to the "Feedback Submitted" screen, making it visible to the user for reference. This ID is displayed in a new `Text` element and tagged for testing purposes.
</comment><date>2026-01-30 16:36:48 +0530</date><id>ebdf205e7743ca2e21c120d1984761739dd04ca5</id><msg>feat: Display Zammad ticket ID on feedback submission screen</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>a2cb2fbb73001a7b5f887356164076ff6e989a18</commitId><timestamp>1769773017000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>removed feedback changes from 003
</comment><date>2026-01-30 15:36:57 +0400</date><id>a2cb2fbb73001a7b5f887356164076ff6e989a18</id><msg>removed feedback changes from 003</msg><path><editType>edit</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</affectedPath><commitId>5849e1aed1e8698fa63ba334ee223d849ef5301b</commitId><timestamp>1769774917000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Hide Zammad ticket ID on feedback submission screen

The Zammad ticket ID displayed on the feedback submitted screen is now hidden from the user by setting its color to transparent. This change is implemented for UI testing purposes while keeping the element accessible to test automation frameworks via its `testTag`.
</comment><date>2026-01-30 17:38:37 +0530</date><id>5849e1aed1e8698fa63ba334ee223d849ef5301b</id><msg>feat: Hide Zammad ticket ID on feedback submission screen</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><commitId>86f6745273eb22e1251f02daf1e266c0c5736737</commitId><timestamp>1769776840000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Remove redundant quotes in error message string
</comment><date>2026-01-30 18:10:40 +0530</date><id>86f6745273eb22e1251f02daf1e266c0c5736737</id><msg>Refactor: Remove redundant quotes in error message string</msg><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/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>8caa1048eab1633dd01cd31c8a8f104fcad63093</commitId><timestamp>1769777869000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Clear error message on submit

Clears the previous error message when the user clicks the submit button again.
</comment><date>2026-01-30 18:27:49 +0530</date><id>8caa1048eab1633dd01cd31c8a8f104fcad63093</id><msg>Refactor: Clear error message on submit</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/004_user_send_feedback_test.yaml</affectedPath><commitId>d0e2d7ec240fc7f1951cee7210d7150525be5ae9</commitId><timestamp>1769781347000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>removed feedback changes from 003
</comment><date>2026-01-30 17:55:47 +0400</date><id>d0e2d7ec240fc7f1951cee7210d7150525be5ae9</id><msg>removed feedback changes from 003</msg><path><editType>edit</editType><file>.maestro/flows/004_user_send_feedback_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/004_user_send_feedback_test.yaml</affectedPath><commitId>29fbd62eb54bba1d39d538910c8f8c50a9b0c97c</commitId><timestamp>1769781800000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>removed
</comment><date>2026-01-30 18:03:20 +0400</date><id>29fbd62eb54bba1d39d538910c8f8c50a9b0c97c</id><msg>removed</msg><path><editType>edit</editType><file>.maestro/flows/004_user_send_feedback_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><commitId>0f9f5b501a3a25ccdfa9febd0272e1f5201c195e</commitId><timestamp>1769784011000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Update feedback response string
</comment><date>2026-01-30 20:10:11 +0530</date><id>0f9f5b501a3a25ccdfa9febd0272e1f5201c195e</id><msg>feat: Update feedback response string</msg><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/004_user_send_feedback_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/school_admin_login_flow.yaml</affectedPath><commitId>754411a3fcb3d999a188224f65df0e41e8e66ba9</commitId><timestamp>1769784936000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated
</comment><date>2026-01-30 18:55:36 +0400</date><id>754411a3fcb3d999a188224f65df0e41e8e66ba9</id><msg>updated</msg><path><editType>edit</editType><file>.maestro/flows/subflows/school_admin_login_flow.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/004_user_send_feedback_test.yaml</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/log/respect-server.2026-01-14.0.log</affectedPath><commitId>354e0b785a540e804b184351474377766fe21e51</commitId><timestamp>1769788996000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>refactor: Removed unused log file and import.
.
</comment><date>2026-01-30 21:33:16 +0530</date><id>354e0b785a540e804b184351474377766fe21e51</id><msg>refactor: Removed unused log file and import.</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/log/respect-server.2026-01-14.0.log</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><commitId>e22305478068d670d68822d4c6e8d375bab70cdf</commitId><timestamp>1769843403000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Update feedback form strings for clarity
</comment><date>2026-01-31 12:40:03 +0530</date><id>e22305478068d670d68822d4c6e8d375bab70cdf</id><msg>feat: Update feedback form strings for clarity</msg><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/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</affectedPath><commitId>e855eabd17ca05860f6b5ff2cf2b67b2ceeb56d3</commitId><timestamp>1769844451000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Hide the user account icon on the "Share Feedback" and "Feedback Submitted" screens.
</comment><date>2026-01-31 12:57:31 +0530</date><id>e855eabd17ca05860f6b5ff2cf2b67b2ceeb56d3</id><msg>Hide the user account icon on the "Share Feedback" and "Feedback Submitted" screens.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/004_user_send_feedback_test.yaml</affectedPath><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>.maestro/flows/scripts/verifyZammadTicket.js</affectedPath><commitId>9084cca9336ae8ee8f51955f8fcd5d6ead04cfb3</commitId><timestamp>1769867489000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated API call
</comment><date>2026-01-31 17:51:29 +0400</date><id>9084cca9336ae8ee8f51955f8fcd5d6ead04cfb3</id><msg>updated API call</msg><path><editType>add</editType><file>.maestro/flows/scripts/verifyZammadTicket.js</file></path><path><editType>edit</editType><file>.gitignore</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</file></path><path><editType>edit</editType><file>.maestro/flows/004_user_send_feedback_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/004_user_send_feedback_test.yaml</affectedPath><commitId>b1b03b57aedeb7d35ddd5ad90270beedacc0eb9b</commitId><timestamp>1769877996000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated API call
</comment><date>2026-01-31 20:46:36 +0400</date><id>b1b03b57aedeb7d35ddd5ad90270beedacc0eb9b</id><msg>updated API call</msg><path><editType>edit</editType><file>.maestro/flows/004_user_send_feedback_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>317d4704bd268cec82ce1c8b7f8e7c267ab0b36e</commitId><timestamp>1769878627000</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-01-31 20:57:07 +0400</date><id>317d4704bd268cec82ce1c8b7f8e7c267ab0b36e</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>.maestro/flows/004_user_send_feedback_test.yaml</affectedPath><commitId>349b70c30db7eedf9f969ca33e2e06c9a0efde71</commitId><timestamp>1769880034000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated 004 test
</comment><date>2026-01-31 21:20:34 +0400</date><id>349b70c30db7eedf9f969ca33e2e06c9a0efde71</id><msg>updated 004 test</msg><path><editType>edit</editType><file>.maestro/flows/004_user_send_feedback_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><commitId>4a93ed2c98d5bd33258c90cc65f387b920e055ff</commitId><timestamp>1769962973000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>The `FeedbackCategory` enum has been refactored This change is reflected in the `ShareFeedbackScreen`

Additionally, Android-specific logging (`android.util.Log`) has been replaced with a common `print` statement in the `EmailLauncherUseCaseAndroid`, `WebLauncherUseCaseAndroid`, and `WhatsAppLauncherUseCaseAndroid` files.
</comment><date>2026-02-01 21:52:53 +0530</date><id>4a93ed2c98d5bd33258c90cc65f387b920e055ff</id><msg>The `FeedbackCategory` enum has been refactored This change is reflected in the `ShareFeedbackScreen`</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>855e013ba71c3822d5f76bb199e8fb24d378aad2</commitId><timestamp>1769963036000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>The `FeedbackCategory` enum has been refactored This change is reflected in the `ShareFeedbackScreen`
</comment><date>2026-02-01 21:53:56 +0530</date><id>855e013ba71c3822d5f76bb199e8fb24d378aad2</id><msg>The `FeedbackCategory` enum has been refactored This change is reflected in the `ShareFeedbackScreen`</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.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/feedback/FeedbackCategory.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackTicket.kt</affectedPath><commitId>403b774ff4f1b9cc79f18870da6719f0549820bf</commitId><timestamp>1769964674000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Cleaned up feedback submission code
</comment><date>2026-02-01 22:21:14 +0530</date><id>403b774ff4f1b9cc79f18870da6719f0549820bf</id><msg>Refactor: Cleaned up feedback submission code</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/feedback/FeedbackCategory.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackTicket.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>bdb14a81f1c90639d7515747ac671926e0b2055f</commitId><timestamp>1770011640000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Cleaned up feedback submission code
</comment><date>2026-02-02 11:24:00 +0530</date><id>bdb14a81f1c90639d7515747ac671926e0b2055f</id><msg>Refactor: Cleaned up feedback submission code</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/domain/feedback/FeedbackCategory.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>f8040ad5fb40a4f4708663b95c23300d73f5bf13</commitId><timestamp>1770019216000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>refactor: Improve Share Feedback screen code structure and accessibility

`FeedbackCategory` enum is simplified
 The `FeedbackItem` composable has been renamed to `QuickContactItem` for better clarity, as it represents quick contact methods.
</comment><date>2026-02-02 13:30:16 +0530</date><id>f8040ad5fb40a4f4708663b95c23300d73f5bf13</id><msg>refactor: Improve Share Feedback screen code structure and accessibility</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/004_user_send_feedback_test.yaml</affectedPath><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>.maestro/flows/scripts/verifyZammadTicket.js</affectedPath><commitId>5891a0f12ff1049d67065ec87b6e98f10e8262bf</commitId><timestamp>1770025661000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated properties file path
</comment><date>2026-02-02 13:47:41 +0400</date><id>5891a0f12ff1049d67065ec87b6e98f10e8262bf</id><msg>updated properties file path</msg><path><editType>edit</editType><file>.maestro/flows/scripts/verifyZammadTicket.js</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</file></path><path><editType>edit</editType><file>.maestro/flows/004_user_send_feedback_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>.maestro/flows/scripts/verifyZammadTicket.js</affectedPath><commitId>7655ee448f1f9f2445f2080b1adc20f3a84d51e6</commitId><timestamp>1770026876000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated properties file path
</comment><date>2026-02-02 14:07:56 +0400</date><id>7655ee448f1f9f2445f2080b1adc20f3a84d51e6</id><msg>updated properties file path</msg><path><editType>edit</editType><file>.maestro/flows/scripts/verifyZammadTicket.js</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>d13a8050ff36cbb93c2827a982baaa00fc74399a</commitId><timestamp>1770027265000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated
</comment><date>2026-02-02 14:14:25 +0400</date><id>d13a8050ff36cbb93c2827a982baaa00fc74399a</id><msg>updated</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><commitId>9986ef65b07678a6bc7c8d62432759ce8df4e30e</commitId><timestamp>1770027709000</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 file
</comment><date>2026-02-02 14:21:49 +0400</date><id>9986ef65b07678a6bc7c8d62432759ce8df4e30e</id><msg>updated maestro.sh file</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/log/respect-server.2026-02-01.0.log</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/log/respect-server.2026-01-29.0.log</affectedPath><affectedPath>respect-lib-shared/log/respect-server.2026-01-30.0.log</affectedPath><affectedPath>respect-datalayer-repository/log/respect-server.2026-01-30.0.log</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><affectedPath>respect-lib-shared/log/respect-server.2026-02-01.0.log</affectedPath><commitId>c7493171df92798b9878f58d42464ae7e5a2d273</commitId><timestamp>1770030819000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>chore: Add server logs to gitignore.
</comment><date>2026-02-02 16:43:39 +0530</date><id>c7493171df92798b9878f58d42464ae7e5a2d273</id><msg>chore: Add server logs to gitignore.</msg><path><editType>add</editType><file>respect-datalayer-repository/log/respect-server.2026-01-30.0.log</file></path><path><editType>add</editType><file>respect-lib-shared/log/respect-server.2026-01-29.0.log</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/log/respect-server.2026-01-30.0.log</file></path><path><editType>add</editType><file>respect-lib-shared/log/respect-server.2026-02-01.0.log</file></path><path><editType>add</editType><file>respect-datalayer-repository/log/respect-server.2026-02-01.0.log</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/log/respect-server.2026-02-01.0.log</affectedPath><affectedPath>respect-lib-shared/log/respect-server.2026-01-30.0.log</affectedPath><affectedPath>respect-lib-shared/log/respect-server.2026-01-29.0.log</affectedPath><affectedPath>respect-datalayer-repository/log/respect-server.2026-01-30.0.log</affectedPath><affectedPath>respect-lib-shared/log/respect-server.2026-02-01.0.log</affectedPath><commitId>e7192fbf75581cea38dd37065654ef5bd82ce622</commitId><timestamp>1770031029000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>chore: Add server logs to gitignore.
</comment><date>2026-02-02 16:47:09 +0530</date><id>e7192fbf75581cea38dd37065654ef5bd82ce622</id><msg>chore: Add server logs to gitignore.</msg><path><editType>delete</editType><file>respect-datalayer-repository/log/respect-server.2026-02-01.0.log</file></path><path><editType>delete</editType><file>respect-lib-shared/log/respect-server.2026-01-30.0.log</file></path><path><editType>delete</editType><file>respect-lib-shared/log/respect-server.2026-01-29.0.log</file></path><path><editType>delete</editType><file>respect-datalayer-repository/log/respect-server.2026-01-30.0.log</file></path><path><editType>delete</editType><file>respect-lib-shared/log/respect-server.2026-02-01.0.log</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/add_person_create_account.yaml</affectedPath><commitId>237f0ba51ef6e1a0f3275dc1abcaeef6dc90a7f3</commitId><timestamp>1770036570000</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 file
</comment><date>2026-02-02 16:49:30 +0400</date><id>237f0ba51ef6e1a0f3275dc1abcaeef6dc90a7f3</id><msg>updated maestro.sh file</msg><path><editType>edit</editType><file>.maestro/flows/subflows/add_person_create_account.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>.maestro/flows/scripts/verifyZammadTicket.js</affectedPath><commitId>b7c056400c60b78afd3f8111d33c8f10c84d74c4</commitId><timestamp>1770038470000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated case
</comment><date>2026-02-02 17:21:10 +0400</date><id>b7c056400c60b78afd3f8111d33c8f10c84d74c4</id><msg>updated case</msg><path><editType>edit</editType><file>.maestro/flows/scripts/verifyZammadTicket.js</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>49bab904229b75089fb7ba2029521e69d56453b7</commitId><timestamp>1770039051000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated url
</comment><date>2026-02-02 17:30:51 +0400</date><id>49bab904229b75089fb7ba2029521e69d56453b7</id><msg>updated url</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/scripts/verifyZammadTicket.js</affectedPath><commitId>7a9ee1538b38f910f1f12bb88efd5d77d422bce8</commitId><timestamp>1770040889000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>test cleanup
</comment><date>2026-02-02 18:01:29 +0400</date><id>7a9ee1538b38f910f1f12bb88efd5d77d422bce8</id><msg>test cleanup</msg><path><editType>edit</editType><file>.maestro/flows/scripts/verifyZammadTicket.js</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</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-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCaseAndroid.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/domain/launchers/EmailLauncherUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><commitId>d1818a9b0c5d5383004aa9d621e6a8caef66583c</commitId><timestamp>1770098488000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Consolidate email launching logic into LaunchSendEmailUseCase.

Removed the specific `EmailLauncherUseCase` and its Android implementation. The existing `LaunchSendEmailUseCase` has been updated to handle all email launching scenarios by making the `body` and `emailId` parameters optional.

This change consolidates redundant code, allowing a single use case to manage sending emails with or without a pre-filled recipient and body. ViewModels have been updated to use the unified `LaunchSendEmailUseCase`.
</comment><date>2026-02-03 11:31:28 +0530</date><id>d1818a9b0c5d5383004aa9d621e6a8caef66583c</id><msg>Refactor: Consolidate email launching logic into LaunchSendEmailUseCase.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendEmailAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCase.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-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/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</affectedPath><commitId>d7b438efa496d1f9d5fa09b2990f9230a302fb0f</commitId><timestamp>1770287058000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: using material theme
</comment><date>2026-02-05 15:54:18 +0530</date><id>d7b438efa496d1f9d5fa09b2990f9230a302fb0f</id><msg>feat: using material theme</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/README.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/006_user_signup_using_passkey_test_description.md</affectedPath><affectedPath>.maestro/flows/004_user_send_feedback_test.yaml</affectedPath><affectedPath>respect-test-end-to-end/test-description/006_002_user_send_feedback_test.md</affectedPath><affectedPath>.maestro/flows/006_002_user_send_feedback_test.yaml</affectedPath><affectedPath>respect-test-end-to-end/test-description/007_001_user_signup_using_passkey_test_description.md</affectedPath><commitId>6982b9b5345b93fedb75a913eb056a49e72b7674</commitId><timestamp>1771503783000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>test - updated test description
</comment><date>2026-02-19 16:23:03 +0400</date><id>6982b9b5345b93fedb75a913eb056a49e72b7674</id><msg>test - updated test description</msg><path><editType>edit</editType><file>respect-test-end-to-end/README.md</file></path><path><editType>add</editType><file>respect-test-end-to-end/test-description/006_002_user_send_feedback_test.md</file></path><path><editType>add</editType><file>.maestro/flows/006_002_user_send_feedback_test.yaml</file></path><path><editType>delete</editType><file>respect-test-end-to-end/test-description/006_user_signup_using_passkey_test_description.md</file></path><path><editType>delete</editType><file>.maestro/flows/004_user_send_feedback_test.yaml</file></path><path><editType>add</editType><file>respect-test-end-to-end/test-description/007_001_user_signup_using_passkey_test_description.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.kt</affectedPath><commitId>5e2515742c9f53c22a77484606cb7ca95d007c24</commitId><timestamp>1771580037000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update FeedbackCategory.kt
</comment><date>2026-02-20 15:03:57 +0530</date><id>5e2515742c9f53c22a77484606cb7ca95d007c24</id><msg>Update FeedbackCategory.kt</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.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><commitId>5a8fb4d83be8d2a2f8489cc4ee19ba23d734562c</commitId><timestamp>1783676454000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Remove
</comment><date>2026-07-10 15:10:54 +0530</date><id>5a8fb4d83be8d2a2f8489cc4ee19ba23d734562c</id><msg>Remove</msg><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-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.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-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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/accountlist/AccountListScreen.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/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCase.kt</affectedPath><commitId>a796d8ab55a5df5b0b225da8deb01be7bb163893</commitId><timestamp>1783922760000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Remove Zammad
</comment><date>2026-07-13 11:36:00 +0530</date><id>a796d8ab55a5df5b0b225da8deb01be7bb163893</id><msg>Remove Zammad</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCase.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>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.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/manageuser/sharefeedback/ShareFeedbackScreen.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/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.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/sharefeedback/ShareFeedbackViewModel.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/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/CreateTicketUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/GetFeedbackInfoUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/ZammadTicketResponse.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackTicket.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>97509c492864da4662d4bcb64fbbfcda0f020c63</commitId><timestamp>1783923200000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Remove Zammad
</comment><date>2026-07-13 11:43:20 +0530</date><id>97509c492864da4662d4bcb64fbbfcda0f020c63</id><msg>Remove Zammad</msg><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/GetFeedbackInfoUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/ZammadTicketResponse.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackTicket.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/feedback/CreateTicketUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><affectedPath>.gitignore</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/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><commitId>d98711800f348fc1690513759541a36a2d61d2bc</commitId><timestamp>1783923904000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Remove Zammad
</comment><date>2026-07-13 11:55:04 +0530</date><id>d98711800f348fc1690513759541a36a2d61d2bc</id><msg>Remove Zammad</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/build.gradle.kts</file></path><path><editType>edit</editType><file>.gitignore</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/test-description/006_002_user_send_feedback_test.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/007_001_user_signup_using_passkey_test_description.md</affectedPath><commitId>f6c964bebe10d61d6cace43d6cd910a817782def</commitId><timestamp>1783924225000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor
</comment><date>2026-07-13 12:00:25 +0530</date><id>f6c964bebe10d61d6cace43d6cd910a817782def</id><msg>Refactor</msg><path><editType>delete</editType><file>respect-test-end-to-end/test-description/006_002_user_send_feedback_test.md</file></path><path><editType>delete</editType><file>respect-test-end-to-end/test-description/007_001_user_signup_using_passkey_test_description.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/feedback/GetFeedbackInfoUseCaseImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/feedback/CreateTicketUseCaseImpl.kt</affectedPath><commitId>8c8cb741855106360e06c809a3885755c81afb79</commitId><timestamp>1783924589000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor
</comment><date>2026-07-13 12:06:29 +0530</date><id>8c8cb741855106360e06c809a3885755c81afb79</id><msg>Refactor</msg><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/feedback/GetFeedbackInfoUseCaseImpl.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/feedback/CreateTicketUseCaseImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/006_user_send_feedback_test.yaml</affectedPath><affectedPath>.maestro/flows/006_002_user_send_feedback_test.yaml</affectedPath><commitId>6920dea79eaff2307747eea0ce0b31e678185d0f</commitId><timestamp>1784019126000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Remove `006_002_user_send_feedback_test.yaml` and replace it with a refactored `006_user_send_feedback_test.yaml` Maestro flow.
</comment><date>2026-07-14 12:52:06 +0400</date><id>6920dea79eaff2307747eea0ce0b31e678185d0f</id><msg>Remove `006_002_user_send_feedback_test.yaml` and replace it with a refactored `006_user_send_feedback_test.yaml` Maestro flow.</msg><path><editType>add</editType><file>.maestro/flows/006_user_send_feedback_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/006_002_user_send_feedback_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/006_user_send_feedback_test.yaml</affectedPath><commitId>cfb9502d3e896693ceb9725973b27d9dd4924249</commitId><timestamp>1784020140000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update the `006_user_send_feedback_test.yaml` Maestro flow to change the visibility assertion from "UstadMobile/Respect" to "Welcome to discussions!" following the "Public forum" tap action.
</comment><date>2026-07-14 13:09:00 +0400</date><id>cfb9502d3e896693ceb9725973b27d9dd4924249</id><msg>Update the `006_user_send_feedback_test.yaml` Maestro flow to change the visibility assertion from "UstadMobile/Respect" to "Welcome to discussions!" following the "Public forum" tap action.</msg><path><editType>edit</editType><file>.maestro/flows/006_user_send_feedback_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js</affectedPath><affectedPath>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>7cb902c86e60d47fcaa495751b9661df266087f6</commitId><timestamp>1784027938000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>changes in `.maestro/video-downloader/ci-run-cypress.sh` and `.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js`.
</comment><date>2026-07-14 15:18:58 +0400</date><id>7cb902c86e60d47fcaa495751b9661df266087f6</id><msg>changes in `.maestro/video-downloader/ci-run-cypress.sh` and `.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js`.</msg><path><editType>edit</editType><file>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js</file></path><path><editType>edit</editType><file>.maestro/video-downloader/ci-run-cypress.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js</affectedPath><affectedPath>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>42c3990eae1df7450415bbe343a3b47a2fe86601</commitId><timestamp>1784030533000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Summarize the changes in `.maestro/video-downloader/ci-run-cypress.sh` and `.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js`.
</comment><date>2026-07-14 16:02:13 +0400</date><id>42c3990eae1df7450415bbe343a3b47a2fe86601</id><msg>Summarize the changes in `.maestro/video-downloader/ci-run-cypress.sh` and `.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js`.</msg><path><editType>edit</editType><file>.maestro/video-downloader/ci-run-cypress.sh</file></path><path><editType>edit</editType><file>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/scripts/verifyZammadTicket.js</affectedPath><commitId>470a8f86048bebaea6ad37e332a2643882fb3706</commitId><timestamp>1784030708000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Delete `.maestro/flows/scripts/verifyZammadTicket.js` and its associated logic for validating Zammad environment variables and verifying support ticket creation via the API.
</comment><date>2026-07-14 16:05:08 +0400</date><id>470a8f86048bebaea6ad37e332a2643882fb3706</id><msg>Delete `.maestro/flows/scripts/verifyZammadTicket.js` and its associated logic for validating Zammad environment variables and verifying support ticket creation via the API.</msg><path><editType>delete</editType><file>.maestro/flows/scripts/verifyZammadTicket.js</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/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/launchable-app.json</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/licenses/GetLicenseLabelUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumSubject.kt</affectedPath><commitId>d037651d1f686fda144c3a6195f9aaeda576ceb7</commitId><timestamp>1784626851000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>update learning unit detail screen initial commit
</comment><date>2026-07-21 15:10:51 +0530</date><id>d037651d1f686fda144c3a6195f9aaeda576ceb7</id><msg>update learning unit detail screen initial commit</msg><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json</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-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/licenses/GetLicenseLabelUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumSubject.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/launchable-app.json</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>93c593d02a95c94c261a59acb5c91fa96636226f</commitId><timestamp>1784627342000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Add highlight card functionality and related links in AppsDetailScreen
</comment><date>2026-07-21 15:19:02 +0530</date><id>93c593d02a95c94c261a59acb5c91fa96636226f</id><msg>Add highlight card functionality and related links in AppsDetailScreen</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-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><commitId>5a8fdb010ad03680c4f6559a5f0fb090c310e2cd</commitId><timestamp>1785068189000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Minor adjustments to learning unit detail screen.
</comment><date>2026-07-26 16:16:29 +0400</date><id>5a8fdb010ad03680c4f6559a5f0fb090c310e2cd</id><msg>Minor adjustments to learning unit detail screen.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.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/demoapp/DemoLaunchableAppManifestRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/ext/DemoAppUrlExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</affectedPath><commitId>f44a7ef464c4114d0da4cbd16d20c3c8b760c027</commitId><timestamp>1785070113000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>ADd demo app route.
</comment><date>2026-07-26 16:48:33 +0400</date><id>f44a7ef464c4114d0da4cbd16d20c3c8b760c027</id><msg>ADd demo app route.</msg><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/demoapp/DemoLaunchableAppCollectionsRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/ext/DemoAppUrlExt.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.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/demoapp/DemoLaunchableAppManifestRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/ext/DemoAppUrlExt.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/app_icon.png</affectedPath><commitId>59c3c6039b76e19c269ac371cd5c519b09bd851d</commitId><timestamp>1785073901000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Set icon on demo app
</comment><date>2026-07-26 17:51:41 +0400</date><id>59c3c6039b76e19c269ac371cd5c519b09bd851d</id><msg>Set icon on demo app</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/ext/DemoAppUrlExt.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/demoapp/app_icon.png</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLessonRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.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/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</affectedPath><commitId>5f3bd1a2f30109d8c34ff7f45df3bd4f1d320627</commitId><timestamp>1785075828000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add demo launchable app to respect-server.
</comment><date>2026-07-26 18:23:48 +0400</date><id>5f3bd1a2f30109d8c34ff7f45df3bd4f1d320627</id><msg>Add demo launchable app to respect-server.</msg><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLessonRoute.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-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/demoapp/DemoLaunchableAppCollectionsRoute.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-server/src/main/kotlin/world/respect/server/Application.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json</affectedPath><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-server/src/main/resources/http/respect-ds/case_valid/default-catalog.json</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/raw/license_label_json</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCaseAndroid.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/Lesson-manifest.json</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/drawable/ic_google_play_badge.png</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/LicenseLabelEntry.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/launchable-app.json</affectedPath><commitId>58255a68b86a0a9275cf71b7a69c3014e4d3fcc7</commitId><timestamp>1785130290000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Added Highlight card, Google play nad license label functionality and update AppsDetailScreen
</comment><date>2026-07-27 11:01:30 +0530</date><id>58255a68b86a0a9275cf71b7a69c3014e4d3fcc7</id><msg>Added Highlight card, Google play nad license label functionality and update AppsDetailScreen</msg><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/Lesson-manifest.json</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/LicenseLabelEntry.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/composeResources/values/strings.xml</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>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCase.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/androidMain/res/raw/license_label_json</file></path><path><editType>add</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCaseAndroid.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>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/default-catalog.json</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/composeResources/drawable/ic_google_play_badge.png</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-server/src/main/resources/http/respect-ds/case_valid/launchable-app.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLessonRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/credits.txt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/grade.jpg</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/books.png</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</affectedPath><commitId>6a2cbabf73b261ee3a265a50f5f97eb773fee32e</commitId><timestamp>1785132247000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add icons for collections in demo app.
</comment><date>2026-07-27 10:04:07 +0400</date><id>6a2cbabf73b261ee3a265a50f5f97eb773fee32e</id><msg>Add icons for collections in demo app.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLessonRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/demoapp/grade.jpg</file></path><path><editType>add</editType><file>respect-server/src/main/resources/demoapp/books.png</file></path><path><editType>add</editType><file>respect-server/src/main/resources/demoapp/credits.txt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><commitId>8a30a972b9513ccf12065e76d6f6cc345a79d2ef</commitId><timestamp>1785133145000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Added Highlight card, Google play nad license label functionality and update AppsDetailScreen
</comment><date>2026-07-27 11:49:05 +0530</date><id>8a30a972b9513ccf12065e76d6f6cc345a79d2ef</id><msg>Added Highlight card, Google play nad license label functionality and update AppsDetailScreen</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-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/rusticilaunch/TinCanXml.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/jvmTest/kotlin/world/respect/lib/xapi/rusticilaunch/TinCanXmlTest.kt</affectedPath><commitId>08f251ef76f44a7050f44c4828105ebf5ab90d60</commitId><timestamp>1785136862000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Pre-modularization.
</comment><date>2026-07-27 11:21:02 +0400</date><id>08f251ef76f44a7050f44c4828105ebf5ab90d60</id><msg>Pre-modularization.</msg><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/rusticilaunch/TinCanXml.kt</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/jvmTest/kotlin/world/respect/lib/xapi/rusticilaunch/TinCanXmlTest.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/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/icon.png</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/index.json</affectedPath><commitId>80699b573cad23b3d2139277402fb7cefa570c51</commitId><timestamp>1785136894000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>update lesson detail screen with license and subject tag
</comment><date>2026-07-27 12:51:34 +0530</date><id>80699b573cad23b3d2139277402fb7cefa570c51</id><msg>update lesson detail screen with license and subject tag</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.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/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/index.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>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/icon.png</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/apps/detail/AppsDetailScreen.kt</affectedPath><commitId>8db3c8bd46886e0b937ff8e037aac2589aa6bf16</commitId><timestamp>1785138118000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Update license label in AppsDetailScreen and modify string resource for clarity
</comment><date>2026-07-27 13:11:58 +0530</date><id>8db3c8bd46886e0b937ff8e037aac2589aa6bf16</id><msg>Update license label in AppsDetailScreen and modify string resource for clarity</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/apps/detail/AppsDetailScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/licenses/GetLicenseLabelUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><commitId>a81d67535308ffd0a3f0627b307d332459d58e9c</commitId><timestamp>1785141561000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>merge dev-learning-unit branch to update-learning-unit-detail-screen to use getLicenseLabelUseCase
</comment><date>2026-07-27 14:09:21 +0530</date><id>a81d67535308ffd0a3f0627b307d332459d58e9c</id><msg>merge dev-learning-unit branch to update-learning-unit-detail-screen to use getLicenseLabelUseCase</msg><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-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/licenses/GetLicenseLabelUseCase.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/apps/detail/AppsDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.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/composeResources/values/strings.xml</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><commitId>054b9391ccac065cb466b3e4139475f85571e303</commitId><timestamp>1785142645000</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-07-27 14:27:25 +0530</date><id>054b9391ccac065cb466b3e4139475f85571e303</id><msg>refactor</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.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/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/launchable-app.json</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><commitId>ac3317c8908ac07a72c25812c0e20d7d9748f145</commitId><timestamp>1785149507000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Enhance AppsDetailScreen with app description and update license button text for clarity
</comment><date>2026-07-27 16:21:47 +0530</date><id>ac3317c8908ac07a72c25812c0e20d7d9748f145</id><msg>Enhance AppsDetailScreen with app description and update license button text for clarity</msg><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/resources/http/respect-ds/case_valid/launchable-app.json</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.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/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><commitId>b896f8fc02e435f8b036a8d750a90ed9e7725a67</commitId><timestamp>1785149808000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Refactor LearningUnitDetail Screen
</comment><date>2026-07-27 16:26:48 +0530</date><id>b896f8fc02e435f8b036a8d750a90ed9e7725a67</id><msg>Refactor LearningUnitDetail Screen</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.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>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-test-resources/build.gradle.kts</affectedPath><affectedPath>respect-lib-primarykeygen/build.gradle.kts</affectedPath><affectedPath>app-android/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectImageSelectButton.kt</affectedPath><affectedPath>respect-lib-ihttp-core/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCaseDatabaseImpl.kt</affectedPath><affectedPath>respect-lib-ihttp-okhttp/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-http/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-ipc-client/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-lib-util/build.gradle.kts</affectedPath><affectedPath>respect-lib-dataloadstate/build.gradle.kts</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialCreationOptionsJsonUseCase.kt</affectedPath><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-xapi-ipc-server/build.gradle.kts</affectedPath><affectedPath>respect-lib-xxhash/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-core/build.gradle.kts</affectedPath><affectedPath>respect-lib-ihttp-iostreams/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/build.gradle.kts</affectedPath><affectedPath>respect-credentials/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/build.gradle.kts</affectedPath><affectedPath>respect-lib-serializers/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/proguard-rules.pro</affectedPath><affectedPath>app-android/proguard-rules.pro</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/RespectImageSelectButton.android.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/RespectApp.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/report/list/ReportListScreen.kt</affectedPath><affectedPath>respect-lib-test/build.gradle.kts</affectedPath><affectedPath>respect-lib-cache/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/app/AppIcon.android.kt</affectedPath><affectedPath>respect-server/build.gradle.kts</affectedPath><affectedPath>gradle/wrapper/gradle-wrapper.properties</affectedPath><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.kt</affectedPath><affectedPath>respect-datalayer/build.gradle.kts</affectedPath><affectedPath>respect-lib-ihttp-nanohttpd/build.gradle.kts</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AbstractAppActivity.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/androidMain/kotlin/world/respect/AppActivity.kt</affectedPath><affectedPath>respect-datalayer-repository/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AbstractAppActivity.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/MainActivity.kt</affectedPath><affectedPath>settings.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/LocalAppLocale.android.kt</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/RespectImageSelectButton.desktop.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/RespectApp.kt</affectedPath><affectedPath>respect-lib-opds-model/build.gradle.kts</affectedPath><affectedPath>gradle.properties</affectedPath><affectedPath>respect-lib-shared-se/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt</affectedPath><affectedPath>respect-lib-xapi-nanohttpd/build.gradle.kts</affectedPath><commitId>934467558254bcb1d49d234badef303bc70c02da</commitId><timestamp>1785161561000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update to AGP9 and Kotlin 2.4.10
</comment><date>2026-07-27 18:12:41 +0400</date><id>934467558254bcb1d49d234badef303bc70c02da</id><msg>Update to AGP9 and Kotlin 2.4.10</msg><path><editType>edit</editType><file>respect-lib-util/build.gradle.kts</file></path><path><editType>edit</editType><file>gradle/wrapper/gradle-wrapper.properties</file></path><path><editType>edit</editType><file>respect-lib-cache/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-dataloadstate/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectImageSelectButton.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/RespectImageSelectButton.android.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/build.gradle.kts</file></path><path><editType>add</editType><file>app-android/src/main/kotlin/world/respect/RespectApp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-primarykeygen/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>delete</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/app/components/LocalAppLocale.android.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-shared/build.gradle.kts</file></path><path><editType>add</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</file></path><path><editType>edit</editType><file>respect-lib-test/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-ihttp-core/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialCreationOptionsJsonUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/proguard-rules.pro</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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/build.gradle.kts</file></path><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>edit</editType><file>respect-credentials/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/RespectImageSelectButton.desktop.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-ihttp-iostreams/build.gradle.kts</file></path><path><editType>add</editType><file>app-android/src/main/kotlin/world/respect/MainActivity.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-ihttp-nanohttpd/build.gradle.kts</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>edit</editType><file>respect-lib-test-resources/build.gradle.kts</file></path><path><editType>delete</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/domain/report/query/RunReportUseCaseDatabaseImpl.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppActivity.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AbstractAppActivity.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</file></path><path><editType>edit</editType><file>respect-lib-ihttp-okhttp/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/app/AppIcon.android.kt</file></path><path><editType>edit</editType><file>respect-lib-shared-se/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-nanohttpd/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-serializers/build.gradle.kts</file></path><path><editType>add</editType><file>app-android/proguard-rules.pro</file></path><path><editType>edit</editType><file>respect-lib-xxhash/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer-repository/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-server/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer-db/build.gradle.kts</file></path><path><editType>add</editType><file>app-android/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-opds-model/build.gradle.kts</file></path><path><editType>edit</editType><file>settings.gradle.kts</file></path><path><editType>add</editType><file>app-android/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>app-android/src/main/kotlin/world/respect/AbstractAppActivity.kt</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/resources/http/respect-ds/case_valid/default-catalog.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/Lesson-manifest.json</affectedPath><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><commitId>269eaa043a99bfd64bcd9d19e936f93c45e459f1</commitId><timestamp>1785217886000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor AppsDetailScreen and ViewModel for improved clarity and functionality; update app titles and string resources
</comment><date>2026-07-28 11:21:26 +0530</date><id>269eaa043a99bfd64bcd9d19e936f93c45e459f1</id><msg>Refactor AppsDetailScreen and ViewModel for improved clarity and functionality; update app titles and string resources</msg><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/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/default-catalog.json</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/Lesson-manifest.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/002_002_browse_demo_app_test.yaml</affectedPath><affectedPath>.maestro/flows/002_001_browse_lessons_test.yaml</affectedPath><commitId>c5014adca1b80bcb5264408dae036543de7a908a</commitId><timestamp>1785223636000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Rename `002_browse_lessons_test.yaml` to `002_001_browse_lessons_test.yaml` and add a new Maestro test flow `002_002_browse_demo_app_test.yaml` to verify the "Demo Launchable App" functionality, including metadata verification and lesson navigation.
</comment><date>2026-07-28 11:27:16 +0400</date><id>c5014adca1b80bcb5264408dae036543de7a908a</id><msg>Rename `002_browse_lessons_test.yaml` to `002_001_browse_lessons_test.yaml` and add a new Maestro test flow `002_002_browse_demo_app_test.yaml` to verify the "Demo Launchable App" functionality, including metadata verification and lesson navigation.</msg><path><editType>add</editType><file>.maestro/flows/002_001_browse_lessons_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/002_002_browse_demo_app_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.gitignore</affectedPath><commitId>5cd915bfed64510e1b7314bdcca1ce950719d11c</commitId><timestamp>1785223688000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update `.gitignore` to ignore the `.maestro/flows/.maestro/screenshots` directory.
</comment><date>2026-07-28 11:28:08 +0400</date><id>5cd915bfed64510e1b7314bdcca1ce950719d11c</id><msg>Update `.gitignore` to ignore the `.maestro/flows/.maestro/screenshots` directory.</msg><path><editType>edit</editType><file>.gitignore</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/README.md</affectedPath><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><affectedPath>ci-run-e2e-tests.sh</affectedPath><commitId>50f42284321439808b17dea37136d8db2cf9510d</commitId><timestamp>1785224026000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update e2e testing script and doc to use new APK location.
</comment><date>2026-07-28 11:33:46 +0400</date><id>50f42284321439808b17dea37136d8db2cf9510d</id><msg>Update e2e testing script and doc to use new APK location.</msg><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path><path><editType>edit</editType><file>.maestro/README.md</file></path><path><editType>edit</editType><file>ci-run-e2e-tests.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectImageSelectButton.kt</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>73d45e9fa1c3d68e110c9417186f87388b6dccff</commitId><timestamp>1785225773000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove "app name" visible assertion.
</comment><date>2026-07-28 12:02:53 +0400</date><id>73d45e9fa1c3d68e110c9417186f87388b6dccff</id><msg>Remove "app name" visible assertion.</msg><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectImageSelectButton.kt</file></path><path><editType>edit</editType><file>gradle.properties</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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/Lesson-manifest.json</affectedPath><commitId>bae250ea65979db20bce91ae0981f856c07809cc</commitId><timestamp>1785226373000</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-07-28 13:42:53 +0530</date><id>bae250ea65979db20bce91ae0981f856c07809cc</id><msg>refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/Lesson-manifest.json</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_001_browse_lessons_test.yaml</affectedPath><commitId>859748e11a1c61957ff5daa2826771389481af33</commitId><timestamp>1785227913000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update assertion and tap action text from "Add App" to "Add to school apps" in `002_001_browse_lessons_test.yaml`.
</comment><date>2026-07-28 12:38:33 +0400</date><id>859748e11a1c61957ff5daa2826771389481af33</id><msg>Update assertion and tap action text from "Add App" to "Add to school apps" in `002_001_browse_lessons_test.yaml`.</msg><path><editType>edit</editType><file>.maestro/flows/002_001_browse_lessons_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/admin_add_app.yaml</affectedPath><commitId>b9f9d9f99dac5ab75741a02b4161b476fded5ae0</commitId><timestamp>1785228192000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update `admin_add_app.yaml` subflow to tap on "Add to school apps" instead of "Add App".
</comment><date>2026-07-28 12:43:12 +0400</date><id>b9f9d9f99dac5ab75741a02b4161b476fded5ae0</id><msg>Update `admin_add_app.yaml` subflow to tap on "Add to school apps" instead of "Add App".</msg><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_app.yaml</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/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCaseAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><commitId>85a95a045a8e4bd43c432322afb8aa38cf7ae3a1</commitId><timestamp>1785235590000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Merge app and learning unit detail updates.
</comment><date>2026-07-28 14:46:30 +0400</date><id>85a95a045a8e4bd43c432322afb8aa38cf7ae3a1</id><msg>Merge app and learning unit detail updates.</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-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/openexternallink/OpenExternalLinkUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/OpenExternalLinkUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/LaunchSendWhatsAppUseCase.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/LaunchSendEmailAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/LaunchSendWhatsAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendEmailUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCase.kt</affectedPath><commitId>616a6725b58b1d329e9b43fa2aa1a01c5bbfd745</commitId><timestamp>1785239747000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Tidyup share feedback.
</comment><date>2026-07-28 15:55:47 +0400</date><id>616a6725b58b1d329e9b43fa2aa1a01c5bbfd745</id><msg>Tidyup share feedback.</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/openexternallink/OpenExternalLinkUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/OpenExternalLinkUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/LaunchSendWhatsAppUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCase.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/sharelink/LaunchSendEmailUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/LaunchSendWhatsAppUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendEmailAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_002_browse_demo_app_test.yaml</affectedPath><commitId>6b99719b19c906fb87b5ead61368c4658c3f76a7</commitId><timestamp>1785240511000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix 002-002 browse to remove extra space that causes maestro test to fail. Remove assertion that relies on content of an external site.
</comment><date>2026-07-28 16:08:31 +0400</date><id>6b99719b19c906fb87b5ead61368c4658c3f76a7</id><msg>Fix 002-002 browse to remove extra space that causes maestro test to fail. Remove assertion that relies on content of an external site.</msg><path><editType>edit</editType><file>.maestro/flows/002_002_browse_demo_app_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_002_browse_demo_app_test.yaml</affectedPath><commitId>b28e900ed5810fdbb8b8b668f53e3a68d16090df</commitId><timestamp>1785242715000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix 002_002 remove incorrect assert visible and fix expected license info.
</comment><date>2026-07-28 16:45:15 +0400</date><id>b28e900ed5810fdbb8b8b668f53e3a68d16090df</id><msg>Fix 002_002 remove incorrect assert visible and fix expected license info.</msg><path><editType>edit</editType><file>.maestro/flows/002_002_browse_demo_app_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/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit></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 _class='hudson.plugins.git.util.Build'><buildNumber>42</buildNumber><marked><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#42</displayName><duration>195240</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #42</fullDisplayName><id>42</id><inProgress>false</inProgress><keepLog>false</keepLog><number>42</number><queueId>10760</queueId><result>SUCCESS</result><timestamp>1785222120665</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/42/</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 _class='hudson.plugins.git.util.Build'><buildNumber>41</buildNumber><marked><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#41</displayName><duration>196462</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #41</fullDisplayName><id>41</id><inProgress>false</inProgress><keepLog>false</keepLog><number>41</number><queueId>10733</queueId><result>SUCCESS</result><timestamp>1785135720610</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/41/</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 _class='hudson.plugins.git.util.Build'><buildNumber>40</buildNumber><marked><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#40</displayName><duration>197497</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #40</fullDisplayName><id>40</id><inProgress>false</inProgress><keepLog>false</keepLog><number>40</number><queueId>10715</queueId><result>SUCCESS</result><timestamp>1785049320610</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/40/</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 _class='hudson.plugins.git.util.Build'><buildNumber>39</buildNumber><marked><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#39</displayName><duration>197685</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #39</fullDisplayName><id>39</id><inProgress>false</inProgress><keepLog>false</keepLog><number>39</number><queueId>10697</queueId><result>SUCCESS</result><timestamp>1784962920610</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/39/</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/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectDataLoadHost.kt</affectedPath><commitId>d66af6b934f7177119ba8b2260bd8e9b86d91e9a</commitId><timestamp>1784882764000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add RespectDataLoadHost component.
</comment><date>2026-07-24 12:46:04 +0400</date><id>d66af6b934f7177119ba8b2260bd8e9b86d91e9a</id><msg>Add RespectDataLoadHost component.</msg><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectDataLoadHost.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectDataLoadHost.kt</affectedPath><commitId>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</commitId><timestamp>1784885405000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update RespectDataLoadHost and DataLoadExtension functions to handle not found scenarios.
</comment><date>2026-07-24 13:30:05 +0400</date><id>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</id><msg>Update RespectDataLoadHost and DataLoadExtension functions to handle not found scenarios.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectDataLoadHost.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 _class='hudson.plugins.git.util.Build'><buildNumber>38</buildNumber><marked><SHA1>cfa763b7279331cec84673a3423ca713203e7cb6</SHA1><branch><SHA1>cfa763b7279331cec84673a3423ca713203e7cb6</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>cfa763b7279331cec84673a3423ca713203e7cb6</SHA1><branch><SHA1>cfa763b7279331cec84673a3423ca713203e7cb6</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>cfa763b7279331cec84673a3423ca713203e7cb6</SHA1><branch><SHA1>cfa763b7279331cec84673a3423ca713203e7cb6</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#38</displayName><duration>199187</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #38</fullDisplayName><id>38</id><inProgress>false</inProgress><keepLog>false</keepLog><number>38</number><queueId>10679</queueId><result>SUCCESS</result><timestamp>1784876520610</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/38/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js</affectedPath><affectedPath>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>7b2d6625eaaed04d55771f949cffdf73f592e76e</commitId><timestamp>1784031006000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Improve the robustness and reliability of the Maestro video downloader script and Cypress extraction logic.
</comment><date>2026-07-14 16:10:06 +0400</date><id>7b2d6625eaaed04d55771f949cffdf73f592e76e</id><msg>Improve the robustness and reliability of the Maestro video downloader script and Cypress extraction logic.</msg><path><editType>edit</editType><file>.maestro/video-downloader/ci-run-cypress.sh</file></path><path><editType>edit</editType><file>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js</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><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>596c98835491f4252e7ad3cbc9ccd873c60c567e</commitId><timestamp>1784031285000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add `test` tag to Maestro flows and update `ci-run-maestro.sh` to exclude them from CI runs.
</comment><date>2026-07-14 16:14:45 +0400</date><id>596c98835491f4252e7ad3cbc9ccd873c60c567e</id><msg>Add `test` tag to Maestro flows and update `ci-run-maestro.sh` to exclude them from CI runs.</msg><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_users_using_qr_code_or_link_test.yaml</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</file></path><path><editType>edit</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/cypress.config.js</affectedPath><commitId>7ccafc8cfee40fe841b8760e130bb3c1318ca100</commitId><timestamp>1784033008000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add a logging task to the Cypress configuration for the video downloader.
</comment><date>2026-07-14 16:43:28 +0400</date><id>7ccafc8cfee40fe841b8760e130bb3c1318ca100</id><msg>Add a logging task to the Cypress configuration for the video downloader.</msg><path><editType>edit</editType><file>.maestro/video-downloader/cypress.config.js</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><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>93c8ccec19e6ce6b015e2b7088bf01ff96a83083</commitId><timestamp>1784034484000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Remove `test` tags from Maestro flows and update CI script to include all tests.
</comment><date>2026-07-14 17:08:04 +0400</date><id>93c8ccec19e6ce6b015e2b7088bf01ff96a83083</id><msg>Remove `test` tags from Maestro flows and update CI script to include all tests.</msg><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_users_using_qr_code_or_link_test.yaml</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</file></path><path><editType>edit</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/package.json</affectedPath><affectedPath>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>21c5a8affaeab4ae284f0253444697195d601497</commitId><timestamp>1784102409000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update `cypress` version to 15.18.1 and clean up comments in the CI script.
</comment><date>2026-07-15 12:00:09 +0400</date><id>21c5a8affaeab4ae284f0253444697195d601497</id><msg>Update `cypress` version to 15.18.1 and clean up comments in the CI script.</msg><path><editType>edit</editType><file>.maestro/video-downloader/ci-run-cypress.sh</file></path><path><editType>edit</editType><file>.maestro/video-downloader/package.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>5c35c4497aca0b829f2abcc18552777b96228bbd</commitId><timestamp>1784119814000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add debug logging for Node.js, npm, and environment path in `ci-run-cypress.sh`.
</comment><date>2026-07-15 16:50:14 +0400</date><id>5c35c4497aca0b829f2abcc18552777b96228bbd</id><msg>Add debug logging for Node.js, npm, and environment path in `ci-run-cypress.sh`.</msg><path><editType>edit</editType><file>.maestro/video-downloader/ci-run-cypress.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>4b9bc829eb844efb49c096ea75a5cbbb80184a4d</commitId><timestamp>1784136523000</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-cypress.sh` to use Node.js version 20.20.2 via NVM.
</comment><date>2026-07-15 21:28:43 +0400</date><id>4b9bc829eb844efb49c096ea75a5cbbb80184a4d</id><msg>Update `ci-run-cypress.sh` to use Node.js version 20.20.2 via NVM.</msg><path><editType>edit</editType><file>.maestro/video-downloader/ci-run-cypress.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>70fa0fa6824295bc4c8dc8b53987c08a1c1ca927</commitId><timestamp>1784138448000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Remove Node version management commands from the Cypress CI script.
</comment><date>2026-07-15 22:00:48 +0400</date><id>70fa0fa6824295bc4c8dc8b53987c08a1c1ca927</id><msg>Remove Node version management commands from the Cypress CI script.</msg><path><editType>edit</editType><file>.maestro/video-downloader/ci-run-cypress.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>da4c1bf3617c55aa899f59ba53cde274f2d2b18f</commitId><timestamp>1784183145000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Configure Node.js version 20.20.2 using NVM in the Cypress CI script.
</comment><date>2026-07-16 10:25:45 +0400</date><id>da4c1bf3617c55aa899f59ba53cde274f2d2b18f</id><msg>Configure Node.js version 20.20.2 using NVM in the Cypress CI script.</msg><path><editType>edit</editType><file>.maestro/video-downloader/ci-run-cypress.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js</affectedPath><commitId>4f9b5317048ff593436053170658a531554bd0f4</commitId><timestamp>1784202446000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update `extract-maestro-video-urls.cy.js` to include a pause during OTP polling and improve code comments.
</comment><date>2026-07-16 15:47:26 +0400</date><id>4f9b5317048ff593436053170658a531554bd0f4</id><msg>Update `extract-maestro-video-urls.cy.js` to include a pause during OTP polling and improve code comments.</msg><path><editType>edit</editType><file>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/LogTags.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><commitId>1737734685efcc2457b5612ab841e824e10625bc</commitId><timestamp>1784796984000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update PersonListViewModel: don't load from datasource when not needed on clicking an item in the list in browse mode.
</comment><date>2026-07-23 12:56:24 +0400</date><id>1737734685efcc2457b5612ab841e824e10625bc</id><msg>Update PersonListViewModel: don't load from datasource when not needed on clicking an item in the list in browse mode.</msg><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/LogTags.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/Constants.kt</affectedPath><commitId>ef2f4319013473b008b4df5d8be46bd243fdc1ac</commitId><timestamp>1784797367000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Removed unused Constants.kt (from Android Studio project template).
</comment><date>2026-07-23 13:02:47 +0400</date><id>ef2f4319013473b008b4df5d8be46bd243fdc1ac</id><msg>Removed unused Constants.kt (from Android Studio project template).</msg><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/Constants.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><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/ReadiumSubjectEntityDao.kt</affectedPath><affectedPath>respect-lib-opds-model/src/jvmTest/resources/lesson001.json</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectGenderExposedDropDownMenuField.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/db/opds/adapters/lesson001.json</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UstadExposedDropDownMenuField.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/adapters/ReadiumSubjectEntityAdapters.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/TestOpdsStorage.kt</affectedPath><affectedPath>respect-lib-opds-model/src/jvmTest/kotlin/world/respect/lib/opds/model/OpdsSerializerTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumSubject.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsGroupAdapter.kt</affectedPath><commitId>ec6a56271e863c32822010b12d4cb234e05d8eb8</commitId><timestamp>1784874064000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix Opds Subject storage to/from database.
</comment><date>2026-07-24 10:21:04 +0400</date><id>ec6a56271e863c32822010b12d4cb234e05d8eb8</id><msg>Fix Opds Subject storage to/from database.</msg><path><editType>edit</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-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsGroupAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsPublicationEntityAdapter.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumSubject.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectGenderExposedDropDownMenuField.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/TestOpdsStorage.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedAdapter.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/jvmTest/resources/world/respect/datalayer/db/opds/adapters/lesson001.json</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-lib-opds-model/src/jvmTest/resources/lesson001.json</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/opds/adapters/ReadiumSubjectEntityAdapters.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UstadExposedDropDownMenuField.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/ReadiumSubjectEntityDao.kt</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/jvmTest/kotlin/world/respect/lib/opds/model/OpdsSerializerTest.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 _class='hudson.plugins.git.util.Build'><buildNumber>37</buildNumber><marked><SHA1>cb6afd6a1d76eb2c1a8fc2a7db0ba5573eaeb260</SHA1><branch><SHA1>cb6afd6a1d76eb2c1a8fc2a7db0ba5573eaeb260</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>cb6afd6a1d76eb2c1a8fc2a7db0ba5573eaeb260</SHA1><branch><SHA1>cb6afd6a1d76eb2c1a8fc2a7db0ba5573eaeb260</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>cb6afd6a1d76eb2c1a8fc2a7db0ba5573eaeb260</SHA1><branch><SHA1>cb6afd6a1d76eb2c1a8fc2a7db0ba5573eaeb260</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#37</displayName><duration>194054</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #37</fullDisplayName><id>37</id><inProgress>false</inProgress><keepLog>false</keepLog><number>37</number><queueId>10657</queueId><result>SUCCESS</result><timestamp>1784790120610</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/37/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/scripts/school_init.js</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/teardown.yaml</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>respect-lib-opds-model/build.gradle.kts</affectedPath><affectedPath>gradle.properties</affectedPath><affectedPath>.maestro/README.md</affectedPath><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/scripts/teardown.js</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>README_ADD_YOUR_APP.md</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCaseClient.kt</affectedPath><commitId>64127779cc82e240cb749968595f32363e65c11e</commitId><timestamp>1784478624000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Updates for improved local on-prem testing

Fix ci-run-maestro to run shutdowns properly (change to get database copies had broken this)

Improve e2e artifact uploader to wait for connectivity (avoid potential fail when airplane mode was on and connectivity is not yet ready)

Improve ci-run-maestro scripts to allow for extra args/tags
</comment><date>2026-07-19 20:30:24 +0400</date><id>64127779cc82e240cb749968595f32363e65c11e</id><msg>Updates for improved local on-prem testing</msg><path><editType>edit</editType><file>respect-lib-opds-model/build.gradle.kts</file></path><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path><path><editType>edit</editType><file>.maestro/README.md</file></path><path><editType>edit</editType><file>gradle.properties</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/scripts/school_init.js</file></path><path><editType>edit</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/scripts/teardown.js</file></path><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/teardown.yaml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCaseClient.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>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>respect-lib-xapi-nanohttpd/build.gradle.kts</affectedPath><commitId>4bf198b5b4957b58d0f8ba6e597f88daf76c4067</commitId><timestamp>1784553628000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Maestro device offline reproduction with additional logging.
</comment><date>2026-07-20 17:20:28 +0400</date><id>4bf198b5b4957b58d0f8ba6e597f88daf76c4067</id><msg>Maestro device offline reproduction with additional logging.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-nanohttpd/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt</file></path><path><editType>edit</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>9ed993bc3a371f9ea9d89f459a14fbe56ea6f9c3</commitId><timestamp>1784627738000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove extra character in wrong place in ci-run-maestro.sh script.
</comment><date>2026-07-21 13:55:38 +0400</date><id>9ed993bc3a371f9ea9d89f459a14fbe56ea6f9c3</id><msg>Remove extra character in wrong place in ci-run-maestro.sh script.</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>ci-run-test-server.sh</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/AppConfigExt.kt</affectedPath><commitId>bf151ed7ab83bb26b5e5459e195a239c7f2c3b22</commitId><timestamp>1784663485000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update version of TestServerController.
</comment><date>2026-07-21 23:51:25 +0400</date><id>bf151ed7ab83bb26b5e5459e195a239c7f2c3b22</id><msg>Update version of TestServerController.</msg><path><editType>edit</editType><file>ci-run-test-server.sh</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/AppConfigExt.kt</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/README.md</affectedPath><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>ci-run-e2e-tests.sh</affectedPath><affectedPath>ci-run-test-server.sh</affectedPath><commitId>a73780ed5a127e5a62b391ebdbefc3145f29f2e3</commitId><timestamp>1784709847000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Rename ci-run-maestro script to ci-run-e2e-tests.sh

Update to latest testserver controller
Tidy up all e2e output into single build/ci-e2e directory.
</comment><date>2026-07-22 12:44:07 +0400</date><id>a73780ed5a127e5a62b391ebdbefc3145f29f2e3</id><msg>Rename ci-run-maestro script to ci-run-e2e-tests.sh</msg><path><editType>add</editType><file>ci-run-e2e-tests.sh</file></path><path><editType>edit</editType><file>.maestro/README.md</file></path><path><editType>delete</editType><file>ci-run-maestro.sh</file></path><path><editType>edit</editType><file>ci-run-test-server.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/e2e_artifact_upload.yaml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/testing/SendDbToServerScreen.kt</affectedPath><commitId>5d66aa3c0cac9af39086085837fe255c5fc4cd7d</commitId><timestamp>1784722521000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update SendDbToServerScreen and e2e_artifact_upload to avoid artifact upload failure when no db created yet blocking server shutdown.
</comment><date>2026-07-22 16:15:21 +0400</date><id>5d66aa3c0cac9af39086085837fe255c5fc4cd7d</id><msg>Update SendDbToServerScreen and e2e_artifact_upload to avoid artifact upload failure when no db created yet blocking server shutdown.</msg><path><editType>edit</editType><file>.maestro/flows/subflows/e2e_artifact_upload.yaml</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/testing/SendDbToServerScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><commitId>1eaedfd76f545707878e38ec564d7cde54044898</commitId><timestamp>1784724318000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix Application.kt to create required data directory
</comment><date>2026-07-22 16:45:18 +0400</date><id>1eaedfd76f545707878e38ec564d7cde54044898</id><msg>Fix Application.kt to create required data directory</msg><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/Application.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticatePasswordUseCaseDbImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCaseClient.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/login/LoginViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/exception/ExceptionWithUiText.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/throwable/ExceptionWithHttpStatusCode.kt</affectedPath><commitId>cb6afd6a1d76eb2c1a8fc2a7db0ba5573eaeb260</commitId><timestamp>1784732644000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update login to use auto-retry and show appropriate error messages.
</comment><date>2026-07-22 19:04:04 +0400</date><id>cb6afd6a1d76eb2c1a8fc2a7db0ba5573eaeb260</id><msg>Update login to use auto-retry and show appropriate error messages.</msg><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-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/util/exception/ExceptionWithUiText.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/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticatePasswordUseCaseDbImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/throwable/ExceptionWithHttpStatusCode.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.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 _class='hudson.plugins.git.util.Build'><buildNumber>36</buildNumber><marked><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.33.zip</displayPath><fileName>respect-cli-1.0.33.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.33.zip</displayPath><fileName>respect-server-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.33.zip</displayPath><fileName>respect-server-shadow-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.33.zip</relativePath></artifact><building>false</building><displayName>#36</displayName><duration>188967</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #36</fullDisplayName><id>36</id><inProgress>false</inProgress><keepLog>false</keepLog><number>36</number><queueId>10625</queueId><result>SUCCESS</result><timestamp>1784703720609</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/36/</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 _class='hudson.plugins.git.util.Build'><buildNumber>35</buildNumber><marked><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.33.zip</displayPath><fileName>respect-cli-1.0.33.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.33.zip</displayPath><fileName>respect-server-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.33.zip</displayPath><fileName>respect-server-shadow-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.33.zip</relativePath></artifact><building>false</building><displayName>#35</displayName><duration>193574</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #35</fullDisplayName><id>35</id><inProgress>false</inProgress><keepLog>false</keepLog><number>35</number><queueId>10591</queueId><result>SUCCESS</result><timestamp>1784617320624</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/35/</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 _class='hudson.plugins.git.util.Build'><buildNumber>34</buildNumber><marked><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.33.zip</displayPath><fileName>respect-cli-1.0.33.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.33.zip</displayPath><fileName>respect-server-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.33.zip</displayPath><fileName>respect-server-shadow-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.33.zip</relativePath></artifact><building>false</building><displayName>#34</displayName><duration>159435</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #34</fullDisplayName><id>34</id><inProgress>false</inProgress><keepLog>false</keepLog><number>34</number><queueId>10552</queueId><result>SUCCESS</result><timestamp>1784530920405</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/34/</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 _class='hudson.plugins.git.util.Build'><buildNumber>33</buildNumber><marked><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.33.zip</displayPath><fileName>respect-cli-1.0.33.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.33.zip</displayPath><fileName>respect-server-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.33.zip</displayPath><fileName>respect-server-shadow-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.33.zip</relativePath></artifact><building>false</building><displayName>#33</displayName><duration>198413</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #33</fullDisplayName><id>33</id><inProgress>false</inProgress><keepLog>false</keepLog><number>33</number><queueId>10528</queueId><result>SUCCESS</result><timestamp>1784444520405</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/33/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD</affectedPath><commitId>86b15234fb65922f53a1d0803ebc3163ae4228e4</commitId><timestamp>1784383655000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update instructions on adding an app to the default catalog.
</comment><date>2026-07-18 18:07:35 +0400</date><id>86b15234fb65922f53a1d0803ebc3163ae4228e4</id><msg>Update instructions on adding an app to the default catalog.</msg><path><editType>edit</editType><file>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.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 _class='hudson.plugins.git.util.Build'><buildNumber>32</buildNumber><marked><SHA1>ea0af78aa264bcb7e9850726fbaec3ca4c39aefc</SHA1><branch><SHA1>ea0af78aa264bcb7e9850726fbaec3ca4c39aefc</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>ea0af78aa264bcb7e9850726fbaec3ca4c39aefc</SHA1><branch><SHA1>ea0af78aa264bcb7e9850726fbaec3ca4c39aefc</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>ea0af78aa264bcb7e9850726fbaec3ca4c39aefc</SHA1><branch><SHA1>ea0af78aa264bcb7e9850726fbaec3ca4c39aefc</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.33.zip</displayPath><fileName>respect-cli-1.0.33.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.33.zip</displayPath><fileName>respect-server-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.33.zip</displayPath><fileName>respect-server-shadow-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.33.zip</relativePath></artifact><building>false</building><displayName>#32</displayName><duration>197000</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #32</fullDisplayName><id>32</id><inProgress>false</inProgress><keepLog>false</keepLog><number>32</number><queueId>10506</queueId><result>SUCCESS</result><timestamp>1784358120406</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/32/</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 _class='hudson.plugins.git.util.Build'><buildNumber>31</buildNumber><marked><SHA1>ea0af78aa264bcb7e9850726fbaec3ca4c39aefc</SHA1><branch><SHA1>ea0af78aa264bcb7e9850726fbaec3ca4c39aefc</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>ea0af78aa264bcb7e9850726fbaec3ca4c39aefc</SHA1><branch><SHA1>ea0af78aa264bcb7e9850726fbaec3ca4c39aefc</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>ea0af78aa264bcb7e9850726fbaec3ca4c39aefc</SHA1><branch><SHA1>ea0af78aa264bcb7e9850726fbaec3ca4c39aefc</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.33.zip</displayPath><fileName>respect-cli-1.0.33.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.33.zip</displayPath><fileName>respect-server-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.33.zip</displayPath><fileName>respect-server-shadow-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.33.zip</relativePath></artifact><building>false</building><displayName>#31</displayName><duration>198462</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #31</fullDisplayName><id>31</id><inProgress>false</inProgress><keepLog>false</keepLog><number>31</number><queueId>10481</queueId><result>SUCCESS</result><timestamp>1784271720670</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/31/</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.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>31</buildNumber><marked><SHA1>ea0af78aa264bcb7e9850726fbaec3ca4c39aefc</SHA1><branch><SHA1>ea0af78aa264bcb7e9850726fbaec3ca4c39aefc</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>ea0af78aa264bcb7e9850726fbaec3ca4c39aefc</SHA1><branch><SHA1>ea0af78aa264bcb7e9850726fbaec3ca4c39aefc</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>ea0af78aa264bcb7e9850726fbaec3ca4c39aefc</SHA1><branch><SHA1>ea0af78aa264bcb7e9850726fbaec3ca4c39aefc</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.33.zip</displayPath><fileName>respect-cli-1.0.33.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.33.zip</displayPath><fileName>respect-server-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.33.zip</displayPath><fileName>respect-server-shadow-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.33.zip</relativePath></artifact><building>false</building><displayName>#31</displayName><duration>198462</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #31</fullDisplayName><id>31</id><inProgress>false</inProgress><keepLog>false</keepLog><number>31</number><queueId>10481</queueId><result>SUCCESS</result><timestamp>1784271720670</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/31/</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.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 _class='hudson.plugins.git.util.Build'><buildNumber>51</buildNumber><marked><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><branch><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><branch><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><branch><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.35.zip</displayPath><fileName>respect-cli-1.0.35.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.35.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.35.zip</displayPath><fileName>respect-server-1.0.35.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.35.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.35.zip</displayPath><fileName>respect-server-shadow-1.0.35.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.35.zip</relativePath></artifact><building>false</building><displayName>#51</displayName><duration>156892</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #51</fullDisplayName><id>51</id><inProgress>false</inProgress><keepLog>false</keepLog><number>51</number><queueId>10979</queueId><result>SUCCESS</result><timestamp>1785914610157</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/51/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_ADD_YOUR_APP.md</affectedPath><affectedPath>respect-lib-opds-model/README_LAUNCHABLE_APP.md</affectedPath><commitId>b14d70228ade3d0a0282bced3d341c9b8a984f93</commitId><timestamp>1785914385000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Make terminology consistent: use collection instead of catalog.
</comment><date>2026-08-05 11:19:45 +0400</date><id>b14d70228ade3d0a0282bced3d341c9b8a984f93</id><msg>Make terminology consistent: use collection instead of catalog.</msg><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path><path><editType>edit</editType><file>respect-lib-opds-model/README_LAUNCHABLE_APP.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit></lastBuild><lastCompletedBuild _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 _class='hudson.plugins.git.util.Build'><buildNumber>51</buildNumber><marked><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><branch><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><branch><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><branch><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.35.zip</displayPath><fileName>respect-cli-1.0.35.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.35.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.35.zip</displayPath><fileName>respect-server-1.0.35.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.35.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.35.zip</displayPath><fileName>respect-server-shadow-1.0.35.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.35.zip</relativePath></artifact><building>false</building><displayName>#51</displayName><duration>156892</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #51</fullDisplayName><id>51</id><inProgress>false</inProgress><keepLog>false</keepLog><number>51</number><queueId>10979</queueId><result>SUCCESS</result><timestamp>1785914610157</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/51/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_ADD_YOUR_APP.md</affectedPath><affectedPath>respect-lib-opds-model/README_LAUNCHABLE_APP.md</affectedPath><commitId>b14d70228ade3d0a0282bced3d341c9b8a984f93</commitId><timestamp>1785914385000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Make terminology consistent: use collection instead of catalog.
</comment><date>2026-08-05 11:19:45 +0400</date><id>b14d70228ade3d0a0282bced3d341c9b8a984f93</id><msg>Make terminology consistent: use collection instead of catalog.</msg><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path><path><editType>edit</editType><file>respect-lib-opds-model/README_LAUNCHABLE_APP.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit></lastCompletedBuild><lastStableBuild _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 _class='hudson.plugins.git.util.Build'><buildNumber>51</buildNumber><marked><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><branch><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><branch><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><branch><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.35.zip</displayPath><fileName>respect-cli-1.0.35.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.35.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.35.zip</displayPath><fileName>respect-server-1.0.35.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.35.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.35.zip</displayPath><fileName>respect-server-shadow-1.0.35.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.35.zip</relativePath></artifact><building>false</building><displayName>#51</displayName><duration>156892</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #51</fullDisplayName><id>51</id><inProgress>false</inProgress><keepLog>false</keepLog><number>51</number><queueId>10979</queueId><result>SUCCESS</result><timestamp>1785914610157</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/51/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_ADD_YOUR_APP.md</affectedPath><affectedPath>respect-lib-opds-model/README_LAUNCHABLE_APP.md</affectedPath><commitId>b14d70228ade3d0a0282bced3d341c9b8a984f93</commitId><timestamp>1785914385000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Make terminology consistent: use collection instead of catalog.
</comment><date>2026-08-05 11:19:45 +0400</date><id>b14d70228ade3d0a0282bced3d341c9b8a984f93</id><msg>Make terminology consistent: use collection instead of catalog.</msg><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path><path><editType>edit</editType><file>respect-lib-opds-model/README_LAUNCHABLE_APP.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit></lastStableBuild><lastSuccessfulBuild _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 _class='hudson.plugins.git.util.Build'><buildNumber>51</buildNumber><marked><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><branch><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><branch><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><branch><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.35.zip</displayPath><fileName>respect-cli-1.0.35.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.35.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.35.zip</displayPath><fileName>respect-server-1.0.35.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.35.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.35.zip</displayPath><fileName>respect-server-shadow-1.0.35.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.35.zip</relativePath></artifact><building>false</building><displayName>#51</displayName><duration>156892</duration><estimatedDuration>160413</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #51</fullDisplayName><id>51</id><inProgress>false</inProgress><keepLog>false</keepLog><number>51</number><queueId>10979</queueId><result>SUCCESS</result><timestamp>1785914610157</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary-MavenPublish/51/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_ADD_YOUR_APP.md</affectedPath><affectedPath>respect-lib-opds-model/README_LAUNCHABLE_APP.md</affectedPath><commitId>b14d70228ade3d0a0282bced3d341c9b8a984f93</commitId><timestamp>1785914385000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Make terminology consistent: use collection instead of catalog.
</comment><date>2026-08-05 11:19:45 +0400</date><id>b14d70228ade3d0a0282bced3d341c9b8a984f93</id><msg>Make terminology consistent: use collection instead of catalog.</msg><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path><path><editType>edit</editType><file>respect-lib-opds-model/README_LAUNCHABLE_APP.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit></lastSuccessfulBuild><nextBuildNumber>52</nextBuildNumber><property _class='jenkins.model.BuildDiscarderProperty'></property><property _class='com.coravy.hudson.plugins.github.GithubProjectProperty'></property><property _class='hudson.plugins.throttleconcurrents.ThrottleJobProperty'></property><property _class='org.jenkinsci.plugins.envinject.EnvInjectJobProperty'></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>