-
Notifications
You must be signed in to change notification settings - Fork 106
Release Student 8.3.0 (282) #3366
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
tamaskozmer
wants to merge
96
commits into
release/student
Choose a base branch
from
release/student-8.3.0-282
base: release/student
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Fix Report A Problem test in all the 3 apps. Add new subcategory. refs: MBL-19331 affects: Teacher, Student, Parent release note:
refs: MBL-19109 affects: Student release note: Fixed a bug where quizzes would not open in some cases. test plan: See ticket
refs: MBL-19358 affects: Teacher release note: Fixed a scrolling issue in SpeedGrader when grading New Quizzes assignments.
refs: CLX-2876 affects: Horizon release note: none
… instead of the due date refs: MBL-19322 affects: Student, Teacher release note: Assignments on Assignment list are now sorted by due date.
…p on the quick SG icon, the app crashes refs: MBL-19279 affects: Teacher release note: Fixed a crash occurred when opening SpeedGrader with an unpublished quiz.
refs: MBL-19299 affects: Student, Parent release note: Excused assignments now consistently show an 'Excused' status in both the assignment list and assignment details.
…3265) * Fix Alert Settings error message to be shown in every case, regardless of type and the size of the given number. refs: MBL-19298 affects: Parent release note: Always show Alert Settings error message regardless of type and number size. * Revert "Fix Alert Settings error message to be shown in every case, regardless of type and the size of the given number." This reverts commit 7526414. * Fix alert settings threshold to not accept numbers with more than 3 characters. refs: MBL-19372 affects: Parent release note: Limit Alert Settings threshold numbers for maximum 3 characters.
…he text refs: MBL-19309 affects: Teacher release note: Fixed a bug occurred while filtering by section on Submission list.
…me page navigation (#3271) * Implement interaction test for Home page navigation in CourseBrowser. refs: MBL-17359 affects: Student release note: * Add CourseFrontPageEndpoint and interaction test for home page navigation. refs: MBL-17359 affects: Student release note: * PR fix refs: MBL-17359 affects: Student release note: * PR fix refs: MBL-17359 affects: Student release note:
…nAttempts E2E test (#3254) * Remove Stub from testCommentsBelongToSubmissionAttempts E2E test. refs: MBL-19331 affects: Student release note: * Remove sleep after sending a comment - attempt to fix on CI. refs: MBL-19298 affects: Student release note: * Add utility function to wait for the WorkManager job to be finished. refs: MBL-19298 affects: Student release note: * Attempt to force workmanager to execute jobs immediately in tests. refs: MBL-19298 affects: Student release note: * Force workmanager job to be finished automatically with TestDriver. Synchronize gradle workmanager testing lib versions. Remove unnecessary duplicated initialization in 'setupWorkerFactory' in StudentTest. (It's already happening in CanvasTest) refs: MBL-19298 affects: Student release note: * Attempt to fix workmanager null exception. refs: MBL-19298 affects: Student release note: * PR suggestion fixes. Extract work manager handling to the global TestingUtils file, so it can be used everywhere. Simplify/beautify code. refs: MBL-19298 affects: Student release note: * Copilot PR suggestion. Stabilize some interaction tests (use other retry logic). refs: MBL-19298 affects: Student release note: * Delete unused TestAppManager class from student. (We are using the global TestAppManager). refs: MBL-19298 affects: Student release note:
…tly reverts to Incomplete refs: MBL-19361 affects: Teacher release note: Fixed a bug that occurred when grading complete/incomplete assignment in Speed Grader.
refs: MBL-19378 affects: Student, Teacher release note: none
…a cannot see past attempts on assignment submissions refs: MBL-19303 affects: Teacher release note: Fixed an issue where teachers logged in under a root account in a Consortia could not view past attempts on assignment submissions.
… courses in closed terms refs: MBL-19363 affects: Student, Parent, Teacher release note: Users are no longer able to send Inbox messages from courses that have been concluded or are part of a past term.
#3247) * Unifying automation packages. Unifying naming conventions. Remove some unnecessary files (some of them were merged into other files, some were unused). refs: MBL-18862 affects: Teacher, Student, Parent release note: * Fix annotations package path in flank files. refs: MBL-18862 affects: Teacher, Student, Parent release note: * Stub (back) report a problem E2E test. (It will be fixed in another ticket) refs: MBL-18862 affects: Teacher, Student, Parent release note: * Rename 'renderTest' and 'renderPages' to 'rendertest' and 'renderpages'. Also, rename 'mockCanvas' to 'mockcanvas'. Resolve conflicts. refs: MBL-18862 affects: Student, Teacher, Parent release note: * Attempt to fix testCommentsBelongToSubmissionAttempts (make testDriver null safe and wait for the workInfo). refs: MBL-18862 affects: Student, Teacher, Parent release note: * Put back TestAppManager to student (attempt to fix breaking test on CI). refs: MBL-18862 affects: Student, Teacher, Parent release note: * print workinfos. refs: MBL-18862 affects: Student, Teacher, Parent release note: * Add logcat log about available workinfos. refs: MBL-18749 affects: Student, Teacher release note: * Refactor handleWorkManagerTask to make sure first the testDriver won't be null before asking for workInfos. refs: MBL-18862 affects: Student, Teacher release note: * Log available workinfos with assertion fails. reset timeout when checking for workinfos. refs: MBL-18862 affects: Student, Teacher release note: * Set local testDriver after re-initialize app.testDriver. refs: MBL-18862 affects: Student, Teacher release note: * Put fix order and put workmanager related test as first in the AssignmentsE2ETest class. refs: MBL-18862 affects: Student, Teacher, Parent release note: * Make sure workmanager related test will be the first to execute. refs: MBL-18862 affects: Student, Teacher, Parent release note: * Fix breaking testComments_previewAttachment test. (Implementing HEAD mock). refs: MBL-18862 affects: Student, Teacher, Parent release note:
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude <[email protected]>
refs: CLX-2877 affects: Horizon release note: none
…m 'Resources' page refs: MBL-19176 affects: Student release note: Fixed an issue that occurred when opening LTI Tools from the K5 Resources screen.
…ls to Open Correct Application (#3272) refs: MBL-19024 affects: Teacher release note: Fixed a bug where the Play Store/other app wouldn't open when clicking it's icon on the not a teacher screen. * Open app or play store when clicked * Vibe coded fixes * Fixed crash
Add pendoAccessToken property (with dummy value) to open_source_data for student, teacher, and parent apps to fix open source builds. This property is required by the build.gradle files but was missing from the open source configuration. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude <[email protected]>
…3277) Test plan: See ticket. Button is disabled while upload is in progress. refs: MBL-18997 affects: Student, Teacher, Parent release note: Fixed a bug where inbox messages were sent without attachment in some cases.
* Add GitHub Action for unit test coverage delta tracking This workflow runs unit tests on PRs and calculates code coverage delta compared to the master branch. It posts a sticky comment on the PR showing coverage changes for student, teacher, and pandautils modules. Key features: - Runs unit tests only (not UI tests) - Calculates instruction coverage percentage delta (not test count) - Updates a single sticky comment on each run to avoid spam - Supports optional threshold check to fail PR if coverage drops 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]> * Fix open source build and add parallelization - Add missing pendoAccessToken property to open_source_data for student, teacher, and parent apps - Add open_source.sh setup step to both PR and master test jobs - Parallelize workflow: split into 3 jobs (test-pr, test-master, coverage-report) that run PR and master tests concurrently - Add --parallel flag to Gradle test commands - Use artifacts to pass coverage data between jobs 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]> * Add parent app and fix gradle paths - Add parent app to coverage tracking (student, teacher, parent, pandautils) - Fix gradle/gradlew path issues by using -p flag consistently - Remove 'cd' commands that broke paths - Rebase on master to include pendoAccessToken fix 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]> * Fix pandautils test execution path Run pandautils tests from apps build instead of trying to use non-existent libs build. Pandautils is a subproject of apps. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]> * Add parent app to JaCoCo coverage configuration Include parent app in coverage tracking alongside student, teacher, and pandautils. Parent uses the qaDebug variant like student/teacher. Tested locally: - Tests run successfully - JaCoCo report generates correctly - CSV file created at expected location 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]> * Temporarily remove parent from coverage workflow Parent coverage will be added in a follow-up PR after jacoco config is merged to master. This avoids N/A coverage on master branch. --------- Co-authored-by: Claude <[email protected]>
…dit Syllabus page (#3286) refs: MBL-19271 affects: Teacher release note: Fixed an issue where embedded images in syllabus content would not display when editing the syllabus test plan: - Open Teacher app - Navigate to a course with a syllabus containing embedded images - Tap "Edit" on the syllabus page - Verify that embedded images display correctly in the editor 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude <[email protected]>
refs: MBL-19379 affects: Parent release note: Fixed a bug where discussion attachments couldn't be downloaded.
* Migrate test report logs from Splunk to Observe. refs: MBL-19357 affects: Student, Teacher, Parent release note: * Change Observe URL. refs: MBL-19357 affects: Student, Teacher, Parent release note: * Change 'event' json attribute to 'data'. refs: MBL-19357 affects: Student, Teacher, Parent release note: * Simplify JSON (cut sourceType from it as Observe only expects a data). Define content-length to make sure it's a json type. refs: MBL-19357 affects: Student, Teacher, Parent release note: * Refactor bash script to send data to Observe in correct form. refs: MBL-19357 affects: Student, Teacher, Parent release note: * Migrate from Splunk to Observe in TimingsListener (measuring timing, size, etc.) refs: MBL-19357 affects: Student, Teacher, Parent release note:
…ly anymore refs: MBL-19278 affects: Teacher release note: Added automatic refresh to Assignment List when grading submissions in SpeedGrader.
refs: MBL-19199 affects: Parent release note: Fixed downloading files in Submission details.
…gnment Details instead of Submission Details #3293 refs: MBL-19203 affects: Student release note: Fixed an issue where submission comment push notifications wouldn't route to the submission.
refs: CLX-3099 affects: Horizon release note: none
* Refactor refresh logic with individual event handlers This commit refactors the centralized HorizonEventHandler into individual feature-specific event handlers to improve code organization and reduce coupling between features. Changes: - Created DashboardEventHandler for dashboard-specific events - Created InboxEventHandler for inbox-specific events - Created LearnEventHandler for learn-specific events - Removed global HorizonEventHandler dependency from ViewModels - Updated ViewModels to use feature-specific event handlers - Updated Screens to pass feature-specific event handlers to ViewModels - Fixed test files to include required event handler parameters Benefits: - Better separation of concerns - Reduced coupling between unrelated features - More maintainable and testable code - Each feature manages its own refresh/event logic All unit tests pass successfully. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]> * Fix dashboard refresh * Fix dashboard refresh * Fix findings * Fix tests * Fix claude findings --------- Co-authored-by: Claude <[email protected]>
refs: affects: Student release note:
… tags and custom statuses (#3310) Test plan: 1. Open Teacher app and navigate to an assignment's submission list 2. Verify that differentiation tag filters are available when tags exist for the course 3. Test filtering by single differentiation tag - only students with that tag should appear 4. Test filtering by multiple differentiation tags - students with any of the selected tags should appear (OR logic) 5. Test "Include students without tags" checkbox - students without any tags should also appear when checked 6. Test custom grade status filters - submissions with selected custom statuses should appear 7. Verify that filters can be combined (status + tags + sections) 8. Test that subtitle only appears on differentiation tags when group set name differs from tag name 9. Run unit tests: `./gradlew 🧑🏫testQaDebugUnitTest` 10. Run interaction tests: `./gradlew 🧑🏫connectedQaDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.instructure.teacher.ui.interaction.AssignmentSubmissionListInteractionTest` refs: MBL-19424 affects: Teacher release note: Teachers can now filter submissions by differentiation tags and custom grade statuses ## Summary This PR adds comprehensive filtering capabilities for the Teacher submission list, including: **Features:** - Differentiation tag filtering with OR logic for multiple selections - Custom grade status filtering - "Include students without tags" option for inclusive filtering - Improved filter UI with subtitles only shown when meaningful - Combined filtering across multiple dimensions (status, tags, sections, scores) **Testing:** - Added 37 unit tests for SubmissionListViewModel covering all filtering scenarios - Added 4 interaction tests for differentiation tag filtering UI - All existing tests updated to handle new dependency injection structure **Architecture:** - Created separate `DifferentiationTagsModule` for cleaner dependency injection - Implemented `FakeDifferentiationTagsManager` for test configurability - Updated 7 interaction test files to properly inject dependencies - Subtitle logic: only display when group set name differs from tag name ## Checklist - [x] Follow-up e2e test ticket created or not needed - [x] Run E2E test suite - [x] Tested in dark mode - [x] Tested in light mode - [x] A11y checked - [x] Approve from product 🤖 Generated with [Claude Code](https://claude.com/claude-code)
…ctly when composing messages via FAB buttons, ensuring user-specific signatures don't leak between accounts (validates bug: MBL-18929 fix). (#3335) refs: MBL-18950 affects: All release note:
- Update claude_args to use GitHub MCP tools for inline reviews - Add permissions for pull-requests: write to enable review submissions - Update prompt to instruct Claude to use GitHub review system - Configure tools: create_pending_pull_request_review, add_comment_to_pending_review, submit_pending_pull_request_review, get_pull_request_diff This allows Claude to add inline comments directly on specific lines of code rather than posting a single summary comment. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude <[email protected]>
…er (#3338) Fixed an issue where soft concluded courses (courses concluded by term dates) were showing up for observers when composing a message in the Parent Inbox. ## Problem The Canvas API returns `enrollment_state: "active"` for soft concluded courses, so the existing enrollment state filtering was insufficient. Soft concluded courses are those that have ended based on term/course dates but were not manually concluded. ## Solution 1. Modified `CourseAPI.getCoursesByEnrollmentType()` to include `include[]=term` parameter to fetch term information 2. Added filtering in `ParentInboxCoursePickerViewModel` using `Course.isPastEnrolment()` to exclude: - Hard concluded courses (workflowState == COMPLETED) - Soft concluded courses with past term end dates - Soft concluded courses with past course end dates 3. Added comprehensive test coverage for all concluded course scenarios ## Test plan: - ✅ Manually tested with test account (inboxobs on awarenski.instructure.com) that has multiple concluded enrollments - ✅ Verified only active courses appear in the course picker when composing a message - ✅ All unit tests pass (6/6 tests in ParentInboxCoursePickerViewModelTest) - ✅ Tested new filtering logic with courses concluded by term dates - ✅ Tested new filtering logic with courses concluded by course dates - ✅ Tested new filtering logic with hard concluded courses refs: MBL-19421 affects: Parent release note: Fixed issue where concluded courses appeared when composing messages in Parent Inbox ## Checklist - [x] Follow-up e2e test ticket created or not needed - [x] Tested in dark mode - [x] Tested in light mode - [ ] A11y checked - [ ] Approve from product 🤖 Generated with [Claude Code](https://claude.com/claude-code)
…nversations are excluded (#3339) * Extend NotificationsE2ETest to verify inbox conversations are not listed in notifications page. refs: MBL-19440 affects: Student release note: * PR fix refs: MBL-19440 affects: Student release note: ---------
…Assignment Details screen refs: MBL-19441 affects: Student, Parent release note: Displaying Discussion Checkpoint grades in the Assignment Details screen.
refs: CLX-3122 affects: Horizon release note: none
…3345) refs: CLX-3130 affects: Horizon release note: none
## Summary Fixes a bug where the Android Student app's To-Do list was displaying already-submitted quiz items. The iOS app correctly filtered these out, but Android was missing the quiz type check. ## Changes - **TodoListRecyclerAdapter.kt**: Added `PlannableType.QUIZ` to the `isComplete()` method to filter out submitted quizzes - **TodoListRecyclerAdapter.kt**: Changed `isComplete()` visibility from `private` to `internal` to enable unit testing - **TodoListRecyclerAdapterTest.kt**: Added comprehensive unit tests covering all plannable types (13 tests, all passing) ## Root Cause The `isComplete()` method only checked `submissionState.submitted` for ASSIGNMENT, DISCUSSION_TOPIC, and SUB_ASSIGNMENT types. Quizzes also have submission states but weren't included in the check, causing them to remain in the to-do list even after submission. ## Test Plan ### Manual Testing 1. Build and install the app on a device 2. Login with test credentials from the Jira ticket 3. Navigate to: To Do 4. **Expected**: Completed quizzes should NOT appear 5. **Expected**: Only incomplete/unsubmitted items should be displayed ### Unit Tests ```bash ./gradle/gradlew -p apps 🧑🎓testQaDebugUnitTest --tests TodoListRecyclerAdapterTest ``` All 13 tests pass, covering: - Submitted/unsubmitted quizzes ✅ - Submitted/unsubmitted assignments ✅ - Submitted/unsubmitted discussions ✅ - Submitted/unsubmitted sub-assignments ✅ - Non-submittable types (calendar events, planner notes, etc.) ✅ refs: MBL-19430 affects: Student release note: Fixed To-Do list incorrectly showing completed quiz submissions ## Checklist - [x] Follow-up e2e test ticket created or not needed (not needed - unit tests cover the logic) - [x] Tested in dark mode - [x] Tested in light mode - [x] A11y checked - [x] Approve from product 🤖 Generated with [Claude Code](https://claude.com/claude-code)
…r, Todo, and Widget (#3349) ## Summary Fixes anonymous discussion navigation from Calendar, Todo list, and Widget views. The Canvas API returns 404 when attempting to fetch anonymous discussion headers by ID, which caused navigation failures. This PR adds proper handling by routing directly to the web view when the API returns null for discussions with redesign enabled. ## Test plan 1. As an instructor, create an anonymous discussion in a course 2. As a student, navigate to Calendar view and click on the anonymous discussion entry 3. Verify the discussion opens successfully in web view 4. Repeat for Todo list and Widget views 5. Test with discussion redesign disabled - should show error toast (existing behavior) 6. Test group discussions - should skip to parent discussion if child header is unavailable ## Manual Testing - Tested with anonymous discussions in Calendar view - Tested with discussion redesign enabled/disabled - Verified group discussion handling - All unit tests passing (11 tests in DiscussionRouterViewModelTest) refs: MBL-19438 affects: Student, Teacher release note: Fixed an issue where anonymous discussions could not be opened from Calendar, Todo, and Widget views ## Checklist - [ ] Follow-up e2e test ticket created or not needed - [x] Tested in dark mode - [x] Tested in light mode - [ ] Test in landscape mode and/or tablet - [x] A11y checked - [ ] Approve from product
refs: MBL-19442 affects: Student release note: Updated notifications list to display Discussion Checkpoint submission labels.
…in Syllabus (#3344) * Seed Discussion (with checkpoints) via GraphQL. (It does not work yet because of backend beta bug.) Update schema.json in dataseeding (by copying the canvasapi2 schema.json on it). Add DateTime parser to ApolloClient. refs: MBL-19335 affects: Student release note: * Add graphql mutations to create Discussion with Checkpoints (there's a "full one" and a "minimal one"). refs: MBL-19335 affects: Student release note: * Prepare Discussion Checkpoints Assignment related E2E test. refs: MBL-19335 affects: Student release note: * Discussion checkpoint assignment list related E2E test flow. refs: MBL-19335 affects: Student release note: * Add test flow for assignment details page for discussion checkpoints. Add some testtags + wrap DueDateBlock into a Column to be able to identify it. refs: MBL-19335 affects: Student release note: refs: MBL-19420 affects: Student release note: * Fix breaking submodule tests. refs: MBL-19335 affects: Student release note: refs: MBL-19420 affects: Student release note: * Implement Discussion Checkpoint E2E Test for Syllabus assignment list page. refs: MBL-19435 affects: Student release note: refs: MBL-19420 affects: Student release note: * Fix discussion checkpoint E2E test assertions. Update discussion checkpoint test to use actual due dates instead of "No Due Date" and fix toolbar subtitle assertion to be more specific by adding ancestor matcher. refs: MBL-19435 affects: Student release note: * Adjust timezone difference between local and FTL machine. * Fix breaking UserGroupFilesE2ETest.kt to only wait for workmanager if it's not (immediately) succeeded. * Remove unnecessary exception handling. * Refactor Discussion Checkpoint in Syllabus test according to new master changes (on assignment details page there is a separate box for the checkpoints, so added some assertions to it). Fix scrolling issue. * Modify dates to match FTL device timezone.
refs: CLX-2927 affects: Horizon release note: none --------- Co-authored-by: andras.maczak <[email protected]>
…ame format (#3350) Studio videos embedded via external_tools/retrieve URL format were not being detected and synced for offline viewing. Additionally, videos were not playing due to DASH mimeType incompatibility with HTML5 video player. ## Changes - Added `studioIframeExternalToolsRegex` to detect Studio iframes in external_tools/retrieve format - Refactored `parseAndReplaceStudioVideos()` to process multiple regex patterns in a single loop - Override mimeType to `video/mp4` for local playback (Studio API returns `application/dash+xml` but we download MP4) - Extended test coverage with 5 new test cases covering various scenarios ## Test plan: 1. Navigate to a page with Studio video embedded via external_tools/retrieve iframe 2. Enable offline mode for the course containing the page 3. Wait for sync to complete 4. Go offline and verify the video plays correctly with proper poster image refs: MBL-19433 affects: Student release note: Fixed Studio videos not working offline when embedded via external_tools ## Checklist - [ ] Follow-up e2e test ticket created or not needed - [x] Tested in dark mode - [x] Tested in light mode - [x] Test in landscape mode and/or tablet - [ ] A11y checked - [ ] Approve from product
refs: CLX-3120 affects: Horizon release note: none
Added detection and button injection for studio/canvas media iframes to enable immersive view mode. The implementation includes: - Detection of studio/canvas media URLs in HtmlContentFormatter - Title extraction from iframe attributes - Button injection for studio/canvas media with "View in full screen" text - Route handling in Student RouteMatcher for media_attachments immersive view URLs - URL conversion from media_attachments_iframe to media_attachments format - Always adding embedded=true parameter to URLs - Fallback to "Immersive view" string resource when no title is available refs: MBL-19329 affects: Student release note: none test plan: 1. Navigate to a page with studio/canvas media iframe 2. Verify "View in full screen" button appears 3. Click button and verify immersive view opens with correct title 4. Test both iframe button (existing in web content) and injected button 🤖 Generated with [Claude Code](https://claude.com/claude-code)
* Fix empty course state * Fix completed course handling * Fix course sorting * Fix time spent widget behaviour
refs: MBL-19449 affects: Teacher release note: Fixed decimal grades being rounded in SpeedGrader.
refs: CLX-3184 affects: Horizon release note: none
Test plan: - Manually verify assignment_submit_selected event fires when tapping submit button on assignment details - Manually verify audio_recorder media source is tracked when recording audio submission - Unit tests pass (SubmissionDetailsEmptyContentEffectHandlerTest) refs: MBL-19432 affects: Student release note: none ## Checklist - [x] Follow-up e2e test ticket created or not needed (not needed - analytics only) - [x] Tested in dark mode (not applicable - no UI changes) - [x] Tested in light mode (not applicable - no UI changes) - [x] Test in landscape mode and/or tablet (not applicable - no UI changes) - [x] A11y checked (not applicable - no UI changes) - [ ] Approve from product
# Conflicts: # apps/student/build.gradle
Contributor
Contributor
adamNagy56
approved these changes
Nov 6, 2025
Contributor
adamNagy56
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
QA +1
kdeakinstructure
approved these changes
Nov 6, 2025
Contributor
kdeakinstructure
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
QA 👍
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.