Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[HOLD for payment 2025-01-28] [$500] Invoices - Discrepancies in bank account behavior in Invoices and Wallet page #53693

Closed
8 tasks done
IuliiaHerets opened this issue Dec 6, 2024 · 67 comments
Assignees
Labels
Awaiting Payment Auto-added when associated PR is deployed to production Bug Something is broken. Auto assigns a BugZero manager. Daily KSv2 External Added to denote the issue can be worked on by a contributor

Comments

@IuliiaHerets
Copy link

IuliiaHerets commented Dec 6, 2024

If you haven’t already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!


Version Number: 9.0.72-0
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: N/A
If this was caught during regression testing, add the test name, ID and link from TestRail: Exp
Email or phone of affected tester (no customers): [email protected]
Issue reported by: Applause Internal Team

Action Performed:

  1. Go to staging.new.expensify.com
  2. Go to workspace settings > Invoices.
  3. Click Add bank account.
  4. Add a bank account.
  5. After adding bank account, click 3-dot menu > Click Make default payment method.
  6. Add a second bank account.
  7. After the second bank account is added, note that there is no "Default" label on the first bank account in Step 5.
  8. Refresh the page, and note that there is still no "Default" label.
  9. Go back to Account settings > Wallet.
  10. Note that the second bank account has "Default" label, when the first bank account in Step 5 is made as default.
  11. Go back to Invoices.
  12. Now the first bank account only shows the "Default" label.

Expected Result:

In Step 5, there should be no "Make default payment method" option because there is only one bank account added (this option does not appear in Wallet when there is only one bank account).

In Step 8, there should be "Default" label after the second bank account is added in Invoices (The same label instantly appears when adding second bank account in Wallet page).

In Step 10 and 12, there should be consistent whether the same default bank account in Invoices should also be default in Wallet page.

Actual Result:

In Step 5, there is a "Make default payment method" option when there is only one bank account added.

In Step 8, there is no "Default" label after the second bank account is added to Invoices page. It does not appear after the page is refreshed and only appears after user opens Wallet page.

In Step 10 and 12, after adding second bank account, the first bank account remains as default in Invoices, while the second bank account is the default account in Wallet.

Workaround:

Unknown

Platforms:

  • Android: Standalone
  • Android: HybridApp
  • Android: mWeb Chrome
  • iOS: Standalone
  • iOS: HybridApp
  • iOS: mWeb Safari
  • MacOS: Chrome / Safari
  • MacOS: Desktop

Screenshots/Videos

Bug6686161_1733475820034.bandicam_2024-12-06_16-25-55-857.mp4

View all open jobs on GitHub

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~021865085918655065327
  • Upwork Job ID: 1865085918655065327
  • Last Price Increase: 2025-01-28
Issue OwnerCurrent Issue Owner: @garrettmknight
@IuliiaHerets IuliiaHerets added Daily KSv2 Bug Something is broken. Auto assigns a BugZero manager. labels Dec 6, 2024
Copy link

melvin-bot bot commented Dec 6, 2024

Triggered auto assignment to @garrettmknight (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details. Please add this bug to a GH project, as outlined in the SO.

@Shahidullah-Muffakir
Copy link
Contributor

Shahidullah-Muffakir commented Dec 6, 2024

Edited by proposal-police: This proposal was edited at 2024-12-10 10:02:03 UTC.

Proposal

Please re-state the problem that we are trying to solve in this issue.

There are discrepancies in how payment methods behave between the Wallet Page and the Invoices Page, specifically:

  1. The "Make Default Payment Method" button appears incorrectly in the Invoices page.
  2. The "Default" badge does not display correctly after adding a second payment method in the Invoices page. The behavior is inconsistent with the Wallet page.

What is the root cause of that problem?

We have two issues

  1. Make default payment method issue
    The reason Make default payment method is not showing correctly the same way it does in the Wallet page is because of this condition:
    const shouldShowMakeDefaultButton = !paymentMethod.isSelectedPaymentMethodDefault;

    When user add a new payment payment in the Invoices page, this value is not updating, but in the Wallet page when user add a new payment method, the new payment method is being set as the Default payment method, and then we are showing the Make default payment method for the previous payment method.
    and also if there is only one payment method we should not show the Make default payment method at all before checking any other condition, because that should be the default one, so the number of the payment methods is not considered in the Invoices page like it is considered in the Wallet page.
  2. Default badge issue
    when user adds a new payment method in the Invoices page, we are only showing the Default badge for the account where:
    policy?.invoice?.bankAccount?.transferBankAccountID === methodID is true
    isSelectedPaymentMethodDefault: transferBankAccountID === methodID,

but we art not updating the policy?.invoice?.bankAccount?.transferBankAccountID after adding a new payment method, hence it causing the issue, resulting it to show the Default badge for the old Default payment method .
because now in this part of the code the isDefault will be false for the newly added payment method:

function shouldShowDefaultBadge(filteredPaymentMethods: PaymentMethod[], item: PaymentMethod, walletLinkedAccountID: number, isDefault = false): boolean {
if (!isDefault) {
return false;

causing discrepancies from the Wallet page, because in the wallet we are showing the Default badge for the recently added payment method.

What changes do you think we should make in order to solve the problem?

1. To solve the first issue of Make default payment method:
1. before checking anything else we should check if there are more than one payment methods, if is one or none it should return false, same like the Wallet page.

    const hasMultiplePaymentMethods = PaymentUtils.formatPaymentMethods(bankAccountList ?? {}, fundList ?? {}, styles).length > 1;
    const shouldShowMakeDefaultButton = hasMultiplePaymentMethods && !paymentMethod.isSelectedPaymentMethodDefault;
  1. we should update the policy?.invoice?.bankAccount?.transferBankAccountID to the newly added payment method, so that if there are more then one payment method, we should show the Make default payment method for the previous payment method.
  2. this point number 2 have both frontend and Backend fix.
    1. the frontend fix is to call the
      function setInvoicingTransferBankAccount(bankAccountID: number, policyID: string, previousBankAccountID: number) {
      for the newly added payment method, whenver a user add a new payment method in the Invoices page.
    2. the backend fix is that when user add a new payment method with
      function addPersonalBankAccount(account: PlaidBankAccount) {
      in the invoces page update the policy?.invoice?.bankAccount?.transferBankAccountID to the account id of the new payment method using:
      function setInvoicingTransferBankAccount(bankAccountID: number, policyID: string, previousBankAccountID: number) {
      for the newly added payment method.

In Wallet page we already update the userWallet?.walletLinkedAccountID to the account ID of the newly added payment method.

2. To solve the issue of Default badge:

  1. update the policy?.invoice?.bankAccount?.transferBankAccountID to the account ID of the newly added payment method so that isDefault is true here for the newly added payment method, and directly show Default badge for the newly added payment method.

    function shouldShowDefaultBadge(filteredPaymentMethods: PaymentMethod[], item: PaymentMethod, walletLinkedAccountID: number, isDefault = false): boolean {
    if (!isDefault) {
    return false;

  2. modify this part of the code , to consider policy?.invoice?.bankAccount?.transferBankAccountID for the Invoices page and userWallet?.walletLinkedAccountID for the Wallet page when deciding to show the Default badge.
    if invoiceTransferBankAccountID exists in the PaymentMethodList, then it is the invoices page, because only in the inovoces page we are passing the invoiceTransferBankAccountID to PaymentMethodList in the case of Wallet page it will undefined.

    invoiceTransferBankAccountID={transferBankAccountID}

    so change the follwing code such that if it is the Invoices page, the only show the Default badge if the userWallet?.walletLinkedAccountID same as the account ID of the current payment method
    and in the case of Invoices page only show the Default badge if the invoiceTransferBankAccountID is same as the current payment method.
    const defaultPaymentMethods = filteredPaymentMethods.filter((method: PaymentMethod) => !!method.isDefault);
    // If there is more than one payment method, show the default badge only for the most recently added default account.
    if (defaultPaymentMethods.length > 1) {
    if (item.accountType === CONST.PAYMENT_METHODS.PERSONAL_BANK_ACCOUNT) {
    return item.accountData?.bankAccountID === walletLinkedAccountID;
    }
    if (item.accountType === CONST.PAYMENT_METHODS.DEBIT_CARD) {
    return item.accountData?.fundID === walletLinkedAccountID;
    }
    }

    this will be the modified code:

 if (invoiceTransferBankAccountID && item.methodID !== invoiceTransferBankAccountID) {
        return false;
    }

    if (item.accountType === CONST.PAYMENT_METHODS.PERSONAL_BANK_ACCOUNT) {
        if (item.accountData?.bankAccountID !== walletLinkedAccountID) {
            return false;
        }
    }
    if (item.accountType === CONST.PAYMENT_METHODS.DEBIT_CARD) {
        if (item.accountData?.fundID !== walletLinkedAccountID) {
            return false;
        }
    }

in the shouldShowDefaultBadge function.

What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?

To ensure this issue is fully covered and to avoid regressions, the following test cases should be performed for Wallet Page and Invoices Page:

Single Payment Method:

  1. Add a single bank account.
    Verify that the 'Make Default Payment Method' button is not displayed.

Multiple Payment Methods:

  1. Add two bank accounts.
  2. Verify that the 'Default' label is displayed on the the latest account after the second account is added.
  3. Verify that only one account is marked as the default.
  4. and the first payment method has Make the payment method default option
  5. Ensure the previously default account loses its 'Default' label.

Switching Default Accounts:

  1. Add two bank accounts and switch the default account using the 'Make Default Payment Method' option.
  2. Verify that the correct account is now marked as the default.

Consistency Across Refresh:

  1. Add two bank accounts, mark one as default, and refresh the page.
  2. Verify that the correct account remains marked as the default.

@garrettmknight garrettmknight added the External Added to denote the issue can be worked on by a contributor label Dec 6, 2024
Copy link

melvin-bot bot commented Dec 6, 2024

Job added to Upwork: https://www.upwork.com/jobs/~021865085918655065327

@melvin-bot melvin-bot bot changed the title Invoices - Discrepancies in bank account behavior in Invoices and Wallet page [$250] Invoices - Discrepancies in bank account behavior in Invoices and Wallet page Dec 6, 2024
@melvin-bot melvin-bot bot added the Help Wanted Apply this label when an issue is open to proposals by contributors label Dec 6, 2024
@garrettmknight garrettmknight moved this to Bugs and Follow Up Issues in [#whatsnext] #expense Dec 6, 2024
Copy link

melvin-bot bot commented Dec 6, 2024

Triggered auto assignment to Contributor-plus team member for initial proposal review - @jjcoffee (External)

@rdipippo
Copy link

rdipippo commented Dec 7, 2024

Proposal

Please re-state the problem that we are trying to solve in this issue.

There are 2 separate issues:

  1. On the invoices page, the Make Default Payment Method menu item shows when there is only one account.
  2. The default account on the invoices page is not the same as the default account on the wallet page (not sure if this happens all the time)

What is the root cause of that problem?

  1. The function shouldShowMakeDefaultButton function defined in WalletPage.tsx is different from the function defined in WorkspaceInvoiceVBASection.tsx
  2. The logic to determine the default account takes into account the invoiceTransferBankAccountID field, which is null on the wallet page but on on the invoice page. This makes the results different on each page.

What changes do you think we should make in order to solve the problem?

  1. Calculate the shouldShowMakeDefaultButton variable in WorkspaceInvoiceVBASection the same as the one in WalletPage.tsx.

const shouldShowMakeDefaultButton =
!isCurrentPaymentMethodDefault() &&
!(paymentMethod.formattedSelectedPaymentMethod.type === CONST.PAYMENT_METHODS.PERSONAL_BANK_ACCOUNT && paymentMethod.selectedPaymentMethod.type === CONST.BANK_ACCOUNT.TYPE.BUSINESS);

  1. Do not take into account the invoiceTransferBankAccountID when determining the default account on the invoices page.
    Current code:
    badgeText={
    shouldShowDefaultBadge(
    filteredPaymentMethods,
    item,
    userWallet?.walletLinkedAccountID ?? 0,
    invoiceTransferBankAccountID ? invoiceTransferBankAccountID === item.methodID : item.isDefault,
    )
    ? translate('paymentMethodList.defaultPaymentMethod')
    : undefined

The modifed code would simply pass the isDefault parameter into the shouldShowDefaultBadge function

What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?

Automated UI tests:

  1. Compare the default accounts on the wallet page and invoices page. Change the default account and verify it is the same on both pages.
  2. Verify Make Default Payment Method does not appear in the menu when there is one account. Do this for both pages.

What alternative solutions did you explore? (Optional)

None.
Reminder: Please use plain English, be brief and avoid jargon. Feel free to use images, charts or pseudo-code if necessary. Do not post large multi-line diffs or write walls of text. Do not create PRs unless you have been hired for this job.

Copy link

melvin-bot bot commented Dec 7, 2024

📣 @rdipippo! 📣
Hey, it seems we don’t have your contributor details yet! You'll only have to do this once, and this is how we'll hire you on Upwork.
Please follow these steps:

  1. Make sure you've read and understood the contributing guidelines.
  2. Get the email address used to login to your Expensify account. If you don't already have an Expensify account, create one here. If you have multiple accounts (e.g. one for testing), please use your main account email.
  3. Get the link to your Upwork profile. It's necessary because we only pay via Upwork. You can access it by logging in, and then clicking on your name. It'll look like this. If you don't already have an account, sign up for one here.
  4. Copy the format below and paste it in a comment on this issue. Replace the placeholder text with your actual details.
    Screen Shot 2022-11-16 at 4 42 54 PM
    Format:
Contributor details
Your Expensify account email: <REPLACE EMAIL HERE>
Upwork Profile Link: <REPLACE LINK HERE>

@rdipippo
Copy link

rdipippo commented Dec 7, 2024

Contributor details
Your Expensify account email: [email protected]
Upwork Profile Link: https://www.upwork.com/freelancers/~01f083226d6b4a9e09

Copy link

melvin-bot bot commented Dec 7, 2024

✅ Contributor details stored successfully. Thank you for contributing to Expensify!

@jjcoffee
Copy link
Contributor

jjcoffee commented Dec 9, 2024

@Shahidullah-Muffakir Your proposal is missing a solution to the second issue of the labels not being consistent between invoice & wallet pages. Please also note that including unit tests is a requirement now, or at least an explanation of why you think they may not be necessary.

@rdipippo Thanks for the proposal! It looks good overall, but I'm unsure about this part:

The modifed code would simply pass the isDefault parameter into the shouldShowDefaultBadge function

Correct me if I'm wrong, but that sounds like we would ignore the invoiceTransferBankAccountID (i.e. the ID that gets set when you manually mark a payment method as default).

@rdipippo
Copy link

rdipippo commented Dec 9, 2024 via email

@Shahidullah-Muffakir
Copy link
Contributor

@Shahidullah-Muffakir Your proposal is missing a solution to the second issue of the labels not being consistent between invoice & wallet pages. Please also note that including unit tests is a requirement now, or at least an explanation of why you think they may not be necessary.

@rdipippo Thanks for the proposal! It looks good overall, but I'm unsure about this part:

The modifed code would simply pass the isDefault parameter into the shouldShowDefaultBadge function

Correct me if I'm wrong, but that sounds like we would ignore the invoiceTransferBankAccountID (i.e. the ID that gets set when you manually mark a payment method as default).

@jjcoffee Thank you for reviewing the proposal, I will add all the details to the proposal now.

@Shahidullah-Muffakir
Copy link
Contributor

@jjcoffee , The proposal has been updated: #53693 (comment). Let me know if there’s anything else you’d like me to add, Thank you.

@jjcoffee
Copy link
Contributor

@Shahidullah-Muffakir Thanks for the updated proposal! 🙏 Could you update your RCA to include actual details of the root cause, rather than just linking to your previous PRs?

Also, in your solution section it would be more helpful to explain what changes you want to make and why, rather than just pasting entire blocks of code. This helps to keep your proposal concise, and perhaps more importantly easy to read and parse!

@Shahidullah-Muffakir
Copy link
Contributor

@jjcoffee , the proposal #53693 (comment) has been updated. Please let me know your thoughts. Thanks!

@rdipippo
Copy link

rdipippo commented Dec 10, 2024 via email

@jjcoffee
Copy link
Contributor

@Shahidullah-Muffakir I still think it could be made more concise, but I think I understand it enough 😄

In Step 10 and 12, there should be consistent whether the same default bank account in Invoices should also be default in Wallet page.

One thing I'm wondering is if the above expected result is definitely true. Is the default actually shared between the wallet and a specific policy/workspace's invoice settings? cc @garrettmknight

@jjcoffee
Copy link
Contributor

@rdipippo Apologies for not responding earlier! It would be expected for you to understand what invoiceTransferBankAccountID does/is for before proposing changes that could cause regressions otherwise.

@jjcoffee
Copy link
Contributor

Okay after testing this a bit more, it looks like fixing the first issue means the second issue isn't really an issue. The only remaining issue is that there's a Make default payment method option showing for the bank account that's already set as default.

I'm still unsure whether the wallet and invoice bank account should share a default. For now, let's go with @Shahidullah-Muffakir's proposal and we can adjust things on the PR.

🎀👀🎀 C+ reviewed

Copy link

melvin-bot bot commented Dec 13, 2024

Triggered auto assignment to @marcaaron, see https://stackoverflow.com/c/expensify/questions/7972 for more details.

Copy link

melvin-bot bot commented Dec 13, 2024

📣 It's been a week! Do we have any satisfactory proposals yet? Do we need to adjust the bounty for this issue? 💸

@Shahidullah-Muffakir
Copy link
Contributor

@Shahidullah-Muffakir PR has been deployed to staging if you want to test passing policyID and source='invoice' to AddPersonalBankAccount

Thanks for the update, I’ll give it a test.

@Shahidullah-Muffakir
Copy link
Contributor

@nkuoch ,Thanks for the BE changes, I’ve tested them, and everything works as expected.

However, there’s one more case. If a user hasn’t added any bank account through the Invoices page, but adds one via the general Wallet page, those bank accounts still appear on the Invoices page. However, the policy?.invoice?.bankAccount?.transferBankAccountID is still undefined, and there won’t be a default account in the Invoices page until the user clicks on the “Make the payment method default” button.

What are your thoughts on this?

@nkuoch
Copy link
Contributor

nkuoch commented Jan 13, 2025

It's fine as is. We want the user to set their invoice transferBankAccountID explicitly, so we don't set them the wrong bank account.

@Shahidullah-Muffakir
Copy link
Contributor

It's fine as is. We want the user to set their invoice transferBankAccountID explicitly, so we don't set them the wrong bank account.

Thanks, I will proceed with the PR.

@melvin-bot melvin-bot bot added Weekly KSv2 Awaiting Payment Auto-added when associated PR is deployed to production and removed Weekly KSv2 labels Jan 21, 2025
@melvin-bot melvin-bot bot changed the title [$250] Invoices - Discrepancies in bank account behavior in Invoices and Wallet page [HOLD for payment 2025-01-28] [$250] Invoices - Discrepancies in bank account behavior in Invoices and Wallet page Jan 21, 2025
@melvin-bot melvin-bot bot removed the Reviewing Has a PR in review label Jan 21, 2025
Copy link

melvin-bot bot commented Jan 21, 2025

Reviewing label has been removed, please complete the "BugZero Checklist".

Copy link

melvin-bot bot commented Jan 21, 2025

The solution for this issue has been 🚀 deployed to production 🚀 in version 9.0.87-3 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:

If no regressions arise, payment will be issued on 2025-01-28. 🎊

For reference, here are some details about the assignees on this issue:

Copy link

melvin-bot bot commented Jan 21, 2025

@jjcoffee @garrettmknight @jjcoffee The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the BugZero Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button]

@garrettmknight garrettmknight moved this from Bugs and Follow Up Issues to Hold for Payment in [#whatsnext] #expense Jan 21, 2025
@melvin-bot melvin-bot bot added Daily KSv2 and removed Weekly KSv2 labels Jan 27, 2025
@Shahidullah-Muffakir
Copy link
Contributor

@garrettmknight @nkuoch, since we expanded the scope of the PR, would it be possible to consider increasing the bounty? Thank you.

@jjcoffee
Copy link
Contributor

BugZero Checklist:

  • [Contributor] Classify the bug:
Bug classification

Source of bug:

  • 1a. Result of the original design (eg. a case wasn't considered)
  • 1b. Mistake during implementation
  • 1c. Backend bug
  • 1z. Other:

Where bug was reported:

  • 2a. Reported on production (eg. bug slipped through the normal regression and PR testing process on staging)
  • 2b. Reported on staging (eg. found during regression or PR testing)
  • 2d. Reported on a PR
  • 2z. Other:

Who reported the bug:

  • 3a. Expensify user
  • 3b. Expensify employee
  • 3c. Contributor
  • 3d. QA
  • 3z. Other:
  • [Contributor] 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/47218/files#r1931761403

  • [Contributor] If the regression was CRITICAL (e.g. interrupts a core flow) A discussion in #expensify-open-source 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: N/A

  • [Contributor] If it was decided to create a regression test for the bug, please propose the regression test steps using the template below to ensure the same bug will not reach production again.

  • [BugZero Assignee] Create a GH issue for creating/updating the regression test once above steps have been agreed upon.

    Link to issue:

Regression Test Proposal

Precondition:

  • Have a workspace with Invoices enabled

Test:

  1. Go to the Invoices page of a workspace.
  2. Click Add Bank Account and follow the steps to add an account.
  3. Verify that the newly added bank account is not marked as the default, and the "Make default payment method" option is not visible.
  4. Add a second bank account.
  5. Verify that the Make default payment method option appears in the three-dot menu for the first bank account, and that the default badge is shown on the second account.
  6. Go to the Wallet page and set the first bank account as default.
  7. Go back to the workspace Invoices page and verify that the second bank account still is default (as the defaults are independent between wallet and invoice).
  8. Delete the second bank account.
  9. Verify that the Make default payment method button is still visible for the remaining payment method.

Do we agree 👍 or 👎

Copy link

melvin-bot bot commented Jan 28, 2025

Payment Summary

Upwork Job

BugZero Checklist (@garrettmknight)

  • I have verified the correct assignees and roles are listed above and updated the neccesary manual offers
  • I have verified that there are no duplicate or incorrect contracts on Upwork for this job (https://www.upwork.com/ab/applicants/1865085918655065327/hired)
  • I have paid out the Upwork contracts or cancelled the ones that are incorrect
  • I have verified the payment summary above is correct

@garrettmknight
Copy link
Contributor

@Shahidullah-Muffakir that's fair. I'll double the payout since this one was so complicated.

@garrettmknight garrettmknight changed the title [HOLD for payment 2025-01-28] [$250] Invoices - Discrepancies in bank account behavior in Invoices and Wallet page [HOLD for payment 2025-01-28] [$500] Invoices - Discrepancies in bank account behavior in Invoices and Wallet page Jan 28, 2025
Copy link

melvin-bot bot commented Jan 28, 2025

Upwork job price has been updated to $500

@Shahidullah-Muffakir
Copy link
Contributor

@Shahidullah-Muffakir that's fair. I'll double the payout since this one was so complicated.

Thank you so much ❤

@garrettmknight
Copy link
Contributor

@Shahidullah-Muffakir offer is out to you

@garrettmknight
Copy link
Contributor

@jjcoffee request the $500 when you get a chance!

@github-project-automation github-project-automation bot moved this from Hold for Payment to Done in [#whatsnext] #expense Jan 28, 2025
@jjcoffee
Copy link
Contributor

Requested in ND!

@JmillsExpensify
Copy link

Payment summary:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Awaiting Payment Auto-added when associated PR is deployed to production Bug Something is broken. Auto assigns a BugZero manager. Daily KSv2 External Added to denote the issue can be worked on by a contributor
Projects
Status: Done
Development

No branches or pull requests

9 participants