text:
Poc/split navs

Details

Fixed Issues

$
PROPOSAL:
Tests

[ ] Verify that no errors appear in the JS console

Offline tests

QA Steps

[ ] Verify that no errors appear in the JS console

PR Author Checklist

[ ] I linked the correct issue in the ### Fixed Issues section above
[ ] I wrote clear testing steps that cover the changes made in this PR

[ ] I added steps for local testing in the Tests section
[ ] I added steps for the expected offline behavior in the Offline steps section
[ ] I added steps for Staging and/or Production testing in the QA steps section
[ ] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[ ] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[ ] I included screenshots or videos for tests on all platforms
[ ] I ran the tests on all platforms & verified they passed on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

[ ] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[ ] I followed proper code patterns (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[ ] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I followed the guidelines as stated in the Review Guidelines
[ ] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] I verified that if a function's arguments changed that all usages have also been updated correctly
[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

https://github.com/user-attachments/assets/d7b55ed8-616e-4a9b-94b9-8dc658ba4856
There are no page animations in the settings stack

I took this for a quick spin on Chrome/web and it worked fairly well, including properly accounting for the browser back case. One thing I noticed, though I'm not sure if it's related to this PR or not: I occasionally experienced performance issues, where the responsiveness of the page would slow down and almost freeze up for a second or two. I saw this on the Settings pages. I can do a profile trace if helpful, just let me know.

Definitely performance is something we need to keep in mind

@mountiny If I understand correctly this is something that we want. Those screens have the bottom tab bar. Other bottom tab screens don't have animations from the beginning.
@JmillsExpensify we are still working on adjusting performance tricks for these changes. Please point us to flows that feels slower than before so we can investigate it 🙇

If I understand correctly this is something that we want. Those screens have the bottom tab bar. Other bottom tab screens don't have animations from the beginning.

Hmm, I dont think we want that, going deeper in the settings should have animations, same as going to a report from LHN has animation @Expensify/design @trjExpensify @JmillsExpensify

@adamgrzybowski Wanted to report here as well that I think the performance on web for me is gradually getting worse and this morning it's noticeably slow, you can see it here as well which I have recorded for a different bug
https://github.com/user-attachments/assets/be3de8ff-1183-4a43-899d-b67d3f492f39

Hmm, I dont think we want that, going deeper in the settings should have animations, same as going to a report from LHN has animation

https://github.com/user-attachments/assets/7798ff81-4982-4db5-8b41-1e862e222a91
But doesn't that look weird? You can see how one bottom tab bar covers the previous one with animation.
cc: @mountiny

Yeah, I think that does look weird.

I agree that the bottom tab should not animate if it's staying on another page, too. I would defer to @dubielzyk-expensify and the design team to see how we want to handle this.

https://github.com/Expensify/App/pull/49539#issuecomment-2375537540 is what I would expect and prefer. But if that's not technically feasible at the moment, I would rather have the bottom tabs than the animation.

That's the problem. It may be tough to implement and if that's okay I would investigate this as follow-up. But let me explain why this is problematic at all.
Previously, we had a navigator that displayed a bottom tab bar over every screen within itself. This approach did not allow us to place the bottom tab bar on every screen in the app. Only on screens in this particular navigator. And it definitely did not allow us to display the bottom tab bar conditionally, as in the "Workspaces screen" case.
We decided to render the bottom on every screen that requires it instead. This approach gives us a lot of flexibility.
We did know that we couldn't create an animation of sliding screen with the bottom tab onto another screen with the bottom tab. But we assumed that as in current use cases, we won't animate screens with the bottom tab so that's not a problem.
Let's assume that we want to have this animation and we won't display it on every page but we will figure out a way to do it smarter.
https://github.com/Expensify/App/pull/49539#issuecomment-2375537540
All screens that you can open from the menu visible in the video above are on the same level. Screen containing this menu is also on the same level. If that doesn't make sense, please consider the fact that we also need to handle the wide layout with this structure.
That means they are rendered with one <StackView />. In the case of workspaces screen and settings root we would need to render the bottom tab bar on top of this stack view. For other screens, we would need to render it somewhere between these cards to have proper animation. But we can't really put anything between these cards. The task will be even harder given the incoming  which leaves us with even less wiggle room.
I am not saying it is impossible. I just want to give you context on how complex is adding this little animation. I have a few tricks in my mind but I would rather focus on this after migrating to the new structure.

When it comes to performance. I started digging and couldn't reproduce the laggy RHP that you filmed @mountiny. I might have to try the high traffic account or something like that.
However, I discovered a different issue when switching to the "Reports" tab.
What you can notice in our POC is that you can't see the skeleton loading. The first render of the report screen is delayed in comparison to the main.
https://github.com/user-attachments/assets/7d423b9c-537d-4ccb-9db0-7765aa10a39d
It doesn't look like a big delay but it feels laggy when you click it yourself.
I investigate that and it looks like this doesn't happen on the main only by coincidence. I figured out a solution for that and tomorrow I will work on PR that we could merge to the main. It should help with the initial render of heavy screens in general and improve the user experience.
Below you can see the test result
https://github.com/user-attachments/assets/0051a65c-1ffb-448b-a86e-56950f46bd9b

I am fine exploring the animation later
@adamgrzybowski, you should definitely test with a high-traffic account at least; you could even try the heavy performance testing account we provided to SWM. Testing with a fresh account is not representative of the users we care about the most.

FYI: I played around with a solution I found yesterday regarding performance, and it may need more work and investigation. For now, I'll focus on other work left for this PR and get back to perf closer to review.

Hey! Here's a little update from me and Adam :)
Tasks we have accomplished recently:

new simplified Navigation.goBack has been merged to our feature branch, now we are focused on comparing whether it works the same way as on the main branch and fixing bugs
we started working on cleaning up the code to fix checks in our PR
Tests section has been added to the NAVIGATION.md. It's still in progress but first tests are ready to check. We are working on preparing further tests, but we also believe that bugs reported in this PR can be a source of knowledge for us, so feel free to test and report us what you find :bug:
Adam worked on polishing performance, one of the planned improvements has already been added to the feature branch
many resolved conflicts 😄

Thanks for the update! I think the performance is the critical part to nail down. Also deeplinks, those are often a can of worms

Let us know when you want us to fire up another test build so we can take it for a spin!

@shawnborton Great timing 😄 we just improved performance and fixed some regressions we found. I think it's time to use your help with testing. 🙇
cc: @mountiny

Testing now - one quick thing I noticed: when I am on the Search page, the bottom tab for Search is not getting the "active" state:

I am also seeing a weird behavior where if I go to Settings, then Workspaces, then into a Workspace, then go back to Search, then Inbox, then Search, then when I try to go back to Settings, the bottom tab does not work or navigate me anywhere.

Hey guys! We fixed problems found by @shawnborton. A few others as well. There is one problem that we are aware of remaining but it is related to <StackView> on android and we would probably need to patch the react-navigation to fix it. I am not sure if it's worth fixing if we switch to native stacks on mobiles soon.
In that case, can we ask testers for help? In the meantime, @WojtekBoman and I will clean the remaining code and prepare a PR to remove the draft label.
cc: @mountiny
BTW this is the bug with StackView. It looks terrible but as I said it won't occur on NativeStack.
https://github.com/user-attachments/assets/45ee6d35-0da8-4097-a28f-c4f63ee66461

I think we are getting close to merging the native stack pr cc @chrispader so hopefully that would be fine.

Making a new test build

Trying it again https://github.com/Expensify/App/actions/runs/11453185400

@adamgrzybowski can you sync up with main please for a new build?

Just took this for a spin on web and it seems to work great, nice job!
For Android, regarding this comment:

I am not sure if it's worth fixing if we switch to native stacks on mobiles soon.

I have no idea what our plans are there... but I would say at its current implementation, it seems like this would be a blocker for implementing this, as it feels like it makes the app completely unusable if you hit the back button from settings. I think we should prioritize trying to get a fix in place for this. Thoughts @mountiny?

I have no idea what our plans are there... but I would say at its current implementation, it seems like this would be a blocker for implementing this, as it feels like it makes the app completely unusable if you hit the back button from settings. I think we should prioritize trying to get a fix in place for this. Thoughts @mountiny?

If I understand correctly, one part of the code responsible for native stacks has already been merged, and the other part should be merged in a few days.
I assumed we clean the code now and polish what's left while waiting for the whole native stack before merging this PR. But maybe you have better context on the time scale for the native stacks

Ah okay cool, I don't have all of the context there but that sounds good to me.

Yep, sorry to complete the context, but we have this PR that is also a significant navigation change that will bring in the native stack and native transitions: https://github.com/Expensify/App/pull/49937.
We are close to getting that merged, hopefully, so if that will resolve this bug we are good

Amazing! Thanks for filling me in :)

@mountiny conflicts resolved

https://github.com/Expensify/App/actions/runs/11459129332

Asked for testing https://expensify.slack.com/archives/C9YU7BX5M/p1729598994216919

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Search - App returns to Inbox when opening submit expense flow in Search page
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Go to https://49539.pr-testing.expensify.com/
Log in with a new account.
Go to Search.
Click Create expense, or open FAB > Submit expense in Search.

Expected Result:
App will remain in Search page.
Actual Result:
App returns to Inbox when opening submit expense flow in Search page.
Workaround:
Unknown
Platforms:

[ ] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos

Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Android - Onboarding - Page is blank after onboarding is completed
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Launch New Expensify app.
Sign up with a new Gmail account.
Complete the onboarding.

Expected Result:
Concierge page will open.
Actual Result:
Page is blank after onboarding is completed.
Workaround:
Unknown
Platforms:

[x] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/c2a4bf74-8f96-4b4c-8888-c0ebc2d60813

Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Navigation - Opened workspace section is reset when switching from Inbox to Search to Settings
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Go to https://49539.pr-testing.expensify.com/
Go to Settings > Workspaces.
Click on any workspace.
Go to any section (More features).
Click Inbox.
Click Settings.
Note that the section opened in Step 4 is preserved.
Go back to Inbox.
Now switch from Inbox to Search, then to Settings.

Expected Result:
The section opened in Step 4 is preserved.
Actual Result:
The section opened in Step 4 is not preserved and the page is reset to Profile.
Workaround:
Unknown
Platforms:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/0068ee77-761c-4064-ba9d-7fcbe69efb99

Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Attachment - New attachment window is opened when switching between images
Version Number: 9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause - Internal Team
Action Performed:

Go to https://49539.pr-testing.expensify.com/
Log in
Go to any chat
Send 3 or more images
Click on one of the image previews
Click on the "Next" and "Previous" arrows to switch between the images

Expected Result:
Next and previous images should be displayed on the same attachment windows
Actual Result:
New attachment windows are opened when switching between images
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/102cc37f-da95-4022-838e-30d33617c731

https://github.com/user-attachments/assets/f88b778a-2d5c-4a20-a986-771fcc5e47c6
https://github.com/user-attachments/assets/5bd213a5-538d-46e1-b83d-b06291a4ac8b
Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Web - Search - Two tooltips after saving search
Version Number: 9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail:
Issue reported by: Applause - Internal Team
Action Performed:

Go to https://49539.pr-testing.expensify.com/
Go to Search.
Click Filters.
Apply any filter and click Save.
Click Save search.

Expected Result:
There will be only one tooltip after saving search
Actual Result:
There are two tooltips after saving search
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[x] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos

https://github.com/user-attachments/assets/59a29f1e-e6e4-454f-ab16-9060b6a3f6e4

Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Expense - App does not open destination report after submitting expense
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Go to https://49539.pr-testing.expensify.com/
Open FAB > Submit expense > Manual.
Submit a manual expense to any user (as long as the user is not the currrently opened report and the receiver is not workspace chat).

Expected Result:
App will open destination report after submitting expense.
Actual Result:
App does not open destination report after submitting expense.
It still remains on the same report before the expense is submitted.
This issue only happens with p2p expense and not workspace expense.
Workaround:
Unknown
Platforms:

[x] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/0d8e0e0c-db24-4c5a-bfe4-1cca2b2e3601

Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Android - Blank page opens when returning from Settings to Search via device back navigation
Version Number: 9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail:
Issue reported by: Applause - Internal Team
Action Performed:

Launch New Expensify app
Go to Search
Go to Settings
Return to previous page by using device back navigation (swipe or device back button)

Expected Result:
App will return to Search
Actual Result:
Blank page opens when returning from Settings to Search via device back navigation
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos

https://github.com/user-attachments/assets/b6a495a4-0d2a-493a-935e-a5b8f964721f

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Android - Tapping on settings navigates to workspace list
Version Number: 9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail:
Issue reported by: Applause - Internal Team
Action Performed:

Navigate to ad hoc android app
Create a workspace and invite a member
Go one step back (Workspace editor page)
Tap on settings on the bottom navigation

Expected Result:
App navigates to settings page
Actual Result:
App navigates to workspace editor page
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos

https://github.com/user-attachments/assets/f5214823-2aeb-4a95-8588-b0e64c7d0924

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Android - Blank page is displayed when tapping on settings while on workspace editor
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Open adhoc android app
Create a workspace
Navigate to workspace editor page
Tap on profile settings at the bottom navigation.

Expected Result:
Settings page gets opened up.
Actual Result:
Blank page is displayed
This issue only happens with p2p expense and not workspace expense.
Workaround:
Unknown
Platforms:

[x] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/8a993c5c-96f9-4847-85ae-a93aebd3b13f

Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Search - App returns to Inbox after deleting expense from report RHP in Search
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Go to https://49539.pr-testing.expensify.com/
Go to FAB > Submit expense > Manual.
Submit an expense to anyone.
Go to Search.
Click on the expense.
Click on the report header.
Click Delete expense.
Delete the expense.

Expected Result:
App will stay in Search page.
Actual Result:
App returns to Inbox after deleting expense in Search.
Workaround:
Unknown
Platforms:

[x] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/aec10c56-c01e-4772-98b1-1ada77107440

Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Book travel - Unable to select country in company address page
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Go to https://49539.pr-testing.expensify.com/
Go to FAB > Book travel
Click Book travel
Click Country
Select a country

Expected Result:
The country will be selected
Actual Result:
The country is not selected and it seems that app reopens the address page again after selecting a country
The same issue also happens in Workspace settings > Profile > Company address > Country
Workaround:
Unknown
Platforms:

[x] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/22f4e345-323d-4b71-b082-8103f4c55af8

Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Android - Expensify card -Directed to connect bank account page briefly before navigating to company info
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: Can't check
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Launch app
Tap profile icon -- workspaces -- workspace
Tap more features - enable expensify card
Complete the flow till selecting incorporation state
Tap next
Note user directed to connect bank account page briefly before navigating to company information page

Expected Result:
On tapping next from incorporation state page, user must not be directed to connect bank account page briefly before navigating to company information page.
Actual Result:
On tapping next from incorporation state page, user directed to connect bank account page briefly before navigating to company information page.
Workaround:
Unknown
Platforms:

[x] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/782b5b78-2c49-4c7b-8ad1-20fabf539b9a
https://github.com/user-attachments/assets/20c27221-00a1-4b73-a89f-d4ea49d56ebd

Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Expensify Card - App crashes after setting up bank account and issuing card
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: Can't check
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Go to https://49539.pr-testing.expensify.com/
Go to workspace settings > Expensify Card.
Set up a bank account.
Issue a new card to yourself.
On the confirmation page, click Issue card.

Expected Result:
App will not crash.
Actual Result:
App crashes after issuing the first card.
Workaround:
Unknown
Platforms:

[x] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
2310_1.txt
https://github.com/user-attachments/assets/7c36841e-f426-4f77-a156-41fa2d70da4c

Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Workflow - Not here Page appears when editing first approver
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: Can't check
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Go to https://49539.pr-testing.expensify.com/
Create a workspace as an admin.
Add Approver A, Approver B, and an Employee as members.
Enable the workflow.
Navigate to the workflow settings and enable add Approvals
Click "Add Approval" and set the approval workflow as follows:

Employee submits to Approver A
Approver B is the second approver

Click save
Click on the approval workflow created above.
Click on the first approver.
Select the Employee, then click "Save."
Click on the first approver again.
Select Approver A, then click save.

Expected Result:
Not here page should not appear, and the approval workflow should save successfully.
Actual Result:
Not here page appears.
Workaround:
Unknown
Platforms:

[ ] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/5e12d9c7-afae-4606-8eeb-67de47b2aa94

Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Expensify Card - App crashes when opening fields in Card details page when opened from WS chat
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:
Precondition:

Expensify Card is enabled

Go to https://49539.pr-testing.expensify.com/
Go to workspace settings > Members
Tap on yourself
Tap New card
Assign a virtual card to yourself
Go to workspace chat
Click Expensify Card link
Click Card limit

Expected Result:
App will not crash
Actual Result:
App crashes
This issue only happens when the fields are opened from Card details page which is opened from Expensify Card link in the workspace chat
Workaround:
Unknown
Platforms:

[x] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/5135b39d-1a86-45cd-8204-2b0563ef7777
log.txt

Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Android - No animation when navigating in and out of workspace page
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: Can't check
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Open the adhoc Android app
Go to settings
Tap on workspace
Tap back

Expected Result:
RHP slide animation seen when navigating in and out of workspace page
Actual Result:
RHP slide animation is not applied when navigating into and out of workspace page
Workaround:
Unknown
Platforms:

[x] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/a80edcfa-3596-4163-aa74-356558ca5250

Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

BA - Back button on connect bank account modal opens incorporation state modal
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: Can't check
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:
Precondition: User has created a workspace & enabled Workflows option in WS settings

Navigate to https://49539.pr-testing.expensify.com/
Navigate to Settings >> Workspaces >> Workspace >> Workflows
Select Connect with Plaid option
Go through the Plaid flow (Added Wells Fargo details)
Complete the Personal info, Company info & agreements section
Note user redirected to page with the header Connect bank account and the option to disconnect your now set up bank account
Tap back button on connect bank account modal
Note user redirected to incorporation state modal

Expected Result:
On step 8 - Connect bank account modal should be closed & user lands on Workflows page with bank account added
Actual Result:
On step 8 - On clicking back button on connect bank account modal, user is redirected in incorporation state modal
Workaround:
Unknown
Platforms:

[x] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/eedbdcde-b626-411e-b918-fe15f1130869

Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Scan Receipts - The receipt uploaded to split expenses leads to an error
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Go to https://49539.pr-testing.expensify.com/
Log in with a Gmail account.
Create a group DM with some people.
Click on the + button > Split expense.
On the scan option, upload a receipt that will not fail the scan.
Click on the "Split Expense" Button.
Click on the receipt report that is being scanned.

Expected Result:
Must show in the RHP the receipt details with the sections “Paid by” and “Participants”
Actual Result:
Displays an error indicating that something has gone wrong
Workaround:
Unknown
Platforms:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/cfebc952-60e2-45f2-951f-2b35fd38df31

Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

App opens room details page when tapping RHP back button after saving Private notes in DM
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Go to https://49539.pr-testing.expensify.com/
Open DM with any user that does not have content in Private notes
Click on the chat header
Click Private notes
Enter anything and click Save
Click on the RHP back button

Expected Result:
App will return to profile RHP
Actual Result:
App opens room details page (when it is a DM) when tapping RHP back button after saving Private notes
Workaround:
Unknown
Platforms:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/3e9bb2fe-f4cf-4f2f-9689-869238d32b4f

Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

QBO - Preferred exporter/Export date tab do not auto-close after value selected
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:
Precondition: workspace with QBO integration connected.

Go to Workspace > Accounting
Click on Export > Preferred exporter (or Export date)
Click on value

Expected Result:
Selected Preferred exporter/Export date value is highlighted, marked with a check. Tab is closed and user is navigated to Export tab
Actual Result:
Selected Preferred exporter/Export date value marked with a check, but previous value is highlighted. Tab stays open. User has to click on back arrow to return to Export tab
Workaround:
Unknown
Platforms:

[x] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/ed13afe3-a3cb-4f76-b669-50fe474d0b40

Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Web - Thread - Highlighted message is not dismissed after clicking on the same chat in LHN
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Go to https://49539.pr-testing.expensify.com/
Go to DM.
Send a message
Right click on the message > Reply in thread
Click on header subtitle
Click on the same chat in LHN

Expected Result:
The highlighted message will be dismissed after clicking on the same chat in LHN
Actual Result:
The highlighted message is not dismissed after clicking on the same chat in LHN
Workaround:
Unknown
Platforms:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/51e0148a-e56a-4b8f-a282-dbc9cfbbc439

Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Group - App returns to group settings page after saving group name
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Go to https://49539.pr-testing.expensify.com/
Create a group chat
Go to group chat
Click on the group chat header
Click Group name field
Click Save

Expected Result:
App will return to group details RHP after saving group name
Actual Result:
App returns to group settings page after saving group name
Workaround:
Unknown
Platforms:

[x] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/51e0148a-e56a-4b8f-a282-dbc9cfbbc439

https://github.com/user-attachments/assets/cd891395-da0a-470c-93f1-770fd7983a2d
Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Web - Hold - App flickers after entering reason and saving it when holding expense
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Go to https://49539.pr-testing.expensify.com/
Open DM with any user
Submit two expenses to them
Click on the expense preview to go to expense report
Click on any preview to go to transaction thread
Go back to expense report
Right click on the expense preview in Step 5 > Hold
Enter a reason and save it

Expected Result:
App will not flicker after entering reason and saving it
Actual Result:
App flickers after entering reason and saving it. It turns black very briefly
Workaround:
Unknown
Platforms:

[x] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos

https://github.com/user-attachments/assets/81bf2792-0626-4c7c-a0cc-3ef75af0d2fb
Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Teachers Unite-Not redirected to Teachers Unite room after referring a teacher
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: Can't check
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Login with a new Expensifail account or one that is NOT part of the "Teachers Unite! testing policy" - We'll use this account as the "Principal"
Navigate to Profile settings
Click on "Save the World"
Verify there are 2 options "I know a teacher" and "I'm a teacher"
Click on "I know a teacher"
Verify a form is displayed to refer a teacher
Fill the first and last name
For the email, enter a new Expensifail account
Tap on the "Let's do this!" button

Expected Result:
The user is redirected to a public room with a whisper message indicating you referred a teacher.
Actual Result:
The user is not redirected to the Teachers Unite room after referring a teacher. The app goes back to the "Save the World" page.
The room is not displayed in the Inbox.
Workaround:
Unknown
Platforms:

[x] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/be3c4374-0a75-4045-8a07-064350bea1ce

Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Create expense - App freezes when clicking back button on Track expense confirmation page
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Go to https://49539.pr-testing.expensify.com/
Log in with a new account
Go to Search
Click Create expense
Enter amount > Next
Click Just track it
Click RHP back button

Expected Result:
App will not freeze
Actual Result:
App freezes
Workaround:
Unknown
Platforms:

[x] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/d5874269-c42a-409c-b0ce-89ca7930fcb4

Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Group chat - Default group chat name when created offline is Chat Report
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Go to https://49539.pr-testing.expensify.com/
Go offline
Go to FAB > Start chat
Create a group chat with anyone

Expected Result:
The default group chat name when created offline should be the name of the group members
Actual Result:
The default group chat name when created offline is Chat Report
Workaround:
Unknown
Platforms:

[ ] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/157588be-4db2-4f9a-8e7c-860fba97a816

Upwork Automation - Do Not Edit

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Android - Offline indicator is below the app navigation bar
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Launch ND adhoc build
Go to LHN
Go offline

Expected Result:
Offline indicator will be above the app navigation bar (staging behavior)
Actual Result:
Offline indicator is below the app navigation bar
Workaround:
Unknown
Platforms:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/1d9a8c9b-f4a8-4874-bea3-49c23cda316e

Upwork Automation - Do Not Edit

Will run the test builds again now.
In terms of your question above...

Regarding this issue: https://github.com/Expensify/App/pull/49539#issuecomment-2432455244, we're wondering if it's actually a bug, @shawnborton could you take a look at it?

...let's see what the @Expensify/design thinks too. The video doesn't look too strange, but I could see where the most expected behavior would actually be to return to the very top level of Settings after just one tap of the Settings bottom tab. What do you think?

Not sure if this is related to this PR or not but if I click around my Saved searches, I get a scroll bar (because I use a mouse) to appear. I can't reproduce this on production (notice the latter part of the video):
https://github.com/user-attachments/assets/ef88af91-e451-4595-95b2-278c742e04ec

...let's see what the @Expensify/design thinks too. The video doesn't look too strange, but I could see where the most expected behavior would actually be to return to the very top level of Settings after just one tap of the Settings bottom tab. What do you think?

Yeah, I agree that the video doesn't look super weird, but for the sake of simplicity I think a single tap should just take you to the top level of settings. I think it could get a little cryptic/confusing if it's like "Tap once to go up a level, tap again to go up another level, etc." I think that's just too weird of an interaction for everyone to really understand. I could absolutely be wrong though.

I feel like a bit back it was common pattern that a "nav item tap" took you up 1 level but I think these days it does skip you to the top level so that'd be my expectation as well.

Hey, a small update from us :)
We've already fixed majority of reported bugs. Here are the ones that we're still working on:

Search-Delay in the appearance of skeleton and folder icon when switching to Search from Inbox
Android - Onboarding - Page is blank after onboarding is completed
Web - Search - Two tooltips after saving search
Android - Blank page opens when returning from Settings to Search via device back navigation
Android - Tapping on settings navigates to workspace list
Android - Blank page is displayed when tapping on settings while on workspace editor
Create expense - App freezes when clicking back button on Track expense confirmation page
Group chat - Default group chat name when created offline is Chat Report

As most of the issues are already resolved, we'd like to ask for another round of testing 🙏 @lanitochka17 @IuliiaHerets
@mountiny Could you run new builds?
@Expensify/design We'd like to confirm that we should refactor the current behaviour of the settings button in the bottom tab. When this button is selected and we press it again, we should be redirected to the main screen in this tab (/settings on the narrow layout and /settings/profile on the wide).

Thanks

Hmm, that ad hoc build is behaving weird for me. Clicking on the settings tab OR the back button from a workspace editor takes me to Inbox. 🤔 (Was testing the web build)
https://github.com/user-attachments/assets/80245382-7b8b-47b1-a7e3-b530d79e94e4
https://github.com/user-attachments/assets/4c39a154-5b73-4ebf-a444-693d520084cb

Hmm, that ad hoc build is behaving weird for me. Clicking on the settings tab OR the back button from a workspace editor takes me to Inbox. 🤔 (Was testing the web build)
CleanShot.2024-10-31.at.09.04.53.mp4
CleanShot.2024-10-31.at.09.05.45.mp4

Yes, it's a bug. I've already fixed that, next build should work fine :)

LOL oops, sorry for the noise!

LOL oops, sorry for the noise!

That's fine, we found this bug internally, it wasn't mentioned here, so it's good that you have a keen eye! 👁  Now we're working on adjusting the settings tab button behaviour, I believe the next build will work properly 🙏 I'll let you know when it's ready to retest :)

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Android - Workspace - On new account, previous account WS appear while submitting expense
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Open the Expensify app.
Log out from account.
Sign up with a new account.
Create a new workspace via FAB.
Tap on FAB and select "Submit Expense"
Enter any amount and tap on "Next"
Verify the only workspace available to submit the expense, is the one that was just created.

Expected Result:
Only the just created workspace should be available to submit an expense in a new account.
Actual Result:
When logging out from an account with several workspaces and signing up in a new account, the previous account workspaces are displayed available while submitting an expense. The user can submit an expense to one of those workspaces and when opening WS chat, a "Hmm, it´s not here" screen is displayed.
Workaround:
Unknown
Platforms:

[x] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/bf34dffc-946a-42ad-9429-7cbc12e51ef9

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

LHN - LHN blinks when opening report from LHN
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Go to https://49539.pr-testing.expensify.com/
Click on any report in LHN.

Expected Result:
LHN will not blink.
Actual Result:
LHN blinks when opening report from LHN.
Workaround:
Unknown
Platforms:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/ae3c7ccd-c9b2-4c14-bd7a-2c7e0db990fe

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Track expense - Member list opens again after clicking back button on member list
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Go to https://49539.pr-testing.expensify.com/
Go to self DM.
Track an expense.
Click Submit it to someone from the actionable whisper.
Select a user.
Click back button on the confirmation page.
Click back button on member list.

Expected Result:
The RHP will be closed after clicking back button on member list.
Actual Result:
Member list opens again after clicking back button on member list.
Workaround:
Unknown
Platforms:

[x] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/590f5bed-7ec3-4167-82de-909e91927e1d

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Expense - Report details RHP opens after deleting receipt
Version Number: v9.0.52-1
Reproducible in staging?: N
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause Internal Team
Action Performed:

Go to https://49539.pr-testing.expensify.com/
Go to FAB > Submit expense > Manual.
Submit a manual expense with receipt to any user.
Go to transaction thread.
Click on the receipt.
Click 3-dot menu > Delete receipt.
Delete the receipt.

Expected Result:
Receipt view will close and no other RHP will open.
Actual Result:
Report details RHP opens after deleting receipt.
Workaround:
Unknown
Platforms:

[x] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/ee67f3b0-85bf-4c67-b336-e32eb217d9e7

Hey, we solved the next batch of bugs! 🐛 🐞

Expense - Report details RHP opens after deleting receipt
Track expense - Member list opens again after clicking back button on member list
Android - Offline indicator is below the app navigation bar
Group - App returns to group settings page after saving group name
Android - Workspace - On new account, previous account WS appear while submitting expense - It seems to work properly, @IuliiaHerets Could you please verify if it still occurs?
Create expense - App freezes when clicking back button on Track expense confirmation page
Android - Tapping on settings navigates to workspace list - the settings tab button behaviour has been refactored, now it works as I described here

Furthermore, we spend some time on fixing issues that we found internally:

performance issues, @adamgrzybowski worked on improving navigation between Inbox and Search tabs
deep linking to onboarding pages, now it's possible to go back when we open any page from the onboarding flow

cc: @mountiny @Expensify/design @IuliiaHerets @lanitochka17
The app is ready for another round of testing :)

Will run the test builds now 👍

Just to clarify this part

performance issues, @adamgrzybowski worked on improving navigation between Inbox and Search tabs.

Fixes related to the performance aren't on the branch yet. The issue is quite complex and the investigation took some time. We found the root causes of the problem and currently, we are deciding which solution will be the best.

@mountiny we could try another build. Performance should be better now 🤞🤞

I played with the new build and no longer see the performance problem described here. Could somebody please confirm that? Thanks! 🙇
BTW I think we resolved almost all reported problems. We still have a few that are waiting for native stacks but besides I think the PR seems pretty stable. Three things we would like to focus on now are:

cleaning (of course 😄) to prepare for reviews.
updating docs
preparing for merging native stacks. <- @WojtekBoman already started looking into this one.

Took it for a quick ride and also could not spot any performance issue on web at least

Agree that the above is weird. Whenever there's a back button we should support the edge-swipe as well

I agree as well.

Okay, so we want to achieve something like this?
https://github.com/user-attachments/assets/8418934b-0f43-48ee-a4b6-f207bfcb38b2

Agree with the previous comments about navigation and swiping. That video looks pretty good to me!

The only thing that I'm noticing in that most recent video is that the tabs are also swiping with the screen, so we have "layers" of tab bars when ideally there'd just be one fixed tab bar. Is that a deal-breaker?

Oh that's a great catch, totally missed that. I agree with you though Danny, those should ideally remain fixed.

Okay, so as I mentioned here (context), keeping the bottom tab bar fixed in position and not breaking our navigation for different platforms and wide view is complicated, if not impossible.
I have a few ideas I can try but all of them are hacky. The questions are:

Is this issue a blocker for this PR or is it something we could look into after introducing all these changes.
If we want to postpone the issue, should we disable animation and swiping for now or just let the bottom tab animate with the rest of the screen.

Curious what @mountiny thinks about that. I think I could get down with doing a follow up for those changes, mostly because I think the real value of this one comes for desktop users where we don't experience this problem.

To me, it's a blocker because it's a really bad experience. I can't think of an iOS app where you would have the back button like this, but you could not go back with a gesture.
I know that the Whatsapp native navigation is much simpler, but it seems possible to have a gesture based navigation even with the bottom tabs so I think we should look into this.
https://github.com/user-attachments/assets/478813f3-7202-4042-aad3-14baf09c7def
@shawnborton @dubielzyk-expensify @dannymcclain curious what you think from UX perspective

Oh yeah, I totally agree with you there. I think we could merge what we have and follow up with those improvements, though my fear would be making sure we actually can and do follow up and fix it.

I can't think of an iOS app where you would have the back button like this, but you could not go back with a gesture.

Yeah I totally agree too. It's definitely a UX issue that needs to be fixed.

Okay, I see how important it is, so I am going to keep looking for a solution. I have something promising in mind and I am currently working on implementation so 🤞
Just to clarify, yes there are examples with such navigation patterns. There is WhatsApp and I also saw it in the app store. It's probably done with the nested stack inside the bottom tab navigator which is a quite obvious solution in this situation.
But as I mentioned earlier there are things in this app (conditional bottom tab, wide layout) that we have to take into account. These things make solutions with nested stack inside the bottom tab navigator impossible in the context of Expensify.
I think we can figure out something that looks and feels the same, but it will be a different solution than the one mentioned above. And it will be more complicated than simply nesting navigators.
I know this looks like some basic functionality that should work out of the box but please have this context in mind while waiting for the solution. Thanks! 🙇

Yeah , looking great

Yeah that looks awesome!

@mountiny We finally implemented the bottom tab with proper animations and swipes back. It's time to test if it works as you expect.
Conflicts should be resolved. We want to do a final self review, but there shouldn't be any work left before removing the draft label besides removing/adding some comments and improving a few names.
I think there were at least a few other issues that this PR was supposed to solve. Let me know if you remember any and I will look for them in the meantime. Thanks for your patience! 🙇

https://github.com/user-attachments/assets/038075fb-de6c-47bd-9790-9f61bae141f8

Amazing! Let me run a test build quickly.

It looks like the not-found view is a bit borked on desktop? Notice how it has a back button in the main pane and the empty state illustration isn't centered:

Not related to navigation but our Categories simple illustration got borked somehow? Are we passing colors through or something that we shouldn't be?

Otherwise this is feeling pretty good to me. Bummer that iOS builds are failing but I tried on mWeb and things seem to be working as expected. Curious what the rest of @Expensify/design thinks as well as @mountiny

There were a lot of merge conflicts, so maybe we broke something there. I'll check it out. Thank you for finding these issues

Other than the issues Shawn pointed out (and obviously not being able to test on iOS) it's feeling pretty good to me too. This is such a good improvement IMO.

@shawnborton there may be something wrong with the build. I don't see problems with icons locally

Same for the issue with not found page

Hmm no idea there, though that is concerning that dev and the build are so out of sync like that?

Yeah, that's really weird. Is the screenshot with the not found page a screenshot of the desktop electron version?

Nope, that was from Chrome web.

Could be some caching issue on the build hard to say, i can kick off a new one

Still getting the not found found page weirdness when I go here: https://49539.pr-testing.expensify.com/not-found

Still getting the not found found page weirdness when I go here: https://49539.pr-testing.expensify.com/not-found

Now it should work fine :) I solved this issue and merged the latest main, so the icon color issue should disappear as well

authors: IuliiaHerets JmillsExpensify WojtekBoman adamgrzybowski dannymcclain dubielzyk-expensify lanitochka17 mountiny shawnborton trjExpensify


text:
Deep link to add secondary login in OldDot

This PR is a copy of https://github.com/Expensify/App/pull/6176. I forgot to add a hold on the previous PR and it was merged before it should have been and we reverted it.
cc @mountiny
Details
Copy changes to Issue corporate cards and Connect bank account page and deep-linking to Add secondary login in OldDot.
Fixed Issues
https://github.com/Expensify/Expensify/issues/182071 (partial)
Tests

Create an account using a public domain, e.g @gmail.com
Follow the steps in this SO to add an "OPEN" bank account.
When you reach the last step, verify the following:

Copy

This bank account will be used to reimburse expenses, collect invoices, and pay bills all from the same account. Please add a work email address as a secondary login to enable the Expensify Card.

Button

Add work email address

Click the button and verify that it opens new browser tab on OldDot and directs user to Settings > Account Details > Add secondary login with the secondary login modal open.
Go back to NewDot and navigate to Settings > Select Workspace > Issue corporate cards.
Verify that the following:

Copy

Add a work email address to issue unlimited Expensify Cards for your workspace members, as well as all of these incredible benefits:

Up to 2% cash back
Digital and physical cards
No personal liability
Customizable limits

Button

Add work email address

Click the button and verify that it opens new browser tab on OldDot and directs user to Settings > Account Details > Add secondary login with the secondary login modal open.

QA Steps
Steps above.
Tested On

[X] Web
[x] Mobile Web
[x] Desktop
[x] iOS
[x] Android

Screenshots

Web

Mobile Web

Desktop

iOS

Android

No longer on hold! Self-merging since it was approved.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by @luacmartins in version: 1.1.15-18 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Cherry-picked to staging by @roryabraham in version: 1.1.16-6 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

We found this issue when retesting this on Android https://github.com/Expensify/App/issues/6457. I don't think this PR is the culprit do so checking it off. Tested this on Android via adding the bank account through web and then logging into that same account in Android.

@luacmartins @Jag96 Question about the OldDot redirection. This is expected to open this mWeb page right? I ask because OldDot is messy sometimes in mWeb (in this case it looks ok but I wanted to confirm if this was the expected behaviour)

@luacmartins Hello! This issue was found while executing this PR in iOS https://github.com/Expensify/App/issues/6475 and it's currently failing the  - It's a different behaviour from what we have in Android. Can you give it a look 🙇♀

Hi @isagoico! I put up a fix for it https://github.com/Expensify/App/pull/6479. Thanks for bringing this up to my attention!

🚀 Deployed to production by @roryabraham in version: 1.1.16-10 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by @roryabraham in version: 1.1.16-10 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

I am tagging this PR to highlight an issue fixed here. All conditions in ternary expressions or left-hand operands on conditional renders, should be boolean. This PR is one of the PRs that uses conditional render with string operands, hence I am tagging it here for the contributors to check.
We've also updated the item in the checklist with this PR to avoid this issue in the future.

source: gharchive/pull-request

authors: OSBotify isagoico luacmartins mananjadhav

repo: Expensify/App

license: MIT

license_type: permissive

license_source: github-api


text:
[No QA] Small design tweaks

Details

Set Border width to 1px for Mode selection.
Set the font size for Fee value to normal 15px.

Fixed Issues

$ https://github.com/Expensify/App/issues/3922
Tests

[x] Verify that no errors appear in the JS console

Tested On

[x] Web
[x] Mobile Web
[x] Desktop
[x] iOS
[x] Android

Screenshots

Web | Desktop |  Mobile Web

iOS

Android

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

Oops I forgot to put the design label on here 😭 cc: @shawnborton is there anything else that needs to be changed here?

🚀 Deployed to staging by @stitesExpensify in version: 1.1.33-0 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
failure ❌

🕸 web 🕸
failure ❌

🚀 Deployed to production by @roryabraham in version: 1.1.33-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

authors: OSBotify parasharrajat stitesExpensify


text:
Response buttons not working since reinstall

I recently had to send my gaming laptop in to have the mobo replaced.  When I got it back I decided I wanted to do a fresh install of Mercury Trade to ensure latest versioning with the new Bestiary league.  I manually deleted the Mercury Trade folder out of "appdata/local/" and reinstalled.  However, when I set up my response buttons and did the test for incoming trades, my response buttons are not popping up chat msgs like they used to.  I click a button ('1m' for example = 'one minute plz') and nothing happens.  As well, when I have a friend initiate a trade for testing, I only get the standard PM chat sound in PoE, not the Mercury Trade notification sound and the trade pop-up doesn't appear.  Is there a better way for me to uninstall and reinstall fresh, or any other insight?  Thanks much in advance.
(notes - latest Java version is installed, and I used the .exe to install as the standalone .jar version previously gave me minor functionality issues)

I cleared "appdata/local/MercuryTrade" again and tried the .jar version rather than the .exe.  Now the pop-up windows are working, but the button/chat functionality is still broken.

I was able to resolve the issue buy going back to the .exe version and setting it to run as an administrator.

source: gharchive/issue

repo: Exslims/MercuryTrade

license: mit

license_source: bigquery


text:
Add License

MIT / ISC / GPL

Added the license.md file to repo


text:
Reference working websocket.io branch

Close #19
In commit b449a88 ("Use a specific unreleased commit of Website.io until it get released later.", 2017-01-17) we needed an unreleased fix to websocket.io. It seems that either GitHub or NPM has lost the option to reference commits linked through another fork. This fixes #19 by referencing the original author's branch.
This unreleased version is required because websocket.io is broken on Node 7+. Unfortunately it seems that the websocket.io authors no longer are interested in keeping their package Node 7+ compatible. (Discussion at https://github.com/LearnBoost/websocket.io/pull/57).
There still exists the following caveats:

If @kewisch wishes to remove his fork then this will no longer work
Official support seems lacking
This program is dependent on an unstable package

I suggest investigating the possibility of using an alternative websocket package with less problems.

Can I check whether this is still relevant now that the dependencies have been updated?


text:
Add Helm based Operator support

Signed-off-by: Subba Reddy Veeramreddy subbareddyv.uoh@gmail.com
Description:  Add Issue/Feature description
Changes Proposed in PR:
Fixes: #Github issue id
General Checklist

[x] Updated Added functionality/ bug fix in release notes
[x] Added examples for new feature
[x] Updated the documentation

CRD Checklist

[x] Updated required CR schema

/azp run


text:
Remove unused score functions in the stats_helper.py file

OpenStack Release
Liberty+
Description
There are a number of methods in the stats_helper module that are not used by the OpenStack code.  They were left over from a previous version of the library that was used in a different project. This is now dead code and should be removed.

See this fix in master in commit: https://github.com/F5Networks/f5-openstack-agent/commit/667dfc91f640495a389c2b9accc01cc2d4c73bfe

authors: dflanigan swormke


text:
Install ml2 driver along with lbaasv2 components on OpenStack controller

@jlongstaf
What issues does this address?
Fixes #802 #729
What's this change do?
Added the ansible playbook installation of the ml2 mechanism driver along with the agent and driver code. Also removed the dead code that looks for neutron ports owned by owned by f5 to remove them. This code should have been removed when we stopped managing ports.
Where should the reviewer start?
Any background context?
An F5 ml2 mechanism driver was created for mitaka, and it should be incorporated into every test run. There are no specific behaviors to validate when this software is installed, but as that project progresses, we expect tests specific to the mechanism driver will be added.

retest this please

retest this please

@jlongstaf: TLC is currently down, which is why our smoke tests are failing. When it's up, I'll kick it again.

retest this please

retest this please


text:
Make popup windows more consistent

Brings the style of the popup windows (map, mod, and replay detail and create game) more in line with each other and fixes minor UI Issues.
All windows keep sensible min and max sizes and hover in the middle of the screen.
The Create Game window now has a proper cancel button and no superfluous title anymore
"Min" is now in front of the text field instead of behind

Map detail buttons are lower so they don't crash with the map name
"Description" removed

Mod detail install button is now a highlighted button

Failing CI

Fixes #1733

We wanna use jfx on vault not drop jfx in create game dialog

outdated and no longer needed

repo: FAForever/downlords-faf-client


text:
pdm-backend should not normalize names in project metadata

Copying the bug report from over on pdm-backend.
In the long thread on discuss.python.org several problems related to normalization of package names have been identified.  Specifically, pdm-backend's behavior of normalizing the package name in the project metadata causes PyPI to incorrectly display the package's intentional name and pip install instructions.
Context is contained in the thread linked above.
FWIW, I actually don't care about the file names - normalize away!  I just want the metadata project name to match what I put in pyproject.toml!

@warsaw @FFY00 Could either of you retitle this to "Preserve the user-provided name, instead of overwriting it"?
The issue is here is that, currently, pyproject_metadata.StandardMetadata().name is always going to be a canonicalised value. This is because of:
https://github.com/FFY00/python-pyproject-metadata/blob/6c45665eb191d12f25f7c164f094f7a7d07e1fc8/pyproject_metadata/__init__.py#L198
This makes it impossible to get information that the user provided from that object and it also unconditionally transforms the metadata of the project; meaning that the METADATA file contains the normalised name rather than the user-provided name.

@pradyunsg -- Done!  yeah, that's unfortunate.

Note, a user workaround could be:
metadata = StandardMetadata.from_pyproject(pyproject_dict)
metadata.name = pyproject_dict["project"]["name"]

(Then remember to use packaging.utils.canonicalize_name(self.name) if you need the canonical name. Personally, I never find myself needed that, but I often need canonicalize_name(self.name).replace("-", "_"), for example to produce the wheel filename or now even the SDist filename.)

authors: henryiii pradyunsg warsaw


text:
fir me

.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/psych-4.0.0/lib/psych/class_loader.rb .rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/psych-4.0.0/lib/psych/class_loader.rb:99:in find' .rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/psych-4.0.0/lib/psych/class_loader.rb:28:in load'

根据跟用户的交流  目前发现是  用户的  psych 4.0 似乎有问题, 降到3.x 之后就可以了
之后开发者这边的机器包括开了几台不同操作系统的ecs, 安装 4.0 版本都未复现这个问题
so,暂时归类于  psych 的环境问题     如遇到这个问题, 手动降级下 psych 版本即可

repo: FIRHQ/fir-cli


text:
Adjust the log level of FISCO BCOS v2.x

PBFT related log
PBFTENGINE_LOG(DEBUG) << LOG_DESC("InvalidPrepare: not saved after commit")
                              << LOG_KV("EINFO", oss.str());

should adjust to INFO

solved in PR #2267

authors: cyjseagull luyikang-York

repo: FISCO-BCOS/FISCO-BCOS


text:
Changes "analytics" to "raw"

Updates schema, changes some cvc details:

Former analytics data is now downloaded with flag -r or --include-raw instead of -a or --include-analytics
Data is now downloaded to rawData instead of analyticsData
Documentation updated to reflect that

File Changes:
FLIR/conservator/cli/cvc.py
FLIR/conservator/local_dataset.py

Updated variable names to use raw instead of analytics
Changed argument, download location for downloading "raw" data

FLIR/conservator/generated/schema.py
api_version.txt

Updated schema

docs/usage/cvc_guide.rst

Updated docs to reflect changes to cvc

examples/clone_dataset.py

Fixed minor typo

[JIRA Task]

I spot checked the changes and I don't see any issues. There is also the following bit in the schema: analytics_state = sgqlc.types.Field(String, graphql_name="analyticsState") Does that have anything to do "analytics data" or is that the state of CNN processing?

analyticsState is a field that was left unchanged in Conservator, as it isn't user-visible, and I did not want to add another migration to change it.

repo: FLIR/conservator-cli


text:
core dumped bad_alloc in seqan

After managing to run the test via docker we've tried with our data, but without success:
docker run -v /mnt/cold1/snaketree/prj/snakegatk/local/share/data/second_shipment/:/data/ fred2/optitype -i PRJ0003S1_SA_L001_R1_001.fastq.gz PRJ0003S1_SA_L001_R2_001.fastq.gz -d -o /data/
/data/seqan-src/include/seqan/basic/basic_exception.h:363 FAILED!  (Uncaught exception of type std::bad_alloc: std::bad_alloc)

stack trace:
  0          [0x8917fd]  /usr/local/bin/razers3()
  1    [0x7ffa997556b6]  /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x8d6b6)
  2    [0x7ffa997546a9]  /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x8c6a9)
  3    [0x7ffa99755005]  __gxx_personality_v0 + 0x2e5
  4    [0x7ffa98f96f83]  /lib/x86_64-linux-gnu/libgcc_s.so.1(+0xff83)
  5    [0x7ffa98f972eb]  _Unwind_RaiseException + 0xfb
  6    [0x7ffa9975590c]  __cxa_throw + 0x5c
  7    [0x7ffa99755ebc]  /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x8debc)
  8          [0x62c455]  seqan::Size<seqan::String<unsigned int, seqan::Alloc<void> > >::Type seqan::_Resize_String<seqan::Tag<seqan::TagExact_> >::resize_<seqan::String<unsigned int, seqan::Alloc<void> > >(seqan::String<unsigned int, seqan::Alloc<void> >&, seqan::Size<seqan::String<unsigned int, seqan::Alloc<void> > >::Type) + 0x65
  9          [0x803c77]  void seqan::_patternInit<seqan::Index<seqan::StringSet<seqan::Segment<seqan::String<seqan::SimpleType<unsigned char, seqan::Dna5Q_>, seqan::Alloc<void> >, seqan::InfixSegment> const, seqan::Owner<seqan::Tag<seqan::Default_> > >, seqan::IndexQGram<seqan::Shape<seqan::SimpleType<unsigned char, seqan::Dna_>, seqan::OneGappedShape>, seqan::Tag<seqan::OpenAddressing_> > >, double, void>(seqan::Pattern<seqan::Index<seqan::StringSet<seqan::Segment<seqan::String<seqan::SimpleType<unsigned char, seqan::Dna5Q_>, seqan::Alloc<void> >, seqan::InfixSegment> const, seqan::Owner<seqan::Tag<seqan::Default_> > >, seqan::IndexQGram<seqan::Shape<seqan::SimpleType<unsigned char, seqan::Dna_>, seqan::OneGappedShape>, seqan::Tag<seqan::OpenAddressing_> > >, seqan::Pigeonhole<void> >&, double) + 0x507
 10          [0x803ff4]  void seqan::_applyFilterOptions<seqan::Index<seqan::StringSet<seqan::Segment<seqan::String<seqan::SimpleType<unsigned char, seqan::Dna5Q_>, seqan::Alloc<void> >, seqan::InfixSegment> const, seqan::Owner<seqan::Tag<seqan::Default_> > >, seqan::IndexQGram<seqan::Shape<seqan::SimpleType<unsigned char, seqan::Dna_>, seqan::OneGappedShape>, seqan::Tag<seqan::OpenAddressing_> > >, void, seqan::RazerSCoreOptions<seqan::RazerSSpec<false, false> > >(seqan::Pattern<seqan::Index<seqan::StringSet<seqan::Segment<seqan::String<seqan::SimpleType<unsigned char, seqan::Dna5Q_>, seqan::Alloc<void> >, seqan::InfixSegment> const, seqan::Owner<seqan::Tag<seqan::Default_> > >, seqan::IndexQGram<seqan::Shape<seqan::SimpleType<unsigned char, seqan::Dna_>, seqan::OneGappedShape>, seqan::Tag<seqan::OpenAddressing_> > >, seqan::Pigeonhole<void> >&, seqan::RazerSCoreOptions<seqan::RazerSSpec<false, false> > const&) + 0x144
 11          [0x5b988a]  /usr/local/bin/razers3()
 12    [0x7ffa991a8cbf]  GOMP_parallel + 0x3f
 13          [0x8111e6]  void seqan::initializeThreadLocalStoragesSingle<seqan::String<seqan::ThreadLocalStorage<seqan::MapSingleReads<seqan::String<seqan::MatchRecord<unsigned long>, seqan::Alloc<void> >, seqan::FragmentStore<MyFragStoreConfig, seqan::FragmentStoreConfig<MyFragStoreConfig> >, seqan::Finder<seqan::String<seqan::SimpleType<unsigned char, seqan::Dna5Q_>, seqan::Alloc<void> >, seqan::Pigeonhole<void> >, seqan::Pattern<seqan::Index<seqan::StringSet<seqan::Segment<seqan::String<seqan::SimpleType<unsigned char, seqan::Dna5Q_>, seqan::Alloc<void> >, seqan::InfixSegment> const, seqan::Owner<seqan::Tag<seqan::Default_> > >, seqan::IndexQGram<seqan::Shape<seqan::SimpleType<unsigned char, seqan::Dna_>, seqan::OneGappedShape>, seqan::Tag<seqan::OpenAddressing_> > >, seqan::Pigeonhole<void> >, seqan::Shape<seqan::SimpleType<unsigned char, seqan::Dna_>, seqan::OneGappedShape>, seqan::RazerSCoreOptions<seqan::RazerSSpec<false, false> >, seqan::String<seqan::String<unsigned short, seqan::Alloc<void> >, seqan::Alloc<void> >, seqan::RazerSMode<seqan::RazerSGlobal, seqan::RazerSGapped, seqan::RazerSErrors, seqan::NMatchesNone_> > >, seqan::Alloc<void> >, seqan::FragmentStore<MyFragStoreConfig, seqan::FragmentStoreConfig<MyFragStoreConfig> >, seqan::String<unsigned int, seqan::Alloc<void> >, seqan::Shape<seqan::SimpleType<unsigned char, seqan::Dna_>, seqan::OneGappedShape> const, seqan::RazerSCoreOptions<seqan::RazerSSpec<false, false> > >(seqan::String<seqan::ThreadLocalStorage<seqan::MapSingleReads<seqan::String<seqan::MatchRecord<unsigned long>, seqan::Alloc<void> >, seqan::FragmentStore<MyFragStoreConfig, seqan::FragmentStoreConfig<MyFragStoreConfig> >, seqan::Finder<seqan::String<seqan::SimpleType<unsigned char, seqan::Dna5Q_>, seqan::Alloc<void> >, seqan::Pigeonhole<void> >, seqan::Pattern<seqan::Index<seqan::StringSet<seqan::Segment<seqan::String<seqan::SimpleType<unsigned char, seqan::Dna5Q_>, seqan::Alloc<void> >, seqan::InfixSegment> const, seqan::Owner<seqan::Tag<seqan::Default_> > >, seqan::IndexQGram<seqan::Shape<seqan::SimpleType<unsigned char, seqan::Dna_>, seqan::OneGappedShape>, seqan::Tag<seqan::OpenAddressing_> > >, seqan::Pigeonhole<void> >, seqan::Shape<seqan::SimpleType<unsigned char, seqan::Dna_>, seqan::OneGappedShape>, seqan::RazerSCoreOptions<seqan::RazerSSpec<false, false> >, seqan::String<seqan::String<unsigned short, seqan::Alloc<void> >, seqan::Alloc<void> >, seqan::RazerSMode<seqan::RazerSGlobal, seqan::RazerSGapped, seqan::RazerSErrors, seqan::NMatchesNone_> > >, seqan::Alloc<void> >&, seqan::FragmentStore<MyFragStoreConfig, seqan::FragmentStoreConfig<MyFragStoreConfig> >&, seqan::String<unsigned int, seqan::Alloc<void> > const&, seqan::Shape<seqan::SimpleType<unsigned char, seqan::Dna_>, seqan::OneGappedShape> const&, seqan::RazerSCoreOptions<seqan::RazerSSpec<false, false> >&) + 0x116
 14          [0x811f2e]  int seqan::_mapSingleReadsParallel<MyFragStoreConfig, seqan::FragmentStoreConfig<MyFragStoreConfig>, seqan::String<seqan::String<unsigned short, seqan::Alloc<void> >, seqan::Alloc<void> >, seqan::RazerSSpec<false, false>, seqan::Shape<seqan::SimpleType<unsigned char, seqan::Dna_>, seqan::OneGappedShape>, seqan::RazerSGlobal, seqan::RazerSGapped, seqan::RazerSErrors, seqan::NMatchesNone_, seqan::Pigeonhole<void> >(seqan::FragmentStore<MyFragStoreConfig, seqan::FragmentStoreConfig<MyFragStoreConfig> >&, seqan::String<seqan::String<unsigned short, seqan::Alloc<void> >, seqan::Alloc<void> >&, seqan::RazerSCoreOptions<seqan::RazerSSpec<false, false> >&, seqan::Shape<seqan::SimpleType<unsigned char, seqan::Dna_>, seqan::OneGappedShape> const&, seqan::RazerSMode<seqan::RazerSGlobal, seqan::RazerSGapped, seqan::RazerSErrors, seqan::NMatchesNone_> const&, seqan::Pigeonhole<void>) + 0x14e
 15          [0x83d610]  int seqan::_mapReads<MyFragStoreConfig, seqan::FragmentStoreConfig<MyFragStoreConfig>, seqan::String<seqan::String<unsigned short, seqan::Alloc<void> >, seqan::Alloc<void> >, seqan::RazerSSpec<false, false>, seqan::RazerSMode<seqan::RazerSGlobal, seqan::RazerSGapped, seqan::RazerSErrors, seqan::NMatchesNone_> >(seqan::FragmentStore<MyFragStoreConfig, seqan::FragmentStoreConfig<MyFragStoreConfig> >&, seqan::String<seqan::String<unsigned short, seqan::Alloc<void> >, seqan::Alloc<void> >&, seqan::RazerSCoreOptions<seqan::RazerSSpec<false, false> >&, seqan::RazerSMode<seqan::RazerSGlobal, seqan::RazerSGapped, seqan::RazerSErrors, seqan::NMatchesNone_> const&) + 0x520
 16          [0x84aff9]  int seqan::_mapReads<MyFragStoreConfig, seqan::FragmentStoreConfig<MyFragStoreConfig>, seqan::String<seqan::String<unsigned short, seqan::Alloc<void> >, seqan::Alloc<void> >, seqan::RazerSSpec<false, false> >(seqan::FragmentStore<MyFragStoreConfig, seqan::FragmentStoreConfig<MyFragStoreConfig> >&, seqan::String<seqan::String<unsigned short, seqan::Alloc<void> >, seqan::Alloc<void> >&, seqan::RazerSCoreOptions<seqan::RazerSSpec<false, false> >&) + 0x79
 17          [0x88ec11]  int mapReads<seqan::RazerSSpec<false, false> >(seqan::StringSet<seqan::String<char, seqan::Alloc<void> >, seqan::Owner<seqan::Tag<seqan::Default_> > >&, seqan::StringSet<seqan::String<char, seqan::Alloc<void> >, seqan::Owner<seqan::Tag<seqan::Default_> > >&, seqan::RazerSOptions<seqan::RazerSSpec<false, false> >&) + 0x1371
 18          [0x572e65]  main + 0x845

Aborted (core dumped)
[E::hts_open_format] Failed to open file /data/2024_02_23_16_26_26/2024_02_23_16_26_26_2.bam
Traceback (most recent call last):
  File "/usr/local/bin/OptiType/OptiTypePipeline.py", line 313, in <module>
    pos2, read_details2 = ht.pysam_to_hdf(bam_paths[1])
  File "/usr/local/bin/OptiType/hlatyper.py", line 186, in pysam_to_hdf
    sam = pysam.AlignmentFile(samfile, sam_or_bam)
  File "pysam/libcalignmentfile.pyx", line 728, in pysam.libcalignmentfile.AlignmentFile.__cinit__
  File "pysam/libcalignmentfile.pyx", line 918, in pysam.libcalignmentfile.AlignmentFile._open
IOError: [Errno 2] could not open alignment file `/data/2024_02_23_16_26_26/2024_02_23_16_26_26_2.bam`: No such file or directory

RAM should not be an issue. Can anyone give us pointers?
Thanks,
E.

Hi, have you solver the error? I have met the same issue with the conda installed optitype

We ended up finding that indeed it was a RAM issue - the aligner razers3 had not enough ram (250Gb) to run with both R1 and R2 reads from 30x WGS. We ended up using R1 and R2 separately, apparently (but I am not sure) optitype does not use the information from read pairs so it should be fine (even if a single allele ended up having different calls with R1/R2, but they are very similar alleles...).

Thank you for your reply. When I run it on the example data, razers3 used more 100G RAM. and then I got that error. Do you think bwa-mem can be used instead of razers3 for the alignament?

We ended up using bwa with these parameters:
bwa mem -M -t $(nproc) $HLA_REF $R1 2> err.bwa-hla.$OUT | \
        samtools view -F4 -C -T $HLA_REF -@10

OK, thank you so much!

HLA-Locus prefiltering helps. And yes Optitype uses the paired information when constructing the binary hit matrix

authors: Hupingdong b-schubert vodkatad


text:
[R09M App Backlog] 검색 페이지 - 상품 검색 기능 구현

내용
🛠 키워드 입력 시 키워드가 포함된 상품 렌더링
시안 이미지
없음
달성도
9월 18일

클라이언트 SDK를 활용하여 데이터 필터링
검색어의 value에 따라 필터값 변경
필터링된 상품 화면에 렌더링

작업 완료

입력한 키워드가 포함된 상품 필터링
검색 결과가 없을 시 안내 문구 '검색 결과가 없습니다.' 렌더링


text:
error while running simple example

Hi
I using jupyter that is running above pyspark.
First I installed pyddq with:
pip2.7 install pyddq==3.2.1 (python2.7)
Then I execute simple example that ended with error (see attached pic).
What I missing?
B.R
Igor

Hi @imalkov82 !
Did you pass the jar to --driver-class-path?
https://github.com/FRosner/drunken-data-quality#python-api-1

Thanks for your response!
No ...
Can you give me the location where I can download the drunken-data-quality_2.10-x.y.z.jar?
Igor

Probably is it:
https://github.com/FRosner/drunken-data-quality/releases
Thanks!

You can download the jar from the release section.
Thanks for the feedback, I'll create a patch to check if the jar is available in the class path.

How difficult is it to provide this check @Gerrrr? Shall we put it into the 4.1.0 release?

It is almost done, I only have a couple of tests to fix. Yep, let's put it into the 4.1.0.

authors: FRosner Gerrrr imalkov82

repo: FRosner/drunken-data-quality


text:
Print also the merge rate within the "isJoinableWith" check.

Please also print the merge rate for the "isJoinableWith" check:
count (distinct <join column(s)>) AFTER join for base table
count (distinct <join column(s)>) BEFORE join for base table
merge rate = count (distinct <join column(s)>) AFTER join / count (distinct <join column(s)>) BEFORE join
Currently in the version 2.10-1.2.0 only distinct row number printed.

@zhdchen can you provide a simple example of two tables and document the current as well as the expected results after the change?

@FRosner Suppose we have two tables a and b
table a
num
1
2
2
3
3
3
4
table b
num	name
1		a
1		b
1		c
2		a
2		d
3		f
Check(a).isJoinableWith(b, "num" -> "num").run
should return following:
Distinct amount of num in table a: 4; Distinct amount of num after join: 3; Merge rate: 75%
This means 75% of the distinct num in table a can find join result in table b.
The join condition can also be multiple columns.

Sounds reasonable. @mfsny what do you think? @zhdchen can you provide a pull request?

@zhdchen keep in mind that computing the distinct count before the join requires a bit of extra work and will take some extra time. But I think it shouldn't be a big deal as it is a rather simple operation.

@FRosner I implemented a solution with the help of @zhdchen . As soon as I have access, I will push and create a pull request.

@bkomboz please fork and create a pull request. Keep in mind to create the pr from a non-master branch so you don't interfere with #23.

Thanks for picking this up @bkomboz. I put it into 2.1.0.

@zhdchen can you please test the implementation in #64 and tell me whether it matches your expectations? If it looks good to you, we can merge it.

@bkomboz can you please tell @zhdchen to check if the implementation matches his expectations? Otherwise I don't want to merge it.

@FRosner @bkomboz Yep, requirements are totally fulfilled. Thanks!

@zhdchen did you actually test it? :)

@bkomboz what is the semantics of the merge rate when the reference table contains multiple entries?
So what is the expected merge rate for the following example?
val base = makeIntegerDf(List(1, 2, 3))
val ref = makeIntegerDf(List(1, 1, 2, 5))
val check = Check(base).isJoinableWith(ref, "column" -> "column")

Is the merge rate commutative? So will should Check(base).isJoinableWith(ref, "column" -> "column") give the same merge rate result as Check(ref).isJoinableWith(base, "column" -> "column")?
Also we should add test cases for these parts.

I would say yes: The expected merge rate is commutative. And multiple entries should not matter. I can add tests for these things but I don't know if I will manage today or tomorrow.

@bkomboz while I agree with the first point (and will add test cases to verify whether your implementation is correct), I am not sure about the second one.
If I have duplicate foreign keys in the base table (so a one-to-many relationship), I could also expect them to count into the merge rate. E.g., if I have a transaction table and a customer table and then want to see if I can join the two. Customer 1 has 99 transactions and can be found in the customer table, while customer 2 has only 1 transaction but cannot be found. So the merge rate could be either 50% or 99%. Both scenarios make sense, they just have different semantics (one is the merge rate of transactions, the other one of bills). So maybe this could also be an argument why it should not be commutative?
What do you think?

@FRosner I understand your point. Reading again the original request by @zhdchen, I understand it as a request for a commutative implementation which would/should return 50% in your example. This is what I would also implement. We could also print both versions, because I agree that one could also be interested in the second number (99%).

Makes sense to me @bkomboz. I will write the tests this weekend and I think we should implement it the 50%-way. But it needs to be documented well. I'll update you once the tests are implemented and we'll see whether the current implementation works :)

@frosner: Alright, thanks. I hope it works. ;-)

Makes sense to me @bkomboz. I will write the tests this weekend and I
think we should implement it the 50%-way. But it needs to be
documented well. I'll update you once the tests are implemented and
we'll see whether the current implementation works :)

Reply to this email directly or view it on GitHub.*

@bkomboz I pushed a new proposal. I changed the name of "merge rate" to "unmatched keys percentage", because this seems to be the most reasonable to me when I want to have a weak foreign key check.
However, the number is computed based on the distinct complete rows, not distinct keys.
Example
Base Table

Column 1
Column 2

1
a

1
b

2
c

Reference Table

Column 1
Column 2

1
test1

2
test2

Should the "merge rate" based on Column 1 be 50% or 67% in this case?

authors: FRosner bkomboz zhdchen


text:
Change the default effect to be Tot and namespace insensitive

The following code
module Bug

let st (h:Type) (a:Type) =
  h -> M (a * h)

val return_st : (h:Type) -> (a:Type) -> a -> st h a
let return_st h a x = fun s -> x, s

fails with
./Bug.fst(6,51-7,35) : Error
Expected a term of type "(h:Type -> a:Type -> uu___:a@0 -> (Bug.st h@2 a@1))";
got a function "(fun h a x s -> (Prims.Mktuple2 x@1 s@0))" (Function definition takes more arguments than expected from its annotated type)

However, if the module is renamed to start with FStar., the error does not occur and it verifies.

This is known behavior and is related to us planning on changing the default effects.
You can write ... a -> Tot (st h a)

Ah, thanks! Should I close this then?

Previous discussions of this also happened in https://github.com/FStarLang/FStar/issues/581#issuecomment-233161328

And here is one more instance of problems with out current defaults #623

@nikswamy just fixed this

authors: catalin-hritcu mtzguido nikswamy

repo: FStarLang/FStar


text:
How to add diferent prefix but compile in one file?

I would like create different prefix for svg located in different directories, but at the end all should be compile in one file. Is this possible??
thanks

Would running it twice work? Once with the directory specific prefixes and then again (on what came out of that) with no prefix to get it into one file?
btw: I haven't tested this, nor do I have anything to do with the project

authors: CJStroud barcia

repo: FWeinb/grunt-svgstore


text:
Regions extracted using same bounding box from BigBrain histology and isocortex segmentation are not aligned

Given a bounding box, I tried to extract a region from the BigBrain histological space and the corresponding isocortex segmentation.
Since I used the same bounding box for both, I would expect the resulting volumes to be aligned (up to the precision of the cortex segmentation), but they are not.
This is the code I used:
import numpy as np
import brainscapes as bs
from nilearn import plotting
from cloudvolume import Bbox

bb_img = bs.bigbrain.BigBrainVolume(bs.spaces.BIG_BRAIN_HISTOLOGY.url)

# Define two points in BigBrain space
p0 = np.array((-3.979, -61.256, 3.906))
p1 = np.array((5.863, -55.356, -2.487))

def mm_to_vox(p0, p1, img, mip):
    # Bounding box needs to be defined in voxel space, so we need to apply the inverse affine matrix to the points
    inv_aff = np.linalg.inv(img.affine(mip))
    p0_vox = np.dot(inv_aff[:3, :3], p0) + inv_aff[:3, -1]
    p1_vox = np.dot(inv_aff[:3, :3], p1) + inv_aff[:3, -1]
    return p0_vox, p1_vox

# Read region from BigBrain
mip = 0
p0_vox, p1_vox = mm_to_vox(p0, p1, img=bb_img, mip=mip)
# Define bounding box
bbox = Bbox(p0_vox, p1_vox)
img = bb_img.Image(clip=bbox, mip=mip, force=True)

mask_url = "https://neuroglancer.humanbrainproject.eu/precomputed/BigBrainRelease.2015/classif/"
mask_img = bs.bigbrain.BigBrainVolume(mask_url)

# Bounding box needs to be redefined, as mask_img has different voxel space
p0_vox, p1_vox = mm_to_vox(p0, p1, img=mask_img, mip=mip)
# Define bounding box
bbox = Bbox(p0_vox, p1_vox)
mask = mask_img.Image(clip=bbox, mip=mip, force=True)

# Plot on top of each other. I would expect these images to be aligned, since I used the same bounding box, but they are not.
plotting.view_img(mask,
                  bg_img=img,
                  cmap="gray",
                  vim=0,
                  vmax=255,
                  resampling_interpolation="nearest",
                  symmetric_cmap=False)

I could imagine that there is an issue with how the bounding box coordiantes are rounded internally to match to the voxel space.

After reviewing this issue in detail with @ch-schiffer , we verified that this is an error in the metadata of the custom neuroglancer URL given in the bug description. The error will not occur when using curated siibra templates and masks. we will cleanup  unused metadata on the neuroglancer sites  to avoid this pitfall in teh future.

authors: dickscheid marcenko