Repository navigation
Conversation
Seatbelt-Operation: s08-43192ddd-4541881-sign-1
Seatbelt-Operation: recovery-20260924-100768-merge-sign-1
Codecov Report❌ Looks like you've decreased code coverage for some files. Please write tests to increase, or at least maintain, the existing level of code coverage. See our documentation here for how to interpret this table.
|
Seatbelt-Operation: recovery-20260925-100768-knip-sign-1
Seatbelt-Operation: main-refresh-100768-20261014-sign-db381862
Seatbelt-Operation: main-refresh-100768-20261014-26cd-sign-53276dcc
Seatbelt-Operation: remaining-100768-oneoff-sign-c34274b3-afc2-4902-8306-972be711fed8
This branch has not been deployed
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
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.
Explanation of Change
Remove unsafe type assertions from navigation and debug helpers with producer-derived types and guards. Links, history, workspace panels, and debug lookup retain their intended behavior; malformed nested navigation params stop at the first safe level when placing the initial sidebar marker.
Changed files (9)
src/libs/Navigation/helpers/getAdaptedStateFromPath.tssrc/libs/Navigation/helpers/getPathFromState.tssrc/libs/Navigation/helpers/getStateFromPath.tssrc/libs/Navigation/helpers/hasDifferentSplitScope.tssrc/libs/Navigation/helpers/linkTo/getMinimalAction.tssrc/libs/Navigation/helpers/linkTo/index.tssrc/libs/Navigation/helpers/linkTo/types.tssrc/libs/Navigation/helpers/replacePathInNestedState.tssrc/setup/addUtilsToWindow.tsFixed Issues
$ #94739
PROPOSAL: #94739 (comment)
Tests
Checked-in
tests/navigation/getPathFromStateTests.tsandtests/navigation/getStateFromPathTests.tspassed with the focused navigation Jest checks. Focused lint, formatting, and spelling checks on the changed paths passed.Offline tests
QA Steps
1. Report/message links and history.
2. Room context.
3. Narrow Members return.
4. Concierge return.
Coverage and evidence limits
Package status: Ready for handoff with retained findings and a disclosed console-evidence gap; audited functional minimum observed.
Provenance: Delivery source head
461440ac67fc362ed6dc3637b1e55c91f50e1e96matches the verified live head. Earlier-recording reuse and other provenance limits below remain applicable; this delivery does not add fresh QA execution.Interpretation: The expected outcomes above are instructions for testers. Blocked, failed, and unobserved assertions retain their original status. Console errors are documented as non-blocking findings; no clean-console result is claimed.
Platforms: Windows Chrome desktop and, only where labelled, narrow responsive Windows Chrome. Native Android/iOS and Safari were excluded from this package.
The new current-head desktop Forward supplement is fully reviewed/backed up and closes the functional history gap. Older clips use a prior head whose navigation code was audited unchanged; the two narrow clips use the current head. Console findings and the distinction between browser Back and App Back remain.
Recordings show actual Windows Chrome desktop and, where labelled narrow, the same Windows Chrome responsive viewport. They do not establish native Android/iOS or Safari execution. Findings are retained; these packages do not claim a clean console or all-platform success.
The final buffered-console read after neutralizing the tab was refused by the browser security gate. Per-transition pages were retained, but the tail interval has a gap; the original result stays incomplete-evidence for that console assertion. No clean-console claim or retry through another tool. Functional observations are established; historical broader contracts are unchanged.
Clips 03 and 04 are privacy derivatives of the same original continuous timelines (194.5 seconds and 69.8 seconds), with no additional cuts or speed changes. Static opaque masks hide account login aliases, including captured transitions. They also cover small same-position portions of incidental room descriptions, thumbnails, recent-search/sidebar text, workspace labels, the About logo and the Concierge greeting. Member count, display names and roles, useful route context, Report a bug, Concierge welcome content and the return remain visible; obscured text is not readable evidence. The full final timelines, first/last frames and sensitive transitions were reviewed; source evidence and original results remain privately preserved and unchanged. Output is video-only H.264 at 30 FPS; this does not establish 60 FPS capture. No new QA assertions were made.
PR Author Checklist
The cases cover links, attachment, history, workspace details, Concierge, and cached offline navigation. This change has no new user-input error flow, UI, copy, style, asset, generic component, Storybook story, or message editing. High Traffic and platform verification remain pending.
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Recordings (5)
01-report-message-links-narrow.mp4
02-room-context-desktop.mp4
03-members-return-narrow.mp4
04-concierge-return-narrow.mp4
05-marked-message-forward-desktop.mp4