text:
[$1000] Chat - A line break is resulted from pasting quote message

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

Action Performed:

Go to staging.new.expensify.com
Go to any chat with quote message
Copy the quote message
Paste the quote message in the composer

Expected Result:
There is no extra space or line break from pasting the quote message
Actual Result:
A line break is resulted from pasting the quote message
Workaround:
Unknown
Platforms:

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

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

Version Number: 1.3.27.4
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/78819774/e89b0099-cae8-4f07-b479-5b7199c2d699
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~018cc9d1380c77d6b3
Upwork Job ID: 1668901682244857856
Last Price Increase: 2023-06-14

Proposal
Please re-state the problem that we are trying to solve in this issue.
A line break is resulted from pasting quote message.
What is the root cause of that problem?
For pasting HTML, we use expensify-common -
https://github.com/Expensify/App/blob/d7c45a2e8e776f345f566f0cf1ae6d08f7c2e8a0/src/components/Composer/index.js#L280-L283
In expensify-common quote rule for htmlToMarkdown, we add new line at the beginning and end of the return value here -
https://github.com/Expensify/expensify-common/blob/9dfabe1de4213b0fd60ae3aa6a57012dd6545c72/lib/ExpensiMark.js#L289-L299
return `\n${resultString}\n`;

What changes do you think we should make in order to solve the problem?
Remove \n from beginning and end of return value to make line 299 in expensify-common -
return `${resultString}`;

What alternative solutions did you explore? (Optional)
NA

Proposal
Please re-state the problem that we are trying to solve in this issue.
A line break is resulted from pasting quote message.
What is the root cause of that problem?
Copying a quote comment, like
> test

save following html
<meta charset='utf-8'>

<comment>
test
</comment>

to clipboard, see
https://github.com/Expensify/App/blob/0a471b016d9b36c986a81680ef2518d2ae749937/src/components/CopySelectionHelper.js#L40
Pasting into composer converts the above html to following markdown
> test

See quote-html-to-markdown rule translates html piece

test

to text
> test

And the ending line break is removed in method replaceBlockElementWithNewLine when stripping
 tags. That's in the composer we get
> test

Instead of
> test

What changes do you think we should make in order to solve the problem?
As changing the quote-html-to-markdown rule will break exiting unit test cases of Expensify-common, so I think we can fix this issue in App codebase.
To fix this issue, I think we can just trim the result of parser.htmlToMarkdown(html) in method handlePastedHTML
https://github.com/Expensify/App/blob/0a471b016d9b36c986a81680ef2518d2ae749937/src/components/Composer/index.js#L279-L284
What alternative solutions did you explore? (Optional)
N/A

Weird, I wonder if this is a regression.
I see this happening and so it's reproducible:

After sending the message though, it doesn't show the line breaks:

@conorpendergrast I don't think it is a regression because the code I  have specified as root cause in my proposal is from 2 years ago but I am also skeptical as to why it went unnoticed for such a long time (if it really isn't a regression).

@Nikhil-Vats @eh2077 Hey guys! The issue exists inside expensify-common and should be fixed inside it, we should avoid workarounds here. BTW i checked out some old branch and saw the same issue with empty line above and below. The last changes were done for quotes around 2 weeks ago. But it's not really influence on this bug - still see the same on old branches.

@narefyev91 my change is only in Expensify commons not in this repo and it is not a workaround.

@conorpendergrast let's assign @Nikhil-Vats to this ticket

Nice! Assigned @Nikhil-Vats and sent contract in Upwork.
@narefyev91 I haven't hired you through Upwork, as you're a Callstacker! If that's wrong, please let me know

Thanks for assigning me this job. I will have the PR ready for review within 24 hours.

Proposal looks good to me

PROPOSAL
I solved this problem using the onPaste event, so when this event is called I do event.preventDefault() and then I take the pasted value and delete the first and last newline, so I solve the problem if it is copied from quote and it is additionally solved if it is copied from another place.
onPaste={(event) => {                             event.preventDefault();                             const pastedText = event.clipboardData.getData('text').trim();                             event.target.value += ${pastedText}.trim();                            }}

Contributor details
Your Expensify account email: ristov.kiril@yahoo.com
Upwork Profile Link: https://www.upwork.com/freelancers/~0192324f7a1802b375

Contributor details
Your Expensify account email: marlon.lozano.dev@gmail.com
Upwork Profile Link: https://www.upwork.com/freelancers/~012d06c83909c7f4a9

@Nikhil-Vats I saw this one lie change as well. But when you posted the comment so I refrain to reiterate the same but doesn't mean I have to do everywhere.

@Nikhil-Vats Hey! Any updates for initial PR?

@narefyev91 It is taking more time than expected because the solution I proposed has regressions. Here's the detailed behaviour of what happens -

the extra line is added in composer before message only when message starts with a quote. eg -

> a quote message
a text message
_italics message_
> another quote
> empty line quote below
>
this doesn't end with a quote

the extra line is added in composer after message only when message ends with a quote. eg -

this starts with a text message
_italics message_
> another quote
> empty line quote below
>
> ends with a quote

So, when message starts and ends with a quote (or it is just a single line message which is a quote) then we have new lines in start and end. eg -

> start quote
you can also try this behaviour with just 1 line which is a quote
> end quote

My current solution has regressions because the new lines are needed when quotes are anywhere between the message like -
any message in any markdown like heading, etc. new line below

> quote

ending message after newline above

https://github.com/Expensify/expensify-common/blob/9dfabe1de4213b0fd60ae3aa6a57012dd6545c72/lib/ExpensiMark.js#L289-L299
return `\n${resultString}\n`;

So, if we simply remove the \n in the beginning and end it is going to trim some new lines that are needed. I am trying an alternate solution without any regression now but you can unassign me for the moment to get other contributors' inputs if you want.

@narefyev91 It is taking more time than expected because the solution I proposed has regressions. Here's the detailed behaviour of what happens -

the extra line is added in composer before message only when message starts with a quote. eg -

> a quote message
a text message
_italics message_
> another quote
> empty line quote below
>
this doesn't end with a quote

the extra line is added in composer after message only when message ends with a quote. eg -

this starts with a text message
_italics message_
> another quote
> empty line quote below
>
> ends with a quote

So, when message starts and ends with a quote (or it is just a single line message which is a quote) then we have new lines in start and end. eg -

> start quote
you can also try this behaviour with just 1 line which is a quote
> end quote

My current solution has regressions because the new lines are needed when quotes are anywhere between the message like -
any message in any markdown like heading, etc. new line below

> quote

ending message after newline above

https://github.com/Expensify/expensify-common/blob/9dfabe1de4213b0fd60ae3aa6a57012dd6545c72/lib/ExpensiMark.js#L289-L299
return `\n${resultString}\n`;

So, if we simply remove the \n in the beginning and end it is going to trim some new lines that are needed. I am trying an alternate solution without any regression now but you can unassign me for the moment to get other contributors' inputs if you want.

no worries - let's get it fix correctly and find solution which will work

Should it only be fixed if a quote  is copied?

I think that it should work in the same way for any html which we may copy and paste - no new lines should be added above and below

This will work only on Input that have this event

onChangeText={(text) => {
let newValue = text.replace(term, '');
// If newValue is > 1 then its pasted value, then replace that value with trim()
if (newValue.length > 1) {
text = text.replace(newValue, newValue.trim());
console.log(text);
}
onChange(text);
}}

@Nikhil-Vats @narefyev91 Are we still making progress on the solution here? Can I help with anything?

@Nikhil-Vats @narefyev91 Are we still making progress on the solution here? Can I help with anything?

@conorpendergrast - we need to get some information from @Nikhil-Vats - are there any working fix, if not - we can open this again for proposals - but the root case was found correctly - only needs to get correct solution for this one

@conorpendergrast @narefyev91 Apologies for the delay, I haven't been able to find a solution that fixes the root cause. I think you should open this for proposals again and meanwhile, I will continue to find a solution for this and put a new proposal if I do find one.

Proposal
Updated proposal to let method replaceBlockElementWithNewLine handle line break for
 tag, like what we do for
 tag, see here.

Ok, two more proposals: https://github.com/Expensify/App/issues/20725#issuecomment-1602774224 and https://github.com/Expensify/App/issues/20725#issuecomment-1590344432

@eh2077 can you please provide a video how it's working now with your changes?

@narefyev91 Sure! Here's the demo video FYI
https://github.com/Expensify/App/assets/117511920/eb881d21-e8f5-4bf3-8bb1-e6686e525c10
I verified that the solution to use method replaceBlockElementWithNewLine won't break existing unit test cases of expensify-common repo. We only need to correct a few unit test cases by removing unwanted line breaks added by
return `\n${resultString}\n`;

@narefyev91 Sure! Here's the demo video FYI
Screen.Recording.2023-06-23.at.2.50.13.PM.mov
I verified that the solution to use method replaceBlockElementWithNewLine won't break existing unit test cases of expensify-common repo. We only need to correct a few unit test cases by removing unwanted line breaks added by
return `\n${resultString}\n`;

can you please make tests for all items listed here https://github.com/Expensify/App/issues/20725#issuecomment-1594542611 and post a video

Proposal of @eh2077 https://github.com/Expensify/App/issues/20725#issuecomment-1590344432 looks good to me, it's fixed root case of the issue and based on the test - working as expected
🎀 👀 🎀 C+ reviewed

@narefyev91 Can I request you to review my alternate solution.
I know it's inspired from his solution but his solution isn't complete for all test cases.

Yes i saw that most of the changes is the same as proposed @eh2077 - the only difference that you change regExp - if you are saying that his solution isn't complete for all test cases. - can you maybe show on a video what do you mean, please.

I think the minor issue will be able to be solved in the PR preparing or reviewing stage.

But I spent my time to find the issue and my solution does cover it.
The original issue itself minor then. If we consider line break removal as minor

I don't think it's your solution as it's literally same as my proposal. It'll be easy to fix the minor issue when preparing the PR as the issue is about copy and pasting quotes. Thanks for the discussion and I think you can have a look at other open issues.

@deetergp please check this conversation for decision https://expensify.slack.com/archives/C02NK2DQWUX/p1687781331427029

This was double-assigned to an engineer, so unassigning @deetergp in favour of @iwiznia (who was already assigned). Ionatan will also check in on the thread and we'll come back to this issue with a decision. Thanks for holding, all

PR will be ready by the end of today.

No? We only pay to the contributor we hire.

@eh2077 @narefyev91 Could you take a look at this somewhat similar issue and see if the fix here would resolve that too?
https://github.com/Expensify/App/issues/21903

@conorpendergrast yes it's the same issue and should be fixed based on opened PR

Thanks for confirming!

Oh, the PR is under review. Marking as such!

Ah, I withdrew the initial contract and re-sent to @eh2077

Payment made to @eh2077. Final step is the checklist for @narefyev91 to complete, please!

The PR that introduced the bug has been identified - it was fully new requirements and fixes to make it working during pasting - i can say that those code changes fix any regression from someone - it was fully missed implementation
The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment - no comments
A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion - no discussions
Determine if we should create a regression test for this bug - in case that it's not a regression - we are good to not have any steps here

authors: Nikhil-Vats conorpendergrast eh2077 iwiznia lanitochka17 marlon-lozano narefyev91 ristovkiril spcheema


text:
[$500] New chat - Default avatar does not match for new chat page and for chat page

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

Action Performed:

Open ND
Click on FAB > new chat > paste an email and start a chat with that contact
Click on FAB again and new chat
Paste the email you started a chat with earlier
Compare the default avatar you see on the new chat page with the chat you started with

Expected Result:
Both default avatars should be the same
Actual Result:
Different default avatars are seen
Workaround:
Unknown
Platforms:

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

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number:  v1.3.57-5
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/115492554/424a18b3-3a74-4213-a6cf-f7c3823d9934
https://github.com/Expensify/App/assets/115492554/cdf2199e-84ee-4ef7-b244-c6113818a3f5
Expensify/Expensify Issue URL:
Issue reported by: @Nathan-Mulugeta
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1692042235315439
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0115124794a3be899c
Upwork Job ID: 1704780350206033920
Last Price Increase: 2023-09-21

I believe this has the same root cause as https://github.com/Expensify/App/issues/25889

Thanks @luacmartins. Let's put this on hold til https://github.com/Expensify/App/issues/25889 is merged to see if that resolves it.

Still holding for https://github.com/Expensify/App/issues/25889

@stephanieelliott the PR for https://github.com/Expensify/App/issues/25889 was deployed to prod last week. Can we retest this and make sure it's not happening anymore?

@luacmartins  I just retested this and it has not been fixed.

@tienifr
Isn't this comment a problem?
[```

Proposal
Please re-state the problem that we are trying to solve in this issue.
New chat - Default avatar does not match for new chat page and for chat page
What is the root cause of that problem?
When we paste the recipient email in the first time, it creates an optimistic account with a specific ID and avatar.
By the time it is resolved from the backend, accountID for the recipient email is updated, thus updates the avatar as well.
https://github.com/Expensify/App/blob/ee023d8ab36dd722a465c89bf4edff1b8e79aadf/src/libs/actions/Report.js#L496-L502
In this case, we have 2 accounts with different accountIDs but the same email address.

What changes do you think we should make in order to solve the problem?
If we want to get the same avatar for the same email address (like Gravatar), I suggest that we take the avatar from the optimistic account creation as the reference. This is because it's the earliest data that is available to the user.
We can do so by trying to resolve accountID to the personalDetails that holds the same email address (the optimistic one), e.g.:
function getOptimisticAccountByID(accountID) {
    const matchedAccount = _.find(personalDetails, detail => detail.accountID === accountID)
    const optimisticAccount = _.find(personalDetails, detail => detail.displayName === matchedAccount?.displayName)
    return optimisticAccount
}

We can then resolve the appropriate avatar, e.g.:
const avatarAccount = PersonalDetailsUtils.getOptimisticAccountByID(accountID)
const avatarSource = UserUtils.getAvatar(avatarAccount?.avatar, avatarAccount?.accountID);

What alternative solutions did you explore? (Optional)
N/A

@robertKozik did you get a chance to look at the proposals above?

Yeah I'm on it 👀
@luacmartins Could you check the issue linked in the code comment provided here? II don't have access to it, and I'm unable to determine if it contains additional information that might be relevant to this issue.

That issue only considers personalDetails as options in OptionsListUtils.getOptions if they have logins set, since not all personalDetails objects have logins set (if they are anonymous)

bump @robertKozik

Hey @robertKozik are you able to prioritize this?

bumping @robertKozik

It's been a while since we've heard from @robertKozik, posting in Slack to see if we can get another C+ on this. https://expensify.slack.com/archives/C02NK2DQWUX/p1696381024475039

Taking this as C+

Hmm, is this still reproducible? I can't reproduce from my end

I still can't reproduce. The avatar updates correctly from my end. @stephanieelliott Can you try after loging out/in.
https://github.com/Expensify/App/assets/16493223/963b0b0d-6b6d-4760-aab9-28dbb24c7f91

I just retested this issue again and I can confirm this is no longer reproducible for me as well

Ok so it seems like this issue shared a root cause with another issue and that has been fixed. So I think we're good to close this issue. Thanks everyone!

source: gharchive/issue

authors: Nathan-Mulugeta izarutskaya luacmartins robertKozik s77rt salonikumawat28 stephanieelliott zukilover

repo: Expensify/App

license: MIT

license_type: permissive

license_source: github-api


text:
[$500] Web -  I accept checkbox is not aligned with errors

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

Action Performed:

Open the app
Open settings->workspaces->any workspaces-> bank account -> connect manually
Click on Continue
Observe that I accept checkbox is not aligned with errors and red dot on the page

Expected Result:
I accept checkbox should be aligned with errors red dot
Actual Result:
I accept checkbox is not aligned with errors red dot
Workaround:
Unknown
Platforms:

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

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.3.71.4
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation

Expensify/Expensify Issue URL:
Issue reported by:  @dhanashree-sawant
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1694958144361539
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~015553e32dfe1adcdf
Upwork Job ID: 1703830965747298304
Last Price Increase: 2023-09-18

Proposal
Please re-state the problem that we are trying to solve in this issue.
I accept checkbox is not aligned with errors
What is the root cause of that problem?
we have given padding: 2px style for check box, that padding pushes the checkbox a little to right and that's why we are seeing it on right.
What changes do you think we should make in order to solve the problem?
In order to tackle this issue we shall add new prop to CheckBoxWithLabel component - innerCheckBoxStyle that we will pass to CheckBox component via style prop.
In CheckBox component -
https://github.com/Expensify/App/blob/6be8fcac69aa11ff84baaae94d3ef1d495fe5123/src/components/Checkbox.js#L94
We need to change the order here (put styles to back)
and pass paddingLeft: 0px as innerCheckBoxStyle in BankAccountManualStep

What alternative solutions did you explore? (Optional)

?

Contributor details
Your Expensify account email: kunalsharma0553@gmail.com
Upwork Profile Link: https://www.upwork.com/freelancers/~0160b4a00c99ccd2c9

Proposal
Please re-state the problem that we are trying to solve in this issue.
I accept checkbox is not aligned with errors red dot
What is the root cause of that problem?
the checkbox has extra padding: 2px and on top of that we have too much margin left on the label wrapper style ml3
What changes do you think we should make in order to solve the problem?

remove padding: 2px from checkboxPressable
change ml3 in the PressableWithFeedback wrapperStyle to ml2

@mollfpr over to you to review!

Removing the padding: 2 doesn't feel right.

The padding is used to give a space between the checkbox and the outline.

So any proposal that change the padding of the checkbox will have a regression.

Proposal
Please re-state the problem that we are trying to solve in this issue.
Checkbox and Other error texts are not aligned
What is the root cause of that problem?
For now, checkbox text has 12px marginLeft and error checkbox has 8px marginLeft.
And also the checkbox has a width and height of 20px checkbox w/h, 2px focus padding, in total 24px but our <DotIndicator /> icon has 20px of width and height
What changes do you think we should make in order to solve the problem?
We can decrease the checkbox text to marginLeft: 8px or increase the error text to marginLeft: 12px
And, also we need to add a wrapper view to add padding: 2px to <DotIndicator /> wrapper view, https://github.com/Expensify/App/blob/7b02afd9191394f3ee20e900315f8d6aa3c445c7/src/components/FormHelpMessage.js#L43-L46
By this height/width of checkbox and Icon will be same 24px.
Change with
<View style={[styles.errorIconDefault]}> //padding: 2px
                    <Icon
                        src={Expensicons.DotIndicator}
                        fill={themeColors.danger}
                    />
</View>

[Result]

What alternative solutions did you explore? (Optional)
Adding padding to the Icon wrapper will make the Icon not aligned with the input field. Icon will have extra 2px padding. Instead we can add 4px of paddingRight to Icon wrapper view.
Or,
We can use ml4 for to add this extra padding as a margin to the next element.
https://github.com/Expensify/App/blob/7b02afd9191394f3ee20e900315f8d6aa3c445c7/src/components/FormHelpMessage.js#L48
Change ml2 to ml4

[Result]

Removing the padding: 2 doesn't feel right.

The padding is used to give a space between the checkbox and the outline.

So any proposal that change the padding of the checkbox will have a regression.

An alternative would be to change the label wrapper style from ml3 to ml1

Can we get a sense check from @shawnborton or @dannymcclain on what it should be?

Yup, agree with Danny here. The red dots also sit slightly inside of a 20x20 bounding box, so there is a bit of negative space between the dot shape and the outer box. The outer box in this case lines up with the key line shown above.

Cool, thanks for confirming ya'll!

Thanks, @dannymcclain, for the confirmation.
@ZhenjaHorbach @fabrianibrahim Please update it to your proposal so that I can review it easily.
@alifhaider I think we are good with the text gap, and adding new padding for the dot indicator will make the text move further away. Also, from Danny's comment here, the checkbox or other inputs should be sitting exactly on the yellow line, while currently, the checkbox is a few pixels far from the line.

@fabrianibrahim There's no need to post a new proposal. You can update your submission and ping it for review.

@fabrianibrahim There's no need to post a new proposal. You can update your submission and ping it for review.

updated proposal

@mollfpr can you review the updated proposals, please?

We did not set styles so that these elements would be on the same line

@ZhenjaHorbach Could you be more specific on the RCA? Which element is not following the other?

the label wrapper style has too much margin left ml3

@fabrianibrahim Please be more specific on the RCA. Do you mean the PressableWithFeedback on the CheckboxWithLabel component? I didn't find your solution is working.

@BhuvaneshPatil I think you got the RCA right, but the proposed solution is still not clear to me. Where innserCheckBoxStyle will be passed?

The reason I went with that approach is, if we add it here and it may cause regression at other places.
But if we want to change the CheckBoxLabel component altogether, we shall add that style to <CheckBox/> in CheckBoxLabel this.
Reason being CheckBox is being used as standalone component at other places as well. But CheckBoxWithLabel is used with forms where this issue is seen.

@BhuvaneshPatil Change the style from CheckboxWithLabel makes sense to me. Could you update your proposal with the above suggestion? I'll give my final thought to the proposal.

@mollfpr can you review please?

Sorry miss this issue! Doing the review now!

The proposal from @BhuvaneshPatil looks good to me! We are adding padding: 2px to the checkbox to resolve the issue with the highlight outline notice it here, and this issue only appears on the CheckboxWithLabel component.
🎀 👀 🎀 C+ reviewed!

My tardy review was the hold up on this one, I think it should qualify for for the speed bonus.

👋 @mollfpr checklist time, thanks!

[@mollfpr] The PR that introduced the bug has been identified. Link to the PR:

https://github.com/Expensify/App/pull/20997

[@mollfpr] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:

https://github.com/Expensify/App/pull/20997/files#r1363029235

[@mollfpr] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:

The regression step should be enough.

[@mollfpr] Determine if we should create a regression test for this bug.
[@mollfpr] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.

Go to workspaces
Open any workspace
Click on Bank Account
Connect manually
Click on text fields and then click outside (this is to show the red dot message)
Verify if the checkbox is aligned with the inputs
👍 or 👎

@trjExpensify Could you confirm the amount I requested in NewDot for this issue? Thanks!

Doing the payment summary for Mills first:

$750 to @BhuvaneshPatil for the fix & #urgency bonus
$750 to @mollfpr for C+ & #urgency bonus
$50 to @dhanashree-sawant for the bug report

$750 payment approved for @mollfpr based on summary above.

Okay.. as for the regression test. We have one for the connect bank account flow. I think the alignment of the checkboxes on the page is likely under the umbrella of visual design that would be expected to be found within the regression test.
That said, I'm curious if you think there's something in the PR checklist or forms.md that we could improve @mollfpr to better communicate our expectations for the checkboxContainer on forms given where this bug was introduced?

That said, I'm curious if you think there's something in the PR checklist or forms.md that we could improve

@trjExpensify It's a good point. I don't know why it's not come up to me 😅
We can have another checklist. For example:

[ ] If the PR modifies the form input styles:

[ ] All the inputs inside a form should be aligned with each other

Adding it in the FORMS.md might be easier to miss out.

I would also add to "Add the Design label so the Design team can review your changes" as well :)

Ohhhh, that's a neat idea. As this is the PR checklist for all PRs are you suggesting that for all or specific to Forms?

I was suggesting to add it as a checkbox below "If the PR modifies the form input styles:"

Any update @mollfpr?

Yes please, @mollfpr!

I'll prepare the PR soon!

@trjExpensify @deetergp The checklist update is ready https://github.com/Expensify/App/pull/30699

Nice, thanks for getting that up!

@mollfpr let's get that PR checklist update PR done! Then we can close this.

@mollfpr Can you check complete the checklist?

No need for the second checklist for that, it was a follow-up PR to update the PR checklist. Very meta. Closing now, thanks!

authors: BhuvaneshPatil JmillsExpensify alifhaider deetergp fabrianibrahim iamkunal9 kbecciv mollfpr shawnborton trjExpensify


text:
Chat – Duplicate emojis on reaction to message if change skin tone and press same emoji badge

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

Version Number: 1.3.81-5
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Go to https://staging.new.expensify.com/
Log in with any Gmail account
Navigate to a conversation that already has some messages
Click on the button to select an emoji to react the message
Select any emoji from the list
Change the skin tone
Select the same emoji from the list as in step 5

Expected Result:
The first emoji badge is dismissed
Actual Result:
New reaction button is displayed next to the reaction badge duplicate previously emoji
Workaround:
Unknown
Platforms:

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

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

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

Windows: Chrome

https://github.com/Expensify/App/assets/78819774/b3ed1c71-e6f0-4aee-a0be-31cb86cd3d81

View all open jobs on GitHub

Not a bug as slack also does the same thing.

I've run out of time and will have to test over the weekend.

I'm going to need to start a team discussion since I can replicate the experience. We need to discuss what's best or if we want to take a different approach.

Here is how this looks in Chat now:
On the left is my reply and on the right is the other person who reacted months ago.

I started a discussion here:
https://expensify.slack.com/archives/C03U7DCU4/p1697751157224439

authors: alexpensify jeet-dhandha lanitochka17


text:
[ECARD] MEDIUM: App, allow users to edit certain fields of ECard / Company Credit Card transactions

Also, prevent editing the amount for both ECard and CC transactions.
Coming from this slack convo: https://expensify.slack.com/archives/C05DWUDHVK7/p1699394971637599?thread_ts=1699300115.470319&cid=C05DWUDHVK7
https://github.com/Expensify/App/blob/5d45f0f6c86e97d4ae58ac167b6c162a610b817c/src/components/ReportActionItem/MoneyRequestView.js#L111
Update this check to include any transaction that has a cardID (both ECard transactions and Company Card transactions).

Off hold!

Closing as part of my PR for https://github.com/Expensify/App/issues/28836

authors: dylanexpensify grgia


text:
[payment due 9/6][$250] Avatar - Unable to choose profile avatar from library

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

Version Number: v9.0.26-1
Reproducible in staging?: Y
Reproducible in production?: N
Pending when validation PR https://github.com/Expensify/App/pull/47338
Email or phone of affected tester (no customers): applausetester+kh050806@applause.expensifail.com
Logs: https://stackoverflow.com/c/expensify/questions/4856
Issue reported by: Applause-Internal team
Action Performed:

Launch New Expensify app.
Go to Account settings > Profile.
Tap on the avatar.
Tap Choose from library.
Select a photo.
Tap on the app back button.
Tap on the avatar.
Tap Choose from library.

Expected Result:
User should be able to choose profile avatar from library.
Actual Result:
Nothing happens after tapping Choose from library.
Workaround:
Unknown
Platforms:

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

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

Screenshots/Videos
https://github.com/user-attachments/assets/91434dbd-82c8-40c6-82f2-97cdcfe28def

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01ca983c30cf1e2b4a
Upwork Job ID: 1829208880175339857
Last Price Increase: 2024-08-29
Automatic offers:

eh2077 | Reviewer | 103738968

Issue OwnerCurrent Issue Owner: @eh2077

Proposal
Please re-state the problem that we are trying to solve in this issue.
The option to select image doesn't show after selecting Upload photo
What is the root cause of that problem?
The profile page is wrapped with MenuItemGroup.
https://github.com/Expensify/App/blob/c8679187cd766270e1f8485180a16429403372d0/src/pages/settings/Profile/ProfilePage.tsx#L147-L158
MenuItemGroup pass down a context of single execution and wait for navigate function.
https://github.com/Expensify/App/blob/c8679187cd766270e1f8485180a16429403372d0/src/components/MenuItemGroup.tsx#L22-L31
When we press Upload photo, it will call single execution and wait for navigate. Single execution will set the isExecuting state to true
https://github.com/Expensify/App/blob/c8679187cd766270e1f8485180a16429403372d0/src/components/MenuItem.tsx#L531-L540
which will disable the menu item.
https://github.com/Expensify/App/blob/c8679187cd766270e1f8485180a16429403372d0/src/components/MenuItem.tsx#L583
It will be enabled back once the promise of the action passed to singleExecution is resolved.
https://github.com/Expensify/App/blob/c8679187cd766270e1f8485180a16429403372d0/src/hooks/useSingleExecution/index.native.ts#L26-L33
In our case, the promise is the waitForNavigate,
https://github.com/Expensify/App/blob/c8679187cd766270e1f8485180a16429403372d0/src/hooks/useWaitForNavigation.ts#L27-L31
and it will be resolved once the blur event is triggered. But since there is no navigation happening, the promise is never resolved.
This issue happens after the copilot PR where we move the profile image to profile page.
What changes do you think we should make in order to solve the problem?

We can disable the single execution + wait for navigate thing for the profile image picker by wrapping it with another MenuItemGroup and pass shouldUseSingleExecution as false. This way, the menu item inside the popover menu won't use the single execution logic and will behave like before the copilot PR.
<MenuItemGroup shouldUseSingleExecution={false}>
    <AvatarWithImagePicker ...

https://github.com/Expensify/App/blob/c8679187cd766270e1f8485180a16429403372d0/src/pages/settings/Profile/ProfilePage.tsx#L157-L158
Or we can do it the hard way by accepting a new props to disable either single execution or wait for navigate or both.
What alternative solutions did you explore? (Optional)

PR is ready
cc: @eh2077

Since I reviewed the PR, can I be assigned here?

Looks like PR was deployed to production on 8/30. Payment day is 9/6. I'm going to be ooo so going to add a BZ teammate to issue payment.
Payouts due:

[ ] Contributor: $250 @bernhardoj

[ ] Contributor+: $250 @allroundexperts

I think both of you are paid in NewDot? (if not please accept these Upwork offers)

Do we need a regression test?

Yes, I'll request in ND.

I don't think we need a regression test for this.

Payment summary above closing as both are paid via ND.

Requested in ND.

$250 approved for @bernhardoj

authors: Christinadobrzyn JmillsExpensify allroundexperts bernhardoj izarutskaya zanyrenney


text:
Non-Admins Added to Workspace Chat Without Explicit Invitation on NewDot Coffee Workspace (ReportID 5966879180236894)

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

Version Number:
Reproducible in staging?: Needs Reproduction
Reproducible in production?: Needs Reproduction
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @puneetlath
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1726079628515279
Action Performed:

Launch the application and login
Observe LHN

Expected Result:
LHN displayed as per preference mode
Actual Result:
Seeing self and others added in NewDot coffee workspace (reportID 5966879180236894) as Non admins and no invitation for the same
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
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

Add any screenshot/video evidence

View all open jobs on GitHub

This has been labelled "Needs Reproduction". Follow the steps here: https://stackoverflowteams.com/c/expensify/questions/16989

I wasn't able to reproduce (@m-natarajan could you fill in the steps in the OP with more detail from the slack thread?)
Regardless it seems like @Beamanator is investigating

bumped the slack thread: https://expensify.slack.com/archives/C049HHMV9SM/p1726846544917009?thread_ts=1726079628.515279&cid=C049HHMV9SM
@alexpensify I am going out on parental leave and reassigning out my issues. We are waiting for a response on the slack thread (linked above) for this one.

Assigning myself to help look into this, but i may not prioritize investigation until we have exact reproduction steps - cc @garrettmknight in case you have any ideas :D - also this does seem like a #wave-control issue

@Beamanator - should we move this to Weekly since we need better reproduction steps?

Ooh ya that's def a good idea 👍

My hunch is that this example is based on changing approval workflows and failing to remove former approvers when doing so, but I'd agree that without a better idea of what caused it we'd just be poking around in the dark.

No update here

Heads up, I will be offline until Tuesday, October 22, 2024, and will not actively watch over this GitHub during that period.
If this GitHub requires an urgent update, please ask for help in the #expensify-open-source Slack Room. If the inquiry can wait, I'll review it when I return online.

Still missing repo steps here

@Beamanator at this point, should we close this GH?
Heads up, I will be offline until Tuesday, November 12, 2024, and will not actively watch over this GitHub during that period.

Yeah it has almost been 2 months w/out reproduction steps, I think it makes sense to close this, we can always reopen if this happens again

authors: Beamanator MelvinBot alexpensify garrettmknight m-natarajan miljakljajic


text:
Test issue

Testing https://github.com/Expensify/Web-Expensify/pull/31799

Triggered auto assignment to @SofiedeVreese (External), see https://stackoverflow.com/c/expensify/questions/8582 for more details.

Oops, this didn't work.

authors: HorusGoul MelvinBot


text:
[TS migration] Migrate 'SettingsProfileDetails' page to TypeScript

Details

Fixed Issues

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

Login into app
Go to Settings  > Profile
Verify that Legal name page is working
Verify that Date of Birth Page is working
Verify that Address Page is working

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

Offline tests

QA Steps

Login into app
Go to Settings > Profile > Personal Details
Verify that Legal name page is working
Verify that Date of Birth Page is working
Verify that Address Page is working

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

PR Author Checklist

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

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] 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)
[x] 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).

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

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

[x] 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)
[x] I followed proper code patterns (see Reviewing the code)

[x] 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)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] 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.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] 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:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] 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 approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] 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.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] 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)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] 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
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] 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

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

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

[x] 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.
[x] 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)
[x] 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.
[x] 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.
[x] If the PR modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label so the design team can review the changes.

[x] 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.
[x] 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
https://github.com/Expensify/App/assets/25230417/92a963f4-a975-4983-81ec-0a75bd48c6c8

Android: mWeb Chrome
https://github.com/Expensify/App/assets/25230417/fb0cba55-ae27-41b6-98f4-da2dd0dcfe71

iOS: Native
https://github.com/Expensify/App/assets/25230417/016aad85-1c5b-429d-8ac1-2f19e097c861

iOS: mWeb Safari
https://github.com/Expensify/App/assets/25230417/b061c05c-d252-4851-a8bd-223f84019dec

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/25230417/9268e57a-160e-4a45-b922-035b6501e386

MacOS: Desktop
https://github.com/Expensify/App/assets/25230417/66b913c0-5341-44f4-94af-bc4ba881bd27

@situchan @tylerkaraszewski Reopening this PR https://github.com/Expensify/App/pull/35307

@getusha I will be re-reviewing this (I was C+ in https://github.com/Expensify/App/pull/35307 which was reverted due to TS error)

@kubabutkiewicz please run prettier

@kubabutkiewicz can you share diff from previous PR?
Only GetPhysicalCardUtils.ts changes removal?

🚀 Deployed to staging by https://github.com/tylerkaraszewski in version: 1.4.46-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/roryabraham in version: 1.4.46-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

source: gharchive/pull-request

authors: OSBotify kubabutkiewicz situchan


text:
Fix the incorrect payer name on the non-reimbursable transaction

Details

Change the logic on defining the payer name for a non-reimbursable transaction to show the requestor name instead of the manager/approver name of the workspace.
Fixed Issues

$ https://github.com/Expensify/App/issues/36186
PROPOSAL: https://github.com/Expensify/App/issues/36186#issuecomment-1966455435
Tests

Contributor can't get access to the Expensify Card transaction, so instead we can create a manual request data and merge the data with the dummy Expensify card data via the console. For speed things up, you can put the above code in the component (e.g., ReportScreen).
Onyx.merge('cardList',
{
  4: {
    "bank": "Expensify Card",
    "lastFourPAN": 3458,
  }
}
);

Onyx.merge('transactions_<TRANSACTIONID>', {amount: 1000, currency: 'USD', cardID: 4,  modifiedMerchant: null, merchant: "Test ECard Transaction", mccGroup: "Airlines", status:"Posted", hasEReceipt: true, receipt: {}, reimbursable: false });

Login with an account that an employee of a collect policy
Go to the workspace report and create a manual request
Take a note on the transactionID for the manual request you just created
Merge the dummy data with the transactionID
Verify the text on 3 places below correctly showing <requestor's name> spent

5a. Alternate text on LHN

5b. Report preview

5c. Money report preview header

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

Offline tests

Same as the tests.
QA Steps

Log in to your account with the Expensify Card transaction (tester@applausecard.expensifail.com)
Go to the workspace chat with the transaction (https://staging.new.expensify.com/r/4612388815642526. If the transaction is settled, please create another Expensify Card transaction)
Verify the text on 3 places below correctly showing <requestor's name> spent

3a. Alternate text on LHN

3b. Report preview

3c. Money report preview header

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

PR Author Checklist

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

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] 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)
[x] 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).

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

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

[x] 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)
[x] I followed proper code patterns (see Reviewing the code)

[x] 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)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] 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.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] 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:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] 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 approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] 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.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] 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)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] 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
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] 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

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

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

[x] 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.
[x] 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)
[x] 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.
[x] 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.
[x] If the PR modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label so the design team can review the changes.

[x] 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.
[x] 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

Friendly bump @grgia

@mollfpr could you merge main?

Fixed the conflict!

Thank you @mollfpr, I'm just going to have a second pair of eyes take a look at the adhoc build before I merge :)

Hmm how do I use the links here? It seems I don't have access

I tested a card transaction on staging / reported on a free workspace and I see the correct person in the title ("Kevin"). Is that all we need to do to confirm this is working as expected?

not sure what happened there

: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.

authors: OSBotify grgia kevinksullivan mollfpr


text:
step 13 add package

Add to manifest.json
"io.extendreality.tilia.interactions.interactables.unity": "1.4.0",
(or whichever the newest version)

You don't need to do this because it's already covered in step 12 by
...now let's just set up our Interactors by following the Adding An Interactor how-to guide.
The Adding An Interactor has a prerequisite of adding that package.

authors: rvegele thestonefox


text:
add vagrant harness to jenkins to support remote auth tests

vagrantfile exists, it just needs to be wired in to jenkins

closing this because this needs to move to openstack. vagrant is not scalable for this

license_source: bigquery


text:
edits to client.prefs aren't taken into account.

say you started FAF for the first time. you logged in then you closed it.
you then edited the .faforever/client.prefs to the appropriate values for your game's location.
when you start FAF back up the fields are still empty/haven't changed.
where else are these values supposed to be changed.
may be a linux-specific issue.

The values are not supposed to be changed at all in the client.prefs. You are suppossed to set them in settings or else where. But when you do it should actually have an effect. Tell me exactly what u changed and what u expect it to do...

well I'd like for editing FAF settings to be scriptable as a part of my install script.

Sorry but from the description u provide i can not see what u are doing nor what the issue is

ok so I'd like for a non-human entity, a bot, a machine, a script, that is not even starting FAF, to simply via modification of files, edit FAF's setting's.
and then when the actual human starts FAF, FAF will have said settings in it's settings page currently being applied.
I've edited the file $HOME/.faforever/client.prefs while FAF was closed then opened up FAF to find the settings not applied in the settings window of FAF.
I grasp from this that editing $HOME/.faforever/client.prefs is the wrong way to script the editing of FAF's settings.
my question is what is the right way to edit FAF's settings?
the context is this : https://github.com/tatsujb/installFAFscript

I think it is the right way to do it ;) maybe on linux it is the wrong location up that is more a question for @Geosearchef

yeah I think it actually applies but what's shown in the GUI isn't ncessarilly loaded from that file, just set to it. it probably loads from .com.faforever.client.FafClientApplication I'll test and see if edited values actually apply even if they don't show when I have the time. if that's the case then we can close this as for the purposes of my install script it would be sufficient.

Ok so values are written as soon as you close the settings window. You should definetly only write to that file if the client is closed otherwise it might be over written or not loaded

I'm having to run FAF to gen the file loop a wait until prefs has a "username" value, then kill faf, edit the values and immediately re-run to obtain the desired effect. a bit hacky
is it reasonable to be asking of you guys/Downlord the ability to pipe run args to faf, args including most of the important values in this prefs file?
would seem neat to me. kinda like how I can script logging in to steam and downloading and running this and that.
...I wager this is a tall ask.
In any event you were right I can sorta get the behavior I want from altering that file.

repo: FAForever/downlords-faf-client


text:
Cuda accelerated tonemap Filter

Initial idea of using POCL as a cuda translation layer isnt viable because of POCL not working with image formats on cuda.
Currently reaching out to Yasroslav Pogrebnyak, the developer of the VF_overlay_cuda ffmpeg filter.
Reaching out to nyanmisaka. Seem's to have a lot of experience working on FFmpeg filters and frankly knows more than I do.
In addition to this, collaborating with Ed Borasky to confirm function on jetson platforms.
vf_tonemap_cuda.txt
(renamed from .c to .txt to make github happy )
Missing: tonemap.cu with proper kernel side code. this is easy once I know how to properly call the cuda kernel side from the ffmpeg side.
Standard stride blocks should work, define total amount of blocks using height. most resolution will be 16:9, so by using height parameter, we have a higher chance of hitting divisible by 3 cleanly, so we can take advantage of cuda language data structure.
Other option is taking the R G and B value of a given pixel which is guaranteed to be *3. this might also help for other tone mapping algorithms that use relative offset from local peak luma as input for tonemapping output

major bodge, but the new version of /cuda_filter/vf_scale_cuda.cu should be able to do rein hard tonemapping. the below is an extract from the ffmpeg devel mailing list relevant to this:
For ease of developement, I've kept everything the same including the name of the filter, only changing the function within the file. This is very much a bodge to facilitate development.  As such, for testing, this file should replace the vf_scale_cuda.cu file in ffmpeg/libavfilter/vf_scale_cuda.cu
FFmpeg should then be compiled as standard for cuda filters and should be called as you would call the standard vf_scale_cuda filter.
The command would be similar to:
ffmpeg -y -vsync 0 -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 -vf scale_cuda=Source_width:Source_Height -c:a copy -c:v h264_nvenc -b:v 5M output.mp4
The above should decode in hardware, tonemap the frame on gpu and re-encode in hardware at a given bitrate.

major bodge, but the new version of /cuda_filter/vf_scale_cuda.cu should be able to do rein hard tonemapping. the below is an extract from the ffmpeg devel mailing list relevant to this:
For ease of developement, I've kept everything the same including the name of the filter, only changing the function within the file. This is very much a bodge to facilitate development.  As such, for testing, this file should replace the vf_scale_cuda.cu file in ffmpeg/libavfilter/vf_scale_cuda.cu
FFmpeg should then be compiled as standard for cuda filters and should be called as you would call the standard vf_scale_cuda filter.
The command would be similar to:
ffmpeg -y -vsync 0 -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 -vf scale_cuda=Source_width:Source_Height -c:a copy -c:v h264_nvenc -b:v 5M output.mp4
The above should decode in hardware, tonemap the frame on gpu and re-encode in hardware at a given bitrate.

Used overlay filter as base instead of scale- seems much better for my purposes. reach out to @znmeb to ask for a test on his side.
syntax will be:
ffmpeg -i INPUT -i INPUT -filter_complex 'hwupload_cuda,overlay_cuda' OUTPUT
This is a bodge for now, since it's only modifying the output of the cuda kernel itself
to use it, replace ffmpeg/libavfilter/vf_overlay_cuda.cu with this file: https://github.com/Camofelix/Jetson_ffmpeg_trancode_cluster/blob/master/cuda_filter/vf_overlay_cuda.cu
It compiles fine, but can't test without a nano

Used overlay filter as base instead of scale- seems much better for my purposes. reach out to @znmeb to ask for a test on his side.
syntax will be:
ffmpeg -i INPUT -i INPUT -filter_complex 'hwupload_cuda,overlay_cuda' OUTPUT
This is a bodge for now, since it's only modifying the output of the cuda kernel itself
to use it, replace ffmpeg/libavfilter/vf_overlay_cuda.cu with this file: https://github.com/Camofelix/Jetson_ffmpeg_trancode_cluster/blob/master/cuda_filter/vf_overlay_cuda.cu
It compiles fine, but can't test without a nano

Further update:
Currently concerned about if the jetson will be able to use the standard library of Cuda filters in tandem with decoding and encoding, ideally without making too many memory copies.

Further update:
Currently concerned about if the jetson will be able to use the standard library of Cuda filters in tandem with decoding and encoding, ideally without making too many memory copies.

In my test, opencl is necessary.
cuda accelerated filter is usable.

you just need to

git clone nv-codec-headers
build ffmpeg with --enable-cuda --enable-cuda-nvcc
enjoy
however, the only usable one is scale_cuda😅
maybe i need to backport some features.

you just need to

git clone nv-codec-headers

build ffmpeg with --enable-cuda --enable-cuda-nvcc

enjoy

however, the only usable filters is scale_cuda and yadif_cuda😅
maybe i need to backport some features. like tonemap_cuda etc.

I haven't looked at this project in a while, been working on other GPGPUrelated things.
Have they ported the cuda filters to work on the nano?

I don't know. I just test and finally build successfully.

The speed......😅
h264 1080p -> h265 720p

Command:
sudo ffmpeg -init_hw_device cuda=gpu:0.0 -filter_hw_device gpu -c:v h264_nvmpi -i /mnt/source/Paprika.2006.JAPANESE.1080p.BluRay.x264.DTS-FGT.mkv -vf "format=yuv420p,hwupload,scale_cuda=1280:720,hwdownload,format=yuv420p" -c:v hevc_nvmpi -b:v 6000k -preset medium -profile:v high -acodec ac3 output.mp4

Also what i should say is that my device is throttled due to low current and voltage.😅 The power is utter garbage.

cuvid is unusable because lacking of libnvcuvid.so.1
Due to the special architecture of jetson(?) The things are quite different.

authors: AnterCreeper Camofelix FCLC


text:
Event ID 9009 — IIS Application Host History Configuration

Event ID 9009 — IIS Application Host History Configuration
Updated: January 20, 2010
Applies To: Windows Server 2008
The ApplicationHost Helper Service (AppHostSvc) maintains a history of Internet Information Services (IIS) configuration by saving the ApplicationHost.config file to separate configuration history subdirectories. If you make a mistake when you modify the ApplicationHost.config file, you can restore an earlier version of the file from a configuration history subdirectory by copying the earlier version into the %Windir%\system32\inetsrv\config directory. You can specify the frequency with which AppHostSvc checks for configuration changes, the path of the directory that contains the subdirectories, and how many subdirectories to keep.
By default, the Application Host Helper Service checks for changes in the ApplicationHost.config file every two minutes. If it detects that the configuration has changed, it creates a backup. The default location for the configuration history files is %SystemDrive%\inetpub\history. AppHostSvc creates one subdirectory under this directory for each configuration file backup. By default, the maximum number of history subdirectories is 10. If the number of configuration history subdirectories reaches the maximum specified, the oldest subdirectory is deleted.
AppHostSvc is a runtime-independent service that does not require the Windows Process Activation Service (WAS) or the World Wide Web Publishing Service (W3SVC) to operate. AppHostSvc does not depend on any other service and its startup type is Automatic. If the ApplicationHost Helper Service is stopped, the configuration history feature will not work.
Event Details

Product:
Internet Information Services

ID:
9009

Source:
Microsoft-Windows-IIS-APPHOSTSVC

Version:
7.0

Symbolic Name:
APPHOSTSVC_HISTORY_CANT_DELETE_DIRECTORY_WARNING

Message:
The Application Host Helper Service encountered an error trying to delete the history directory ‘%1’. The directory will be skipped and ignored. Note that the directory may still get deleted in the future if the service restarts. The data field contains the error number.

Resolve
Stop and restart AppHostSvc
If the Application Host Helper Service (AppHostSvc) cannot delete a history directory, it will try to do so the next time that the service starts. Normally you do not have to take any action when this occurs. However, if the problem persists, you can stop and restart the service manually.
To perform this procedure, you must have membership in Administrators, or you must have been delegated the appropriate authority.
To stop and restart the Application Host Helper Service:

Open an elevated Command Prompt window. Click Start, point to All Programs, click Accessories, right-click Command Prompt, and then click Run as administrator.
At the command prompt, type net stop apphostsvc.
At the command prompt, type net start apphostsvc.
Verify

To verify the configuration of the AppHostSvc configuration history backup feature, you can do the following:

Use notepad to examine the current configHistory section settings in the ApplicationHost.config file.
Use the Appcmd.exe command-line administration utility to view the configHistory section in the ApplicationHost.config file.
To perform these procedures, you must have membership in Administrators, or you must have been delegated the appropriate authority.

View the configHistory section by using notepad
To view the configHistory section by using notepad:

Open an elevated Command Prompt window. Click Start, point to All Programs, click Accessories, right-click Command Prompt, and then click Run as administrator.
Type cd %Windir%\system32\inetsrv\config.
Type notepad ApplicationHost.config.
In notepad, search for the configHistory section under system.applicationHost. The contents should resemble the following:

<system.applicationHost>

    <configHistory enabled=”true” path=”%SystemDrive%\inetpub\history” maxHistories=”10″ period=”00:02:00″ />

</system.applicationHost>

View the configHistory section by using Appcmd.exe
To view the configHistory section by using Appcmd.exe:

Open an elevated Command Prompt window. Click Start, point to All Programs, click Accessories, right-click Command Prompt, and then click Run as administrator.
Type cd %Windir%\system32\inetsrv.
Type appcmd list config “Default Web Site” /section:configHistory /config:*. (This example uses the default Web site; replace the site name as necessary.)

http://intelligentsystemsmonitoring.com/knowledgebase/internet-information-services/event-id-iis-application-host-history-configuration-185366/

repo: FGF-College-Work/Forum


text:
added social particle swarm example in examples directory

The social particle swarm (sps) model is a particles-based simulation of social agents interacting in a 3D Cartesian space through kinematics (attraction or repulsion) within an iterated prisoners dilemma game. There are two types of particles: Cooperators (blue) and defectors (red), each particle seeks to maximize its total payoff it receives from its neighbors, and it gets closer to those who offer benefit, and pulls away from those who don't. In the send, the simulation shows formation of clusters (composed by a majority of cooperators), followed by their explosions (due to being overpopulated by defectors).

Why are examples/learning_SPS/src/model/XSLTProcessor.exe, examples/learning_SPS/src/model/functions.xslt included in the commit?
Are these modified from the original versions already available at FLAMEGPU/tools/XSLTProcessor.exe, FLAMEGPU/templates/functions.xslt respectively? (if so, how/why?)
For inclusion, it will require addition of a visual studio project file (as seen in all the other examples). I should be able to add that later in the week when I have more time if you're unable, at which point I'll also give the model a closer look.
Thanks

No both examples/learning_SPS/src/model/XSLTProcessor.exe, and  examples/learning_SPS/src/model/functions.xslt are duplicates, I forgot to remove them from the examples/learning_SPS folder. Apologies.
About the visual studio project file, I compiled the example in linux from command line, but I will try to re-create the project in Visual studio.

The project appears to be missing an initial states file (an example that a user can't test is unsuitable), I tried running it without an initial states file and the visualisation remained empty. Following other examples this should be placed in examples/learning_SPS/Iterations and be named 0.xml.

.xml files are ignored by git (to avoid accidentally adding the dynamically generated xml files, so you will nee do to use git add -f /path/to/0.xml

I made the changes. I accidentally deleted the project, so I had to fork it again, sorry about that.

Do you mean you need to create a new pull request?
It currently says 'unknown repository'

Which i haven't seen before.

Yes, I think so

That's fine, create a new PR and reference this one with #277 (and then close this one).

Got it

authors: Robadob jiruhameru ptheywood

repo: FLAMEGPU/FLAMEGPU


text:
Merge Verilog and VHDL project templates

To ease maintainability, it would make sense to merge FABulous_project_template_verilog and FABulous_project_template_vhdl into a single FABulous_project_template.
Many files in both directories are duplicated and some files/filenames already diverge.
My idea is that after merging #154, the logic for reading the tile configuration can be changed a bit:
Instead of specifying file extensions for HDL sources in BEL entries inside tile configs, omit them:
BEL,./InPass4_frame_config_mux,RAM2FAB_D0_

Depending on whether a Verilog/VHDL writer is used, append the correct file ending (.v, .vhdl). Since both Verilog and VHDL files are in the tile directory, the correct one can be picked up.
What do you think? Am I missing something?

The main problem would be that the single template would contain both the VHDL and Verilog files, which might confuse the users. We can solve this by copying only the VHDL or Verilog files according to which writer is used.
Another potential problem is that the VHDL side Test folder is slightly different. But we can resolve it by selectively copying the file.
Ultimately, we need to find a better way to maintain and handle both Verilog and VHDL backend to avoid problems like #153

Speaking as a user, I wouldn't find this so confusing as I know which backend I am using (Verilog/VHDL) and I could easily switch between the two. But yeah, selectively copying the files would be an option to avoid that.
What way would you think of to improve maintainability?
I think it would be worthwhile to setup the CI with a test suite for both Verilog and VHDL, covering various fabrics and features such as supertiles. Every time a new feature PR is opened, the CI runs all the tests to make sure no regressions have occurred. Simple regressions like in #153 should then not be possible.
But I guess that's for another issue ;)

Yes, this should improve maintainability, less duplication is always better.

I'll open an issue regarding the CI then, if that's okay.
I'll also open some other issues that improve maintainablity of FABulous or make it easier for new users to get started.

repo: FPGA-Research-Manchester/FABulous


text:
Tests fail on v0.5

ERROR: LoadError: InitError: type Method has no field func
 in macro expansion at /Users/ranjan/.julia/v0.5/Requires/src/require.jl:9 [inlined]
 in (::Requires.##8#9)() at /Users/ranjan/.julia/v0.5/Requires/src/init.jl:17
 in __init__() at /Users/ranjan/.julia/v0.5/Requires/src/init.jl:24
 in _require_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:174
 in _require_from_serialized(::Int64, ::Symbol, ::Bool) at ./loading.jl:202
 in require(::Symbol) at ./loading.jl:332
 in stale_cachefile(::String, ::String) at ./loading.jl:562
 in recompile_stale(::Symbol, ::String) at ./loading.jl:579
 in _require_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:173
 in _require_from_serialized(::Int64, ::Symbol, ::Bool) at ./loading.jl:202
 in require(::Symbol) at ./loading.jl:332
 in stale_cachefile(::String, ::String) at ./loading.jl:562
 in recompile_stale(::Symbol, ::String) at ./loading.jl:579
 in _require_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:173
 in _require_from_serialized(::Int64, ::Symbol, ::Bool) at ./loading.jl:202
 in require(::Symbol) at ./loading.jl:332
 in include_from_node1(::String) at ./loading.jl:426
 in process_options(::Base.JLOptions) at ./client.jl:262
 in _start() at ./client.jl:318
during initialization of module Requires
while loading /Users/ranjan/.julia/v0.5/DSGE/test/runtests.jl, in expression starting on line 2

Are you guys using the Requires package anywhere? That package fails on v0.5

Hey @ranjanan!  Thanks for the heads-up :) We're planning on fixing all bugs related to v0.5 when it becomes the official stable release (looks like it hasn't yet).
Hope you enjoyed the rest of your time in the states! I know I owe you an email.

Hey @emoszkowski! :)

We're planning on fixing all bugs related to v0.5 when it becomes the official stable release (looks like it hasn't yet)

I posted this issue in light of the upcoming v0.5 release. This package currently fails on PackageEvaluator, so it would be nice to fix this before the release. A feature freeze has already been announced and a release candidate is right around the corner.

Hope you enjoyed the rest of your time in the states! I know I owe you an email.

I did, thanks for asking! We'll catch up via email.

This can probably be closed?

Yes it can! Thanks :)

authors: ChrisRackauckas emoszkowski ranjanan


text:
Inconsistencies from exceptions, and their positivity

Note: we are not raising nor catching anything here.
Somehow, this match typechecks even when blatantly incomplete
exception E1 of False
exception E2

let f (e:exn) : False =
  match e with
  | E1 f -> f

let fresh_french_falsity : False = f E2

Without exploiting that, we can make diverging terms:
exception E of (exn -> exn)

let f (e:exn) : exn =
  match e with
  | E f -> f e
  | e -> e

let g : exn = E f

let h = f (E f) (* would loop on execution *)

We tried for a bit with @kyoDralliam to get falsity from this last example, but we couldn't, mostly due to the need (if the first bit of this issue is solved) to have a complete match in f.
Haven't yet looked into why the first match succeeds, but the second bit seems to be a matter of checking positivity of exception constructors.

Here's the cause for #1:
https://github.com/FStarLang/FStar/blob/79e63d168dbc2af0f502228d45fed7476be8e616/src/typechecker/FStar.TypeChecker.TcTerm.fs#L2145-L2154
Since exceptions are not a normal inductive, they have zero constructors, hence this always returns [], a trivial guard. I fixed that in https://github.com/FStarLang/FStar/commit/ba23c408d6f3d4420059c3d6855b514ddfea3861, running CI now. I'll look at the second part of the issue later.

repo: FStarLang/FStar


text:
Encode String literals in SMT

Based on #1380 by @A-Manning
I added a switch to enable encoding (smtencoding.encode_string), and the example in #1380 is able to typecheck.

thanks! Will review

Hi @fangyi-zhou, Thanks for this contribution! @aseemr  and I were discussing it this morning.
This looks like a great basis for comprehensive encoding of FStar.String to Z3's string theory.
Would you be interested to enhance this PR by providing interpretations for more of the functions in FStar.String. It should follow the same pattern as you have established already in the code.
In particular, Z3's string theory supports many more functions than just strlen and strcat. See here, for an interactive example: https://www.philipzucker.com/z3-rise4fun/sequences.html
It would be great to map the functions in FStar.String to the operations listed here:
(str.++ a b c) | String concatenation of one or more strings
(str.len s) | String length. Returns an integer.
(str.substr s offset length) | Retrieves substring of s at offset
(str.indexof s sub) | Retrieves first position of sub in s, -1 if there are no occurrences
(str.indexof s sub offset) | Retrieves first position of sub at or after offset in s, -1 if there are no occurrences
(str.at s offset) | Substring of length 1 at offset in s.
(str.contains s sub) | Does s contain the substring sub?
(str.prefixof pre s) | Is pre a prefix of s?
(str.suffixof suf s) | Is suf a suffix of s?
(str.replace s src dst) | Replace the first occurrence of src by dst in s.
(str.to.int s) | Retrieve integer encoded by string s (ground rewriting only).
(int.to.str i) | Retrieve string encoding of integer i (ground rewriting only).

A few of the FStar.String functions do not have natural analogs: e.g., lowercase and uppercase. For these we can write F* axioms to interpret them in terms of the other operations.

Thanks for the comments @nikswamy, I'm happy to add the proposed extensions, I'll try to finish them within upcoming weeks :)

authors: fangyi-zhou nikswamy


text:
DatabaseUpdatesAndRepricing

DatabaseUpdatesAndRepricing

DatabaseUpdatesAndRepricing


text:
java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app-lib/com.megvii.awesomedemo.facepp-1/libMegviiFacepp-0.5.2.so" has unexpected e_machine: 40

android 版本4.4.2
專案clone 下來跑就出現以下訊息
不知道官方有沒有文件可以排除
java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app-lib/com.megvii.awesomedemo.facepp-1/libMegviiFacepp-0.5.2.so" has unexpected e_machine: 40
at java.lang.Runtime.loadLibrary(Runtime.java:364)
at java.lang.System.loadLibrary(System.java:526)
at com.megvii.facepp.sdk.jni.NativeFaceppAPI.(NativeFaceppAPI.java:76)
at com.megvii.facepp.sdk.Facepp.getSDKAuthType(Facepp.java:350)
at com.megvii.facepp.sdk.Facepp.getApiExpirationMillis(Facepp.java:325)
at com.facepp.demo.LoadingActivity.init(LoadingActivity.java:48)
at com.facepp.demo.LoadingActivity.onCreate(LoadingActivity.java:40)
at android.app.Activity.performCreate(Activity.java:5411)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396)
at android.app.ActivityThread.access$800(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:149)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
at dalvik.system.NativeStart.main(Native Method)

是so的指令集不兼容导致的，第一so有没有做过移动，第二您手机的架构可以描述下吗？

还有模拟器是不兼容的

authors: ismyaki jionkang

repo: FacePlusPlus/MegviiFacepp-Android-SDK


text:
Changes HttpDriver for aiohttp 3.0.0

Изменения для новой версии aiohttp 3.0.0

А все зависимости поддерживают aiohttp 3?
в частности интересует aiosocks

@Fahreeve не уверен, а точнее не проверял.

Тесты не осилил разобрать, некоторые модули не устанавливаются в систему (aio.testing) через pip, сваливается в ошибку. Написать другие тесты, желания сейчас нет. Вообщем, работы для меня там на пол года ))) Предлагаю закрыть реквест ))

authors: Fahreeve microcoder

repo: Fahreeve/aiovk

license: mit


text:
Update README.md

Title

Look good to me, amazing contribution!

authors: LeeGodSRC terminalsin

repo: FairyProject/fairy


text:
Personal gadget -  Cursor pointer is required when select group

Describe the bug

cursor pointer is required when we select group

https://www.berrycast.com/conversations/8d2e4341-ffb7-57d3-9e4b-10a41c150c79

repo: Fammeo/EasyCloudBooks


text:
Transaction Page - Multiple Select Action Required

Problem-
No problem New functionality
This was rejected last time, but as no other solution possible this is required
Initially required for Multiple Email Send for Transaction
Last time it was rejected for Reason- Don't want to send multiple emails for different Transaction, User want to send only Ledger with full view.
Technical Details-

There is no way email template and Multiple Transaction combine email possible, so there is only logical solution is send Email for each Transaction
Email for Ledger is already exists, on company object
if Multiple Transaction Email required then only possible through Fix Email, not customization possible in email

Initially Reported by @vinpahilwani
Verified by @mitulpanch

Time required -
3-4 Days for Design and Back end Development for One to One Email

Additional Development required on Email Template / SMS Template / Notification Template, will create new Issue if passed


text:
Company Page - Contract View - Send Email / SMS / Notification Option

Problem-

user wants to send Contract as Email

Solution

Add Email / SMS / Notification Option to multiple Select
Need to change Email Template to create [ContactLink] key to send email
same Key for SMS / Notification
Attach PDF also required

Initiated by @vinpahilwani
Verified by @mitulpanch

approved

1 New Key for All templates
[@ecbcompanycontractlink]

No Comments from @sureshsirvi
Going forward

authors: mitulpanch vinpahilwani


text:
[2장 네트워크] 회고 (Retrospection)

✍ 기억은 기록을 이길 수 없다.
스터디를 시작한 지 3주가 지났네요.
3주간 함께 공부하면서 혹은 혼자 공부하며 어떤 점을 느끼고 배웠나요.
스터디에서 건의하고 싶거나 칭찬하고 싶은 이야기 모두 좋습니다.
CS 스터디 관련 내용이 아니더라도 좋아요!
서로에게 힘이 되는 메시지를 주어도 좋아요!
(다 좋아요❣)
자유롭게 회고 내용을 작성해주세요!

redis에 대해 공부를 했을 때, key-value로 저장이 되어 이것을 어디에 사용하는 것인지 의문을 가졌었는데,스터디를 통해 캐시에 대해 알게 되면서 redis의 필요성에 대해서 알게 되었습니다.
모의 면접을 하면서 정윤님께서 많이 신경써 주셔서 스터디가 원활하게 진행이 되어서 정말 감사합니다. 제가 알고 있다고 생각했는데, 질문을 받으니 머릿속이 새하얏게 되어서 말을 못한게 많이 아쉬웠습니다.

저는 어제 모의 면접 하면서 오히려 내용을 잘 알수록 장황하게 말할 수도 있다는 것을 알게 되었어요.
물론 추가 질문에 답변하기 위해서 깊게 공부해야 합니다!
대신 앞으로 아는 내용을 듣는 사람이 지루하지 않게 차분하게 말하도록 노력하고 연습을 해야 할 것 같네요!!

깊이 있게 아는 것이 중요하다고 느꼈습니다. 면접 준비가 처음이다 보니, 문제은행식 시험에 대처하듯 공부한 것 같습니다. CS 면접 질문들을 검색하여 그 답을 찾으면서 공부하는 방향으로 진행하였습니다. 그렇게 하니 짧은 시간 내에 전체적으로 훑을 수 있다는 장점은 존재하였지만, 준비한 질문이 아닌 다른 질문을 받으면 당황하여 머리가 하얘지는 것을 느꼈습니다. 시간이 없었다는 말은 핑계였음을 자신이 가장 잘 알기 때문에 운영체제에서는 더 많은 시간을 투자하여 겉핥기식 지식이 되지 않도록 하고 싶습니다!
상혁님 말에 공감합니다.
답변하신 분이 나중에 돌아보기 쉽게 도우려고 답변을 썼는데, 쓰는 사람이 계속 쓰다보니 질문자가 쓰는 사람일 경우 답변을 놓치는 경우가 종종 있었습니다.
그런데 자신이 잘못된 답변을 했을 때, 무슨 개념과 헷갈리고 있는지 아는 것 또한 중요하다고 생각하기 때문에 답변을 적는 것을 유지하는 것도 좋은 방법같습니다.
차라리 그 전 질문자가 현재 면접자의 질문을 적고, 면접자는 피드백만 작성하는 것도 괜찮을 것 같습니다.
면접시간이 모두 끝난 후에 면접자가 의도한 방향과 답변이 무엇이였는지, 다른 분들도 추가적인 설명을 덧 붙이는 것은 너무 좋다고  생각합니다!
네트워크 스터디의 경우 처음이라 많이 고쳐나가면서 진행해야할 것이라 생각했는데, 다들 적극적으로 참여하시고 의견 충돌이나 다툼 없이 끝낸 것 같아 기분이 좋네용!
면접을 죽쒔다고 생각해서 슬펐는데, 다들 좋은 말로 피드백해주셔서 오히려 용기를 많이 얻었습니다.
운영체제는 더 잘 해보겠습니다!! 같이 힘내봅시다💪💪

본인이 이해한 것을 처음으로 누구에게 설명하듯이 전달하려고 하니, 불필요한 말이 나오거나 정확하지 않게 전달하는 점이 있었습니다.
해당 면접을 준비하기 이전에, 사전에 말하는 연습을 여러번 하면서 최대한 정확하고 듣는이의 귀가 편하게 전달하도록 하겠습니다.
위에서 상혁님이 말씀하신 점 답변이 완전히 끝난 뒤 피면접자 피드백(좋았던점/아쉬웠던점/개선점)만 간단히 기록하는 점 에 대해서 좋은 지적인 것 같아요! 이 부분에 대해서 면접 질문에 대한 답변을 전부 적는 것 보다는 간단하게 적는게 시간 관계상 더 효율적이네요. 굿!입니다~ 👍
면접 스터디원 모두 열심히 참여해주셔서 정말 감사드리고 앞으로도 꾸준히 화이팅 해봅시다! 😆

너무 만족합니다. 역시 회고는 필수에요!! 스터디 진행하고 운영하는데 의견과 피드백은 도움이 많이 됩니다!!
앞서 나온 의견들은 다음주 팀 별 스터디전 한 번 회의하고 시작하도록 하겠습니다! 😉 운영체제도 화이팅 입니다!

공부의 목적과 단계에 대해 다시 생각해보게됐습니다.
우선 공통된 목적으로는 기술면접에서 선방하기위함이고 나아가 직무를 수행하는과정에서 기반지식을 다지기 위함 이라고 생각 합니다.
전반적인 내용을 머릿속에 집어넣는 시기가 있고 반복학습하며 깊이를 늘리는 과정, 그 다음으로는 지식을 바탕으로 타인에게 말로써 전달하는 과정이 있는데 이 과정을 한번에 하려는것 보다는 짧은기간속에서도 시간을 쪼개서 잘 활용하는것이 중요하다고 느꼈습니다.
여러분 덕분에 재밌게 공부 할 수 있었고 앞으로도 더 발전해봐요 파이팅!!👍

꼬리 질문을 받으면서 아직 부족하다는 것을 많이 느꼈습니다.
말을 할 때도 아직 머릿속으로 정리가 되지 않았는데 일단 말할려고 하다보니 더 꼬인다는 것을 느꼈고, 좀 더 생각을 가다듬고 저의 생각을 깔끔하게 전달하도록 해야겠다고 생각이 들었습니다.

모의면접 진행노트 작성 관련 피드백 정리
🙋♂ 1. 상혁

답변이 완전히 끝난 뒤 피면접자 피드백(좋았던점/아쉬웠던점/개선점)만 간단히 기록
모의면접시간이 완전히 끝난 뒤 자신의 질문에 면접자가 생각한 답변을 달고, 부족한 지식이 있으면 다른 사람들이 살을 붙이는 형식

🙋♀ 2. 은선

답변을 적는 것을 유지하는 것도 좋은 방법
그 전 질문자가 현재 면접자의 질문을 적고, 면접자는 피드백만 작성
면접시간이 모두 끝난 후에 면접자가 의도한 방향과 답변이 무엇이였는지, 다른 분들도 추가적인 설명을 덧 붙이는 형식

🙋 3. 팬시

답변이 완전히 끝난 뒤 피면접자 피드백(좋았던점/아쉬웠던점/개선점)만 간단히 기록
면접 질문에 대한 답변을 전부 적는 것 보다는 간단하게 작성

종합
1. 면접 중

그 전 질문자가 현재 면접자의 질문 작성 및 답변 요약해서 작성

2. 답변 끝난 후

질문자가 피면접자 피드백(좋았던점/아쉬웠던점/개선점) 간단히 기록

3. 모의면접이 끝난 후

면접자가 의도한 방향과 답변이 무엇이였는지, 다른 분들도 추가적인 설명을 덧 붙이는 형식

authors: BHC-Chicken Fancy96 ParkJungYoon baekeunsun jthugg namtndus


text:
[Bug Report] Bug when "freezing" select mujoco envs

Describe the bug
"Freezing" an env does not work as expected for some MuJoCo envs, where freezing is saving an initial state, stepping, then resetting to original state using MujocoEnv.set_state.
Sporadic errors for Ant-v4, HalfCheetah-v4',HumanoidStandup-v4 occur when ensuring that the reward, obs results from frozen steps are the same as after unfreezing and stepping with the same actions.
Envs Hopper-v4,Humanoid-v4 (included) do not have this issue and pass every time.
Code example
Reproduce with pytest <file>
import gymnasium as gym
import pytest
import numpy as np

class FreezeMujoco:
    """Provides a context to freeze a Mujoco environment.

    This context allows the user to manipulate the state of a Mujoco environment and return it
    to its original state upon exiting the context.

    Args:
        env (:class:`gym.wrappers.TimeLimit`): the environment to freeze.
    """

    def __init__(self, env: gym.wrappers.TimeLimit):
        self._env = env
        self._init_state: np.ndarray = None
        self._elapsed_steps = 0
        self._step_count = 0

    def __enter__(self):
        self._init_state = (
            self._env.env.data.qpos.ravel().copy(),
            self._env.env.data.qvel.ravel().copy(),
        )
        self._elapsed_steps = self._env._elapsed_steps

    def __exit__(self, *_args):
        self._env.set_state(*self._init_state)
        self._env._elapsed_steps = self._elapsed_steps

@pytest.mark.parametrize("mujoco_env_str", ['Ant-v4', 'HalfCheetah-v4','HumanoidStandup-v4','Hopper-v4','Humanoid-v4'])
def test_freeze_mujoco_env(mujoco_env_str):
    env = gym.make(mujoco_env_str)
    env.reset(seed=0)

    seen_obses = []
    seen_rewards = []
    actions = []
    num_steps = 100

    with FreezeMujoco(env):
        for _ in range(num_steps):
            action = env.action_space.sample()
            next_obs, reward, terminated, truncated, _ = env.step(action)
            seen_obses.append(next_obs)
            seen_rewards.append(reward)
            actions.append(action)
            if terminated or truncated:
                break

    for a in actions:
        next_obs, reward, _, _, _ = env.step(a)
        ref_obs = seen_obses.pop(0)
        ref_reward = seen_rewards.pop(0)
        np.testing.assert_array_almost_equal(next_obs, ref_obs)
        assert reward == pytest.approx(ref_reward)

System info
installed using pip
gymnasium=v0.26.3
Ubuntu 20.04
Python 3.8.10
Additional context
Found during migration of mbrl-lib to gymnasium:
pr: https://github.com/facebookresearch/mbrl-lib/pull/177
discussion: https://github.com/facebookresearch/mbrl-lib/pull/177#discussion_r1112274330
Checklist

[X] I have checked that there is no similar issue in the repo

Hey @raghavauppuluri13 I'm able to replicate the issue and I'll have a look at it. What surprises me is that Humanoid-v4 doesn't have any reproducibility issues while HumanoidStandup-v4 does. Sorry for the trouble.

Hey @raghavauppuluri13 I'm able to replicate the issue and I'll have a look at it. What surprises me is that Humanoid-v4 doesn't have any reproducibility issues while HumanoidStandup-v4 does. Sorry for the trouble.

Hey @rodrigodelazcano! Thanks for looking into this! No worries at all. Interesting issue. The error states seem to be stochastic as well, makes it even more perplexing.

From my testing, the "Freezing" is incorrect
Here I try to check mujoco.data not just observations (which are a subset of the mujoco.data)
import gymnasium as gym
import pytest
import numpy as np
import copy
import pickle

class FreezeMujoco:
    """Provides a context to freeze a Mujoco environment.

    This context allows the user to manipulate the state of a Mujoco environment and return it
    to its original state upon exiting the context.

    Args:
        env (:class:`gym.wrappers.TimeLimit`): the environment to freeze.
    """

    def __init__(self, env: gym.wrappers.TimeLimit):
        self._env = env
        self._init_state: np.ndarray = None
        self._elapsed_steps = 0
        self._step_count = 0

    def __enter__(self):
        self._init_state = (
            self._env.env.data.qpos.ravel().copy(),
            self._env.env.data.qvel.ravel().copy(),
        )
        self._elapsed_steps = self._env._elapsed_steps

    def __exit__(self, *_args):
        self._env.set_state(*self._init_state)
        self._env._elapsed_steps = self._elapsed_steps

@pytest.mark.parametrize("mujoco_env_str", ['Ant-v4', 'HalfCheetah-v4','HumanoidStandup-v4','Hopper-v4','Humanoid-v4'])
def test_freeze_mujoco_env(mujoco_env_str):
    env = gym.make(mujoco_env_str)
    env.reset(seed=0)

    #seen_obses = []
    seen_data = []
    seen_rewards = []
    actions = []
    num_steps = 100

    with FreezeMujoco(env):
        for _ in range(num_steps):
            action = env.action_space.sample()
            next_obs, reward, terminated, truncated, _ = env.step(action)
            seen_data.append(copy.deepcopy(env.unwrapped.data))
            actions.append(action)
            if terminated or truncated:
                break

    for a in actions:
        next_obs, reward, _, _, _ = env.step(a)
        ref_data = seen_data.pop(0)
        #assert ref_data == (env.unwrapped.data)
        #assert ref_data == copy.deepcopy(env.unwrapped.data)
        assert pickle.dumps(ref_data) == pickle.dumps(copy.deepcopy(env.unwrapped.data))

repo: Farama-Foundation/Gymnasium


text:
feat: allow produce tombstone message

Description
Allow produce tombstone message.
Fixes # (issue)
How Has This Been Tested?
Please describe the tests that you ran to verify your changes.
Checklist

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have added tests to cover my changes
[ ] I have made corresponding changes to the documentation

Disclaimer
By sending us your contributions, you are agreeing that your contribution is made subject to the terms of our Contributor Ownership Statement

This is supported in deserializers:

ConfluentAvro https://github.com/confluentinc/confluent-kafka-dotnet/blob/61f37979e923430513565e6139321f7eadda2ccb/src/Confluent.SchemaRegistry.Serdes.Avro/AvroSerializer.cs#L153
ConfluentJson https://github.com/confluentinc/confluent-kafka-dotnet/blob/61f37979e923430513565e6139321f7eadda2ccb/src/Confluent.SchemaRegistry.Serdes.Json/JsonSerializer.cs#L150
ConfluentProtobuf https://github.com/confluentinc/confluent-kafka-dotnet/blob/61f37979e923430513565e6139321f7eadda2ccb/src/Confluent.SchemaRegistry.Serdes.Protobuf/ProtobufSerializer.cs#L253
Chr.Avro https://github.com/ch-robinson/dotnet-avro/blob/a1e0f4086aa36e4fbabf59485947173e7e925d12/src/Chr.Avro.Confluent/Confluent/AsyncSchemaRegistrySerializer.cs#L292

repo: Farfetch/kafkaflow


text:
Want to remove runid from context

Describe the feature
Currently you have to specify a single runid in context sxenonnt, which is quite bad for strax logic. In principle, this information can be got from data making process.
Expected behavior
Make an imaginary example of how the feature would work.
YOUR (PSEUDO) CODE GOES HERE

Proposed implementation
Any rough idea how would you implement this feature?
Potential risk
Will there be any risk after adding this feature?
All italic comments can be removed from this template.

This is difficult because we need to specify instruction file name before strax processing started i.e. you can not get runid before strax.

Could try again when we move to fuse

Have done a much more elegant solution in #86

If runid is None, then we are in data-loading mode. No instruction will be ever tried to compute
otherwise, we are in computation mode, in which you have to feed a single integer as run number

repo: FaroutYLq/saltax


text:
How to use the finetuned mistal model for inference with Medusa

How to use the finetuned mistal model for inference with Medusa

As an example, you can refer to the Zephyr model (python -m medusa.inference.cli --model FasterDecoding/medusa-1.0-zephyr-7b-beta) :)

@ctlllll
It seems that , this command expectes a medusa model
python -m medusa.inference.cli --model [path of medusa model]

But in my case , i am using the mistral model-https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.2(not based on medusa). so is it supported?

+1 please

You will need to train the hugging face model on the medusa heads before you can use it for inference.

@eldhosemjoy How to train the hugging face model on the Medusa heads?can you share the reference

You can use this script - https://github.com/FasterDecoding/Medusa/blob/main/medusa/train/train_legacy.py
This is a Llama example I suppose. you can try with Mistral.

Try this model which is ported to medusa.
https://huggingface.co/text-generation-inference/Mistral-7B-Instruct-v0.2-medusa/tree/main

authors: S-Yacer ctlllll eldhosemjoy gangooteli pradeepdev-1995

repo: FasterDecoding/Medusa


text:
Run specified services only

Currently, there are two ways to run something:

<command>: run single command
--services-path: run all services from a path

But it's missing something like --services-file or --service-configuration to run specified services only. My use case: I build an "self-contained" image with frontend, backend and auxiliary services. On the test system all services should run. But for production only backend and auxiliary services are relevant. I can workaround it by creating multiple "services-path" directories, but it would be nice just specify multiple service configurations.
Or probably better, if --services-path could accept wildcards like:

--services-path /dir/*: all services inside /dir. Maybe also same as --services-path /dir to maintain compatibility
--services-path /dir/**: all services inside /dir and children
--services-path /dir/backend.toml: only backend service

WDYT?

Looks reasonable to me. This would improve over #55.

authors: Bessonov FedericoPonzi

repo: FedericoPonzi/Horust


text:
FeedAHelp: After login successful, create main dashboard responsive layouts

Requirements:

[ ] Grid layout
[ ] Make sure each component has and is separation of concern
[ ] Make sure its responsive

repo: FeedAHelp/FeedAHelpless