<freeStyleBuild _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesorigincreate-manage-assignments _class='hudson.plugins.git.util.Build'><buildNumber>32</buildNumber><marked><SHA1>9f70d14aba84eadc4311a87fbe91321e9eb58250</SHA1><branch><SHA1>9f70d14aba84eadc4311a87fbe91321e9eb58250</SHA1><name>refs/remotes/origin/create-manage-assignments</name></branch></marked><revision><SHA1>9f70d14aba84eadc4311a87fbe91321e9eb58250</SHA1><branch><SHA1>9f70d14aba84eadc4311a87fbe91321e9eb58250</SHA1><name>refs/remotes/origin/create-manage-assignments</name></branch></revision></refsremotesorigincreate-manage-assignments></buildsByBranchName><lastBuiltRevision><SHA1>9f70d14aba84eadc4311a87fbe91321e9eb58250</SHA1><branch><SHA1>9f70d14aba84eadc4311a87fbe91321e9eb58250</SHA1><name>refs/remotes/origin/create-manage-assignments</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'><artifactsUrl>https://devserver3.ustadmobile.com/jenkins/view/all/job/create-manage-assignments/lastBuild/artifact</artifactsUrl><changesUrl>https://devserver3.ustadmobile.com/jenkins/view/all/job/create-manage-assignments/changes</changesUrl><displayUrl>https://devserver3.ustadmobile.com/jenkins/view/all/job/create-manage-assignments/lastBuild/</displayUrl><testsUrl>https://devserver3.ustadmobile.com/jenkins/view/all/job/create-manage-assignments/lastBuild/testReport</testsUrl></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>respect-app-compose-debug.aab</displayPath><fileName>respect-app-compose-debug.aab</fileName><relativePath>respect-app-compose/build/outputs/bundle/debug/respect-app-compose-debug.aab</relativePath></artifact><artifact><displayPath>respect-app-compose-release.aab</displayPath><fileName>respect-app-compose-release.aab</fileName><relativePath>respect-app-compose/build/outputs/bundle/release/respect-app-compose-release.aab</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli.zip</displayPath><fileName>respect-cli.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.0.zip</displayPath><fileName>respect-server-1.0.0.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.0.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.0.zip</displayPath><fileName>respect-server-shadow-1.0.0.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.0.zip</relativePath></artifact><building>false</building><displayName>#32</displayName><duration>189056</duration><estimatedDuration>189344</estimatedDuration><fullDisplayName>create-manage-assignments #32</fullDisplayName><id>32</id><inProgress>false</inProgress><keepLog>false</keepLog><number>32</number><queueId>8580</queueId><result>SUCCESS</result><timestamp>1779316560993</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/create-manage-assignments/32/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CODING_GUIDELINES.md</affectedPath><commitId>07731c383a17fb4a0b24db0e760868b6e3acd65d</commitId><timestamp>1779185716000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Add guideline on understanding code before committing

Added guideline about understanding and explaining code before committing.
</comment><date>2026-05-19 14:15:16 +0400</date><id>07731c383a17fb4a0b24db0e760868b6e3acd65d</id><msg>Add guideline on understanding code before committing</msg><path><editType>edit</editType><file>CODING_GUIDELINES.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CODING_GUIDELINES.md</affectedPath><commitId>18b1fed572b7f8d297d29d9835b62ce9433d97f7</commitId><timestamp>1779186074000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Clarify variable usage in coding guidelines

Added guideline to avoid using two variables for the same purpose.
</comment><date>2026-05-19 14:21:14 +0400</date><id>18b1fed572b7f8d297d29d9835b62ce9433d97f7</id><msg>Clarify variable usage in coding guidelines</msg><path><editType>edit</editType><file>CODING_GUIDELINES.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>AGENTS.md</affectedPath><commitId>5faf3ac280de655c20c419f87c90a788297e0488</commitId><timestamp>1779190932000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update AGENTS.md to refer to CODING_GUIDELINES.md
</comment><date>2026-05-19 15:42:12 +0400</date><id>5faf3ac280de655c20c419f87c90a788297e0488</id><msg>Update AGENTS.md to refer to CODING_GUIDELINES.md</msg><path><editType>edit</editType><file>AGENTS.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/AssignmentResultExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><commitId>ab0b104794b6ed600926a6401b05c2145eaf589b</commitId><timestamp>1779256559000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>clean up AssignmentDetail,Edit screens and viewmodels
</comment><date>2026-05-20 11:25:59 +0530</date><id>ab0b104794b6ed600926a6401b05c2145eaf589b</id><msg>clean up AssignmentDetail,Edit screens and viewmodels</msg><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/AssignmentResultExt.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/admin_add_new_teacher_to_class.yaml</affectedPath><commitId>d35ef225c00a65c9e306ed535860bf32d6ee3f62</commitId><timestamp>1779257674000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Remove role selection from admin add teacher subflow.
</comment><date>2026-05-20 10:14:34 +0400</date><id>d35ef225c00a65c9e306ed535860bf32d6ee3f62</id><msg>Remove role selection from admin add teacher subflow.</msg><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_new_teacher_to_class.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAssignmentConstants.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAssignmentSummaryEntityRow.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><commitId>38a8e9c183bc703790887dd24b24959f923d2a4f</commitId><timestamp>1779262132000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>remove getAssignmentSummaries function
</comment><date>2026-05-20 12:58:52 +0530</date><id>38a8e9c183bc703790887dd24b24959f923d2a4f</id><msg>remove getAssignmentSummaries function</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAssignmentSummaryEntityRow.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAssignmentConstants.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentProgress.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiAssignmentResultRow.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiActorAndAssignmentProgress.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiAssignmentResultRowAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiConstants.kt</affectedPath><commitId>de2604a5d24886f12e1eb367420d2fadfc323bea</commitId><timestamp>1779264668000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement initial version of getAssignmentProgress
</comment><date>2026-05-20 12:11:08 +0400</date><id>de2604a5d24886f12e1eb367420d2fadfc323bea</id><msg>Implement initial version of getAssignmentProgress</msg><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiAssignmentResultRow.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiConstants.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiActorAndAssignmentProgress.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentProgress.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiAssignmentResultRowAdapter.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><commitId>b3ba8ae947519c38018fa2bd54fe200a41988274</commitId><timestamp>1779265505000</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-05-20 13:55:05 +0530</date><id>b3ba8ae947519c38018fa2bd54fe200a41988274</id><msg>refactor</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSessionAndPerson.kt</affectedPath><commitId>5f10957c07e8780e0f37aa70d3caf1d0d0b707ea</commitId><timestamp>1779268277000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add xapiAgent property to RespectSessionAndPerson
</comment><date>2026-05-20 13:11:17 +0400</date><id>5f10957c07e8780e0f37aa70d3caf1d0d0b707ea</id><msg>Add xapiAgent property to RespectSessionAndPerson</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSessionAndPerson.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><commitId>f92dde841ae5e5e33596975a9dbd7dd865ae1ac8</commitId><timestamp>1779268432000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>resolve conflicts
</comment><date>2026-05-20 14:43:52 +0530</date><id>f92dde841ae5e5e33596975a9dbd7dd865ae1ac8</id><msg>resolve conflicts</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.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>7827d2b6a33d40da5aa71e650b7829df332a58d0</commitId><timestamp>1779269222000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add Uuid opt-in to respect-app-compose and respect-lib-shared.
</comment><date>2026-05-20 13:27:02 +0400</date><id>7827d2b6a33d40da5aa71e650b7829df332a58d0</id><msg>Add Uuid opt-in to respect-app-compose and respect-lib-shared.</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/src/commonMain/kotlin/world/respect/shared/ext/ClazzExt.kt</affectedPath><commitId>7a93561a33094be6b42cea2d81d6731ef31335a4</commitId><timestamp>1779270302000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add studentsXapiGroup function
</comment><date>2026-05-20 13:45:02 +0400</date><id>7a93561a33094be6b42cea2d81d6731ef31335a4</id><msg>Add studentsXapiGroup function</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ClazzExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/admin_add_class_with_members.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_new_teacher_to_class.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_new_student_to_class.yaml</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>1a17fd5a6a683ac4c5b407663b9723ae30310b44</commitId><timestamp>1779273769000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro flows for assignment and class management to use dynamic class names.
</comment><date>2026-05-20 14:42:49 +0400</date><id>1a17fd5a6a683ac4c5b407663b9723ae30310b44</id><msg>Update Maestro flows for assignment and class management to use dynamic class names.</msg><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_class_with_members.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_new_teacher_to_class.yaml</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/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_class_with_members.yaml</affectedPath><commitId>4b36db7f8770355257894aa742542f8159510751</commitId><timestamp>1779276856000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro flows to reduce the number of students in the assignment test class.
</comment><date>2026-05-20 15:34:16 +0400</date><id>4b36db7f8770355257894aa742542f8159510751</id><msg>Update Maestro flows to reduce the number of students in the assignment test class.</msg><path><editType>edit</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_class_with_members.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSessionAndPerson.kt</affectedPath><commitId>654d2ab04aa1a087dc6f33a0dff7f97dc2ab2527</commitId><timestamp>1779277178000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Add xapiAgent property to RespectSessionAndPerson
</comment><date>2026-05-20 17:09:38 +0530</date><id>654d2ab04aa1a087dc6f33a0dff7f97dc2ab2527</id><msg>Add xapiAgent property to RespectSessionAndPerson</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSessionAndPerson.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.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>02599de5e3e936c79767dd23b205fb086f3a0d02</commitId><timestamp>1779277178000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Add Uuid opt-in to respect-app-compose and respect-lib-shared.
</comment><date>2026-05-20 17:09:38 +0530</date><id>02599de5e3e936c79767dd23b205fb086f3a0d02</id><msg>Add Uuid opt-in to respect-app-compose and respect-lib-shared.</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-shared/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ClazzExt.kt</affectedPath><commitId>e4e4f664c0ce6fcef528680817169d27173dc10e</commitId><timestamp>1779277178000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Add studentsXapiGroup function
</comment><date>2026-05-20 17:09:38 +0530</date><id>e4e4f664c0ce6fcef528680817169d27173dc10e</id><msg>Add studentsXapiGroup function</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ClazzExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><commitId>86a8af5e1037ff94b4a305fd776318aa5e4f68bc</commitId><timestamp>1779277178000</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-05-20 17:09:38 +0530</date><id>86a8af5e1037ff94b4a305fd776318aa5e4f68bc</id><msg>refactor</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><commitId>d8ebfba071ef18f13c3dfebe5d051b20c017fe33</commitId><timestamp>1779280084000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>fix ui
</comment><date>2026-05-20 17:58:04 +0530</date><id>d8ebfba071ef18f13c3dfebe5d051b20c017fe33</id><msg>fix ui</msg><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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><commitId>81f315480906410a35e706d6b9102c1e64076aaa</commitId><timestamp>1779280934000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix XapiStatementEntityDao

The Xapi search query used Join XapiVerbEntity instead of left join. The XapiVerbEntity is only created when a verb has display properties.

This broke the query such that statements that used verbs that had no display properties would not be returned.
</comment><date>2026-05-20 16:42:14 +0400</date><id>81f315480906410a35e706d6b9102c1e64076aaa</id><msg>Fix XapiStatementEntityDao</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt</affectedPath><commitId>2e51e61093b64abdb3ce834e8f8166cc86dc2eca</commitId><timestamp>1779280965000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix XapiStatementEntityDao

The Xapi search query used Join XapiVerbEntity instead of left join. The XapiVerbEntity is only created when a verb has display properties.

This broke the query such that statements that used verbs that had no display properties would not be returned.
</comment><date>2026-05-20 16:42:45 +0400</date><id>2e51e61093b64abdb3ce834e8f8166cc86dc2eca</id><msg>Fix XapiStatementEntityDao</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbEntity.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActorExt.kt</affectedPath><commitId>39869b40a763fc14c8e02094fe373e2b93accd8c</commitId><timestamp>1779283007000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix XapiActorExt.distinctMerged function

DistinctMerged function was not handling identified groups correctly: the returned group member was not null even if it was null in the input. This caused the ActorDataSource to incorrectly remove all group members.
</comment><date>2026-05-20 17:16:47 +0400</date><id>39869b40a763fc14c8e02094fe373e2b93accd8c</id><msg>Fix XapiActorExt.distinctMerged function</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActorExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/pending-flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/001_005_add_school_self_registration_test.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/pending-flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/pending-flows/001_005_add_school_self_registration_test.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><affectedPath>.maestro/pending-flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/pending-flows/002_browse_lessons_test.yaml</affectedPath><commitId>4318a7f11ca89d0d8b2bb7a559306e549484ed37</commitId><timestamp>1779285877000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro test flows for assignments and move onboarding tests to pending.
</comment><date>2026-05-20 18:04:37 +0400</date><id>4318a7f11ca89d0d8b2bb7a559306e549484ed37</id><msg>Update Maestro test flows for assignments and move onboarding tests to pending.</msg><path><editType>delete</editType><file>.maestro/flows/001_005_add_school_self_registration_test.yaml</file></path><path><editType>add</editType><file>.maestro/pending-flows/001_003_login_using_school_link_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>delete</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/pending-flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/pending-flows/001_005_add_school_self_registration_test.yaml</file></path><path><editType>add</editType><file>.maestro/pending-flows/002_browse_lessons_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>add</editType><file>.maestro/pending-flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</affectedPath><commitId>04eeca8a1ead36288a2a1371e6a859324e142699</commitId><timestamp>1779289874000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix mistake on XapiStatementEntityDao get assignment progress function: incorrect use of group.
</comment><date>2026-05-20 19:11:14 +0400</date><id>04eeca8a1ead36288a2a1371e6a859324e142699</id><msg>Fix mistake on XapiStatementEntityDao get assignment progress function: incorrect use of group.</msg><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>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</affectedPath><commitId>b0a5249bb832437f50727267f631375474f1f233</commitId><timestamp>1779295672000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Make assignment progress query test more rigorous.
</comment><date>2026-05-20 20:47:52 +0400</date><id>b0a5249bb832437f50727267f631375474f1f233</id><msg>Make assignment progress query test more rigorous.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/enrollments/UpdateClazzStudentXapiGroupUseCase.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ClazzExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</affectedPath><commitId>7f5e45c59ec11eb38383a9d4c8e1b9ec84c576d6</commitId><timestamp>1779301808000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement creation of an XapiGroup for students in a given class to enable assignments to work as expected.
</comment><date>2026-05-20 22:30:08 +0400</date><id>7f5e45c59ec11eb38383a9d4c8e1b9ec84c576d6</id><msg>Implement creation of an XapiGroup for students in a given class to enable assignments to work as expected.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/enrollments/UpdateClazzStudentXapiGroupUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ClazzExt.kt</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName><id>mike</id></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName><id>anugraha</id></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><description></description><fullName>Pooja Ravi</fullName><id>pooja</id></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName><id>noreply</id></culprit></freeStyleBuild>