<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-playlists _class='hudson.plugins.git.util.Build'><buildNumber>15</buildNumber><marked><SHA1>3fe851221009338b67708e32a6e116de489cfb0b</SHA1><branch><SHA1>3fe851221009338b67708e32a6e116de489cfb0b</SHA1><name>refs/remotes/origin/dev-playlists</name></branch></marked><revision><SHA1>3fe851221009338b67708e32a6e116de489cfb0b</SHA1><branch><SHA1>3fe851221009338b67708e32a6e116de489cfb0b</SHA1><name>refs/remotes/origin/dev-playlists</name></branch></revision></refsremotesorigindev-playlists></buildsByBranchName><lastBuiltRevision><SHA1>3fe851221009338b67708e32a6e116de489cfb0b</SHA1><branch><SHA1>3fe851221009338b67708e32a6e116de489cfb0b</SHA1><name>refs/remotes/origin/dev-playlists</name></branch></lastBuiltRevision><remoteUrl>https://github.com/UstadMobile/Respect.git</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'><artifactsUrl>https://devserver3.ustadmobile.com/jenkins/job/dev-playlists-end-to-end-tests/15/artifact</artifactsUrl><changesUrl>https://devserver3.ustadmobile.com/jenkins/job/dev-playlists-end-to-end-tests/changes</changesUrl><displayUrl>https://devserver3.ustadmobile.com/jenkins/job/dev-playlists-end-to-end-tests/15/</displayUrl><testsUrl>https://devserver3.ustadmobile.com/jenkins/job/dev-playlists-end-to-end-tests/15/testReport</testsUrl></action><artifact><displayPath>001_001_invite_users_using_qr_code_or_link_test.mp4</displayPath><fileName>001_001_invite_users_using_qr_code_or_link_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_001_invite_users_using_qr_code_or_link_test.mp4</relativePath></artifact><artifact><displayPath>001_002_add_user_direct_test.mp4</displayPath><fileName>001_002_add_user_direct_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_002_add_user_direct_test.mp4</relativePath></artifact><artifact><displayPath>001_003_login_using_school_link_test.mp4</displayPath><fileName>001_003_login_using_school_link_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_003_login_using_school_link_test.mp4</relativePath></artifact><artifact><displayPath>001_005_add_school_self_registration_test.mp4</displayPath><fileName>001_005_add_school_self_registration_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/001_005_add_school_self_registration_test.mp4</relativePath></artifact><artifact><displayPath>002_user_add_apps_playlists_bookmarks_test.mp4</displayPath><fileName>002_user_add_apps_playlists_bookmarks_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/002_user_add_apps_playlists_bookmarks_test.mp4</relativePath></artifact><artifact><displayPath>003_admin_user_assigns_assignment_to_a_class_test.mp4</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.mp4</fileName><relativePath>.maestro/video-downloader/cypress/downloads/003_admin_user_assigns_assignment_to_a_class_test.mp4</relativePath></artifact><artifact><displayPath>001_001_invite_users_using_qr_code_or_link_test.png</displayPath><fileName>001_001_invite_users_using_qr_code_or_link_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_001_invite_users_using_qr_code_or_link_test.png</relativePath></artifact><artifact><displayPath>001_002_add_user_direct_test.png</displayPath><fileName>001_002_add_user_direct_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_002_add_user_direct_test.png</relativePath></artifact><artifact><displayPath>001_003_login_using_school_link_test.png</displayPath><fileName>001_003_login_using_school_link_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_003_login_using_school_link_test.png</relativePath></artifact><artifact><displayPath>001_005_add_school_self_registration_test.png</displayPath><fileName>001_005_add_school_self_registration_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/001_005_add_school_self_registration_test.png</relativePath></artifact><artifact><displayPath>002_user_add_apps_playlists_bookmarks_test.png</displayPath><fileName>002_user_add_apps_playlists_bookmarks_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/002_user_add_apps_playlists_bookmarks_test.png</relativePath></artifact><artifact><displayPath>003_admin_user_assigns_assignment_to_a_class_test.png</displayPath><fileName>003_admin_user_assigns_assignment_to_a_class_test.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/003_admin_user_assigns_assignment_to_a_class_test.png</relativePath></artifact><artifact><displayPath>00_Main_Dashboard.png</displayPath><fileName>00_Main_Dashboard.png</fileName><relativePath>.maestro/video-downloader/cypress/screenshots/extract-maestro-video-urls.cy.js/00_Main_Dashboard.png</relativePath></artifact><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli.zip</displayPath><fileName>respect-cli.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.0.zip</displayPath><fileName>respect-server-1.0.0.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.0.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.0.zip</displayPath><fileName>respect-server-shadow-1.0.0.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.0.zip</relativePath></artifact><building>false</building><displayName>#15</displayName><duration>1654805</duration><estimatedDuration>1917529</estimatedDuration><fullDisplayName>dev-playlists-end-to-end-tests #15</fullDisplayName><id>15</id><inProgress>false</inProgress><keepLog>false</keepLog><number>15</number><queueId>6909</queueId><result>FAILURE</result><timestamp>1774663980664</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/dev-playlists-end-to-end-tests/15/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><commitId>48c4c8d4501f3ee4c0672c15c2cac286db2d33ef</commitId><timestamp>1774539154000</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 labels in AssignmentEditScreen
</comment><date>2026-03-26 21:02:34 +0530</date><id>48c4c8d4501f3ee4c0672c15c2cac286db2d33ef</id><msg>update labels in AssignmentEditScreen</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/index.json</affectedPath><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><commitId>c4fa61370719913d8c6e1b40c63dec00d3da3c7f</commitId><timestamp>1774579892000</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 titles in respect-ds and adjust Maestro test assertions
</comment><date>2026-03-27 08:21:32 +0530</date><id>c4fa61370719913d8c6e1b40c63dec00d3da3c7f</id><msg>update titles in respect-ds and adjust Maestro test assertions</msg><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json</file></path><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/index.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><commitId>35702c3d6796269401935e7a0356bcf463250e9c</commitId><timestamp>1774593135000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>fix the flow.
</comment><date>2026-03-27 12:02:15 +0530</date><id>35702c3d6796269401935e7a0356bcf463250e9c</id><msg>fix the flow.</msg><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</affectedPath><commitId>c020b51fdd3557389cfc0524594c1e0055581603</commitId><timestamp>1774601800000</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 learning unit selection and playlist editing.

- Update Maestro test flows for improved playlist and section assertions.
- Refactor `LearningUnitListScreen` to simplify multi-select UI and improve bottom button logic for playlist selection.
- Update `LearningUnitListViewModel` to handle playlist picking mode, supporting `ReadiumLink` results and preventing multi-select of publications during playlist selection.
- Improve `PlaylistEditViewModel` to correctly resolve playlist titles and navigation links when adding items to sections.
- Refine section type detection in `PlaylistEditScreen` to properly distinguish between navigation and publication sections.
- Remove redundant app bar state restoration calls in `PlaylistEditScreen`.
</comment><date>2026-03-27 14:26:40 +0530</date><id>c020b51fdd3557389cfc0524594c1e0055581603</id><msg>Refactor learning unit selection and playlist editing.</msg><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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.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>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><commitId>a3f4e5f74644f1d9d9bb1b91d0640729091e49a0</commitId><timestamp>1774604390000</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 onClickAssignSection to support optional indices and replace exceptions with early returns.
</comment><date>2026-03-27 15:09:50 +0530</date><id>a3f4e5f74644f1d9d9bb1b91d0640729091e49a0</id><msg>Refactor onClickAssignSection to support optional indices and replace exceptions with early returns.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><commitId>6635c3829a71b25306606edaf5a009aafe606080</commitId><timestamp>1774604621000</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 onClickAssignSection to support optional indices and replace exceptions with early returns.
</comment><date>2026-03-27 15:13:41 +0530</date><id>6635c3829a71b25306606edaf5a009aafe606080</id><msg>Refactor onClickAssignSection to support optional indices and replace exceptions with early returns.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</affectedPath><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><commitId>2047444347fcccefe9b35e34b80641ad6f794e52</commitId><timestamp>1774609080000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Assignment support
</comment><date>2026-03-27 16:28:00 +0530</date><id>2047444347fcccefe9b35e34b80641ad6f794e52</id><msg>Assignment support</msg><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.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/playlists/mapping/list/PlaylistListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><commitId>ffb2b1df0be25f4c733b758c84f1eecabe3fbfa3</commitId><timestamp>1774610164000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>fix assignment navigation
</comment><date>2026-03-27 16:46:04 +0530</date><id>ffb2b1df0be25f4c733b758c84f1eecabe3fbfa3</id><msg>fix assignment navigation</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/playlists/mapping/list/PlaylistListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><commitId>3fe851221009338b67708e32a6e116de489cfb0b</commitId><timestamp>1774613727000</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 maestro test flow and fix element IDs
</comment><date>2026-03-27 17:45:27 +0530</date><id>3fe851221009338b67708e32a6e116de489cfb0b</id><msg>update maestro test flow and fix element IDs</msg><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</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/pooja</absoluteUrl><description></description><fullName>Pooja Ravi</fullName><id>pooja</id></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName><id>mandvi.verma</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/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName><id>lipsa.behera</id></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName><id>noreply</id></culprit></freeStyleBuild>