<freeStyleBuild _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesorigindev-student-grouping _class='hudson.plugins.git.util.Build'><buildNumber>48</buildNumber><marked><SHA1>129ac91e8fef8241b6904a66183ea6ab8067e7be</SHA1><branch><SHA1>129ac91e8fef8241b6904a66183ea6ab8067e7be</SHA1><name>refs/remotes/origin/dev-student-grouping</name></branch></marked><revision><SHA1>129ac91e8fef8241b6904a66183ea6ab8067e7be</SHA1><branch><SHA1>129ac91e8fef8241b6904a66183ea6ab8067e7be</SHA1><name>refs/remotes/origin/dev-student-grouping</name></branch></revision></refsremotesorigindev-student-grouping></buildsByBranchName><lastBuiltRevision><SHA1>129ac91e8fef8241b6904a66183ea6ab8067e7be</SHA1><branch><SHA1>129ac91e8fef8241b6904a66183ea6ab8067e7be</SHA1><name>refs/remotes/origin/dev-student-grouping</name></branch></lastBuiltRevision><remoteUrl>https://github.com/UstadMobile/Respect.git</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action></action><action></action><action _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>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>#48</displayName><duration>204747</duration><estimatedDuration>184107</estimatedDuration><fullDisplayName>dev-student-grouping #48</fullDisplayName><id>48</id><inProgress>false</inProgress><keepLog>false</keepLog><number>48</number><queueId>8588</queueId><result>SUCCESS</result><timestamp>1779335040994</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/dev-student-grouping/48/</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>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiStatementExt.kt</affectedPath><commitId>a93d8f58578f169f9b72317be29708607c910dcf</commitId><timestamp>1779188387000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Introduce `XapiStatementExt.kt` to centralize xAPI helper functions and refactor student grouping ViewModels.
</comment><date>2026-05-19 16:29:47 +0530</date><id>a93d8f58578f169f9b72317be29708607c910dcf</id><msg>Introduce `XapiStatementExt.kt` to centralize xAPI helper functions and refactor student grouping ViewModels.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiStatementExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiStatementExt.kt</affectedPath><commitId>a47996dd06f5d2dcd1a6235ca362a94347fdaf01</commitId><timestamp>1779189193000</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 unused `SchoolDataSource` import in `XapiStatementExt.kt`.
</comment><date>2026-05-19 16:43:13 +0530</date><id>a47996dd06f5d2dcd1a6235ca362a94347fdaf01</id><msg>Remove unused `SchoolDataSource` import in `XapiStatementExt.kt`.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiStatementExt.kt</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-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-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentProgress.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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.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-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiAssignmentResultRow.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><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/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>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiActorAndAssignmentProgress.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/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>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-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/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><commitId>fd555e517d67bb2433e8ab75b059c60ba5b8cf77</commitId><timestamp>1779269505000</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 unused `SchoolDataSource` import in `XapiStatementExt.kt`.
</comment><date>2026-05-20 15:01:45 +0530</date><id>fd555e517d67bb2433e8ab75b059c60ba5b8cf77</id><msg>Remove unused `SchoolDataSource` import in `XapiStatementExt.kt`.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt</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>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><commitId>e686becd21c74ffff565a458fe7d198a258e71e8</commitId><timestamp>1779270546000</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 group filtering logic in `ClazzDetailViewModel.kt` to handle null timestamps and ensure distinct groups are correctly mapped from xAPI statements.
</comment><date>2026-05-20 15:19:06 +0530</date><id>e686becd21c74ffff565a458fe7d198a258e71e8</id><msg>Update group filtering logic in `ClazzDetailViewModel.kt` to handle null timestamps and ensure distinct groups are correctly mapped from xAPI statements.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiStatementExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt</affectedPath><commitId>ebd422f539efa51cb39987b2eb0cc9b11acce039</commitId><timestamp>1779277742000</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 `XapiStatementExt.kt` and inline xAPI agent and statement creation logic within `StudentGroupingDetailViewModel` and `StudentGroupingEditViewModel`. Use `xapiAgent` directly from the selected account session and manually construct `XapiStatement` and `XapiAgent` objects for group management and voiding operations.
</comment><date>2026-05-20 17:19:02 +0530</date><id>ebd422f539efa51cb39987b2eb0cc9b11acce039</id><msg>Remove `XapiStatementExt.kt` and inline xAPI agent and statement creation logic within `StudentGroupingDetailViewModel` and `StudentGroupingEditViewModel`. Use `xapiAgent` directly from the selected account session and manually construct `XapiStatement` and `XapiAgent` objects for group management and voiding operations.</msg><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiStatementExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><commitId>b3324ae44944ea82456668a43d5eca3c858bd1b2</commitId><timestamp>1779278331000</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 unnecessary empty lines in `ClazzDetailViewModel.kt`.
</comment><date>2026-05-20 17:28:51 +0530</date><id>b3324ae44944ea82456668a43d5eca3c858bd1b2</id><msg>Remove unnecessary empty lines in `ClazzDetailViewModel.kt`.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><commitId>b8a2ca238c859dfde5d3b59a90a47617b74eeb03</commitId><timestamp>1779279235000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Apply minor formatting and whitespace adjustments to `ClazzDetailViewModel.kt`.
</comment><date>2026-05-20 17:43:55 +0530</date><id>b8a2ca238c859dfde5d3b59a90a47617b74eeb03</id><msg>Apply minor formatting and whitespace adjustments to `ClazzDetailViewModel.kt`.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><commitId>129ac91e8fef8241b6904a66183ea6ab8067e7be</commitId><timestamp>1779293146000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Improve error handling and data robustness in student grouping view models and screens.

- Add `Napier` logging and replace potential crashes with safe checks and early returns in `StudentGroupingDetailViewModel`, `ClazzDetailViewModel`, and `StudentGroupingEditViewModel`.
- Refactor `StudentGroupingEditState` to calculate `selectedStudentIds` dynamically from the student list.
- Enhance group filtering and mapping logic in `ClazzDetailViewModel` to handle missing group/member data gracefully.
- Update UI components in `StudentGroupingEditScreen` and `ClazzDetailScreen` to safely handle null items and improve key mapping.
- Delete unused `XapiActorDataSource.kt`.
</comment><date>2026-05-20 21:35:46 +0530</date><id>129ac91e8fef8241b6904a66183ea6ab8067e7be</id><msg>Improve error handling and data robustness in student grouping view models and screens.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/studentgrouping/edit/StudentGroupingEditScreen.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/detail/StudentGroupingDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/studentgrouping/edit/StudentGroupingEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></culprit></freeStyleBuild>