Skip to content

Revert join-workspace onboarding changes - #103649

Merged
puneetlath merged 5 commits into
mainfrom
revert-99833-and-followups
Oct 9, 2026
Merged

puneetlath merged 5 commits into
mainfrom
revert-99833-and-followups

Conversation

@carlosmiceli

Copy link
Copy Markdown
Contributor

Explanation of Change

Directly reverts the merge commits for the join-workspace onboarding feature and its three follow-ups, in reverse dependency order:

The onboarding modal deploy blocker still reproduces on staging build 9.5.6-4 after the attempted fix, so the feature and its dependent fixes need to roll back atomically.

Fixed Issues

$ #103545
PROPOSAL:

Tests

  1. Run npm test -- --silent tests/ui/OnboardingPurpose.tsx tests/ui/WorkEmailOnboarding.tsx tests/ui/WorkspaceOnboarding.tsx tests/ui/PersonalDetailsOnboarding.tsx tests/unit/OnboardingFlowTest.ts.
  2. Verify all 67 tests pass.
  • Verify that no errors appear in the JS console

Offline tests

N/A. This is a direct rollback of an online sign-in and onboarding feature.

QA Steps

  1. Freshly install the iOS app.
  2. Sign in with a brand-new Gmail account.
  3. Verify onboarding appears immediately without clearing cache or restarting the app.
  4. Repeat using both the magic code and magic link sign-in methods.
  • Verify that no errors appear in the JS console

PR Author Checklist

  • I linked the correct issue in the ### Fixed Issues section above
  • I wrote clear testing steps that cover the changes made in this PR
    • I added steps for local testing in the Tests section
    • I added steps for the expected offline behavior in the Offline steps section
    • I added steps for Staging and/or Production testing in the QA steps section
    • I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
    • I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
    • I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).
  • I included screenshots or videos for tests on all platforms
  • I ran the tests on all platforms & verified they passed on:
    • Android: Native
    • Android: mWeb Chrome
    • iOS: Native
    • iOS: mWeb Safari
    • MacOS: Chrome / Safari
  • I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
  • I verified any copy / text that was added to the app is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
  • If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
  • 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)
  • If new assets were added or existing ones were modified, I verified that:
    • The assets are optimized and compressed (for SVG files, run npm run compress-svg)
    • The assets load correctly across all supported platforms.
  • If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
  • If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
  • If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
  • If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
  • If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:
    • I verified that all the inputs inside a form are aligned with each other.
    • I added Design label and/or tagged @Expensify/design so the design team can review the changes.
  • If the PR adds or modifies the UI:
    • I asked an AI agent to review the changes for accessibility issues and addressed its findings.
    • I tested with a screen reader (VoiceOver on macOS) and verified all new/changed elements are reachable with a logical focus order.
    • I verified all new/changed elements have meaningful accessible names and roles.
    • I verified state changes are announced (e.g. checked/unchecked, expanded/collapsed, selected).
  • I added unit tests for any new feature or bug fix in this PR to help automatically prevent regressions in this user flow.
  • 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

This reverts commit 693cab0, reversing
changes made to 8679ca4.
…gWorkEmailBackAfterRefresh"

This reverts commit aed4cfc, reversing
changes made to c9b044a.
…countBlockedOnJoinWorkspace"

This reverts commit 1481341, reversing
changes made to d6c4d74.
…tent-672346"

This reverts commit a76ba9e, reversing
changes made to 2328c9a.
@OSBotify

OSBotify commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

🦜 Polyglot Parrot! 🦜

Squawk! Looks like you added some shiny new English strings. Allow me to parrot them back to you in other tongues:

View the translation diff
diff --git a/src/languages/de.ts b/src/languages/de.ts
index 924cd715..014025fe 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -3427,13 +3427,13 @@ ${amount} für ${merchant} – ${date}`,
         whereYouWork: 'Wo arbeitest du?',
         errorSelection: 'Wähle eine Option, um fortzufahren',
         purpose: {
-            title: 'Was möchtest du heute tun?',
-            errorContinue: 'Bitte auf „Weiter“ drücken, um die Einrichtung abzuschließen',
-            errorBackButton: 'Bitte beantworte die Einrichtungsfragen, um die App verwenden zu können',
-            [CONST.ONBOARDING_CHOICES.EMPLOYER]: 'Ausgaben bei meinem Arbeitgeber einreichen',
-            [CONST.ONBOARDING_CHOICES.MANAGE_TEAM]: 'Verwalte die Ausgaben meines Teams',
-            [CONST.ONBOARDING_CHOICES.TRACK_BUSINESS]: 'Geschäftsausgaben nachverfolgen',
-            [CONST.ONBOARDING_CHOICES.TRACK_PERSONAL]: 'Meine persönlichen Ausgaben organisieren',
+            title: 'Was möchten Sie heute tun?',
+            errorContinue: 'Bitte drücken Sie auf „Weiter“, um die Einrichtung abzuschließen',
+            errorBackButton: 'Bitte beantworten Sie die Einrichtungsfragen, um die App verwenden zu können',
+            [CONST.ONBOARDING_CHOICES.EMPLOYER]: 'Auslagen bei meinem Arbeitgeber einreichen',
+            [CONST.ONBOARDING_CHOICES.MANAGE_TEAM]: 'Ausgaben meines Teams verwalten',
+            [CONST.ONBOARDING_CHOICES.TRACK_BUSINESS]: 'Ausgaben für mein Unternehmen erfassen',
+            [CONST.ONBOARDING_CHOICES.TRACK_PERSONAL]: 'Meine privaten Ausgaben organisieren',
             [CONST.ONBOARDING_CHOICES.LOOKING_AROUND]: 'Etwas anderes',
         },
         personalTrackGoal: {
diff --git a/src/languages/el.ts b/src/languages/el.ts
index 731444a6..f4baa68a 100644
--- a/src/languages/el.ts
+++ b/src/languages/el.ts
@@ -3473,12 +3473,12 @@ ${amount} για ${merchant} - ${date}`,
         errorSelection: 'Επιλέξτε μια επιλογή για να συνεχίσετε',
         purpose: {
             title: 'Τι θέλετε να κάνετε σήμερα;',
-            errorContinue: 'Πατήστε «συνέχεια» για να ολοκληρώσετε τη ρύθμιση',
+            errorContinue: 'Πατήστε συνέχεια για να ολοκληρώσετε τη ρύθμιση',
             errorBackButton: 'Ολοκληρώστε τις ερωτήσεις ρύθμισης για να αρχίσετε να χρησιμοποιείτε την εφαρμογή',
             [CONST.ONBOARDING_CHOICES.EMPLOYER]: 'Υποβολή εξόδων στον εργοδότη μου',
-            [CONST.ONBOARDING_CHOICES.MANAGE_TEAM]: 'Διαχείριση των εξόδων της ομάδας μου',
-            [CONST.ONBOARDING_CHOICES.TRACK_BUSINESS]: 'Παρακολουθήστε τα έξοδά μου για την επιχείρησή μου',
-            [CONST.ONBOARDING_CHOICES.TRACK_PERSONAL]: 'Οργάνωση των προσωπικών μου δαπανών',
+            [CONST.ONBOARDING_CHOICES.MANAGE_TEAM]: 'Διαχειριστείτε τα έξοδα της ομάδας μου',
+            [CONST.ONBOARDING_CHOICES.TRACK_BUSINESS]: 'Παρακολουθήστε έξοδα για την επιχείρησή σας',
+            [CONST.ONBOARDING_CHOICES.TRACK_PERSONAL]: 'Οργάνωση των προσωπικών δαπανών μου',
             [CONST.ONBOARDING_CHOICES.LOOKING_AROUND]: 'Κάτι άλλο',
         },
         personalTrackGoal: {
diff --git a/src/languages/es.ts b/src/languages/es.ts
index 01ee29f5..1f63f985 100644
--- a/src/languages/es.ts
+++ b/src/languages/es.ts
@@ -3323,13 +3323,13 @@ ${amount} para ${merchant} - ${date}`,
         errorSelection: 'Selecciona una opción para continuar',
         purpose: {
             title: '¿Qué quieres hacer hoy?',
-            errorContinue: 'Por favor, haz click en continuar para configurar tu cuenta',
-            errorBackButton: 'Por favor, finaliza las preguntas de configuración para empezar a utilizar la aplicación',
-            [CONST.ONBOARDING_CHOICES.EMPLOYER]: 'Enviar gastos a mi empleador',
-            [CONST.ONBOARDING_CHOICES.MANAGE_TEAM]: 'Gestionar los gastos de mi equipo',
-            [CONST.ONBOARDING_CHOICES.TRACK_BUSINESS]: 'Controlar gastos de mi negocio',
-            [CONST.ONBOARDING_CHOICES.TRACK_PERSONAL]: 'Organizar mis gastos personales',
-            [CONST.ONBOARDING_CHOICES.LOOKING_AROUND]: 'Algo más',
+            errorContinue: 'Pulsa continuar para configurar todo',
+            errorBackButton: 'Termina las preguntas de configuración para empezar a usar la app',
+            [CONST.ONBOARDING_CHOICES.EMPLOYER]: 'Enviar gastos a mi empresa',
+            [CONST.ONBOARDING_CHOICES.MANAGE_TEAM]: 'Gestiona los gastos de mi equipo',
+            [CONST.ONBOARDING_CHOICES.TRACK_BUSINESS]: 'Controla los gastos de mi empresa',
+            [CONST.ONBOARDING_CHOICES.TRACK_PERSONAL]: 'Organiza mis gastos personales',
+            [CONST.ONBOARDING_CHOICES.LOOKING_AROUND]: 'Otra cosa',
         },
         personalTrackGoal: {
             title: '¿Qué estás buscando organizar?',
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index 6455119f..251548c8 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -3435,9 +3435,9 @@ ${amount} pour ${merchant} - ${date}`,
         errorSelection: 'Sélectionnez une option pour continuer',
         purpose: {
             title: 'Que voulez-vous faire aujourd’hui ?',
-            errorContinue: 'Veuillez appuyer sur Continuer pour procéder à la configuration',
+            errorContinue: 'Veuillez appuyer sur Continuer pour terminer la configuration',
             errorBackButton: 'Veuillez terminer les questions de configuration pour commencer à utiliser l’application',
-            [CONST.ONBOARDING_CHOICES.EMPLOYER]: 'Soumettre des dépenses à mon employeur',
+            [CONST.ONBOARDING_CHOICES.EMPLOYER]: 'Soumettre des notes de frais à mon employeur',
             [CONST.ONBOARDING_CHOICES.MANAGE_TEAM]: 'Gérer les dépenses de mon équipe',
             [CONST.ONBOARDING_CHOICES.TRACK_BUSINESS]: 'Suivre les dépenses de mon entreprise',
             [CONST.ONBOARDING_CHOICES.TRACK_PERSONAL]: 'Organiser mes dépenses personnelles',
diff --git a/src/languages/it.ts b/src/languages/it.ts
index c19862c0..48f60c4d 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -3411,12 +3411,12 @@ ${amount} per ${merchant} - ${date}`,
         whereYouWork: 'Dove lavori?',
         errorSelection: 'Seleziona un’opzione per procedere',
         purpose: {
-            title: 'Cosa vuoi fare oggi?',
+            title: 'Che cosa vuoi fare oggi?',
             errorContinue: 'Premi Continua per completare la configurazione',
             errorBackButton: 'Completa le domande di configurazione per iniziare a usare l’app',
-            [CONST.ONBOARDING_CHOICES.EMPLOYER]: 'Inviare le spese al mio datore di lavoro',
+            [CONST.ONBOARDING_CHOICES.EMPLOYER]: 'Invia note spese al mio datore di lavoro',
             [CONST.ONBOARDING_CHOICES.MANAGE_TEAM]: 'Gestisci le spese del mio team',
-            [CONST.ONBOARDING_CHOICES.TRACK_BUSINESS]: 'Tieni traccia delle spese aziendali',
+            [CONST.ONBOARDING_CHOICES.TRACK_BUSINESS]: 'Tieni traccia delle spese per la mia attività',
             [CONST.ONBOARDING_CHOICES.TRACK_PERSONAL]: 'Organizza le mie spese personali',
             [CONST.ONBOARDING_CHOICES.LOOKING_AROUND]: 'Altro',
         },
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index 2bc11e98..49b0b428 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -3384,12 +3384,12 @@ ${date} の ${merchant} への ${amount}`,
         errorSelection: '次に進むオプションを選択してください',
         purpose: {
             title: '今日は何をしたいですか?',
-            errorContinue: '続行を押してセットアップを完了してください',
-            errorBackButton: 'アプリを使い始めるには、セットアップの質問にすべて回答してください',
-            [CONST.ONBOARDING_CHOICES.EMPLOYER]: '雇用主に経費を提出する',
-            [CONST.ONBOARDING_CHOICES.MANAGE_TEAM]: 'チームの経費を管理',
-            [CONST.ONBOARDING_CHOICES.TRACK_BUSINESS]: 'ビジネスの経費を記録',
-            [CONST.ONBOARDING_CHOICES.TRACK_PERSONAL]: '個人の支出を管理',
+            errorContinue: 'セットアップを行うには「続行」を押してください',
+            errorBackButton: 'アプリを利用開始するには、セットアップの質問に回答してください',
+            [CONST.ONBOARDING_CHOICES.EMPLOYER]: '経費を勤務先に提出する',
+            [CONST.ONBOARDING_CHOICES.MANAGE_TEAM]: 'チームの経費を管理する',
+            [CONST.ONBOARDING_CHOICES.TRACK_BUSINESS]: 'ビジネスの経費を管理する',
+            [CONST.ONBOARDING_CHOICES.TRACK_PERSONAL]: '個人の支出を整理する',
             [CONST.ONBOARDING_CHOICES.LOOKING_AROUND]: 'その他',
         },
         personalTrackGoal: {
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index 36e9f48c..19f4bf65 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -3416,12 +3416,12 @@ ${amount} voor ${merchant} - ${date}`,
         errorSelection: 'Selecteer een optie om verder te gaan',
         purpose: {
             title: 'Wat wil je vandaag doen?',
-            errorContinue: 'Druk op ‘Doorgaan’ om de installatie te voltooien',
-            errorBackButton: 'Beantwoord eerst de instelvragen om de app te kunnen gebruiken',
-            [CONST.ONBOARDING_CHOICES.EMPLOYER]: 'Onkosten indienen bij mijn werkgever',
-            [CONST.ONBOARDING_CHOICES.MANAGE_TEAM]: 'De onkosten van mijn team beheren',
-            [CONST.ONBOARDING_CHOICES.TRACK_BUSINESS]: 'Zakelijke uitgaven bijhouden',
-            [CONST.ONBOARDING_CHOICES.TRACK_PERSONAL]: 'Mijn persoonlijke uitgaven organiseren',
+            errorContinue: 'Druk op doorgaan om de installatie te voltooien',
+            errorBackButton: 'Beantwoord de installatievragen om de app te gaan gebruiken',
+            [CONST.ONBOARDING_CHOICES.EMPLOYER]: 'Declareren bij mijn werkgever',
+            [CONST.ONBOARDING_CHOICES.MANAGE_TEAM]: 'Beheer de uitgaven van mijn team',
+            [CONST.ONBOARDING_CHOICES.TRACK_BUSINESS]: 'Uitgaven voor mijn bedrijf bijhouden',
+            [CONST.ONBOARDING_CHOICES.TRACK_PERSONAL]: 'Mijn persoonlijke uitgaven ordenen',
             [CONST.ONBOARDING_CHOICES.LOOKING_AROUND]: 'Iets anders',
         },
         personalTrackGoal: {
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index ba7ac249..ca7ab13a 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -3446,12 +3446,12 @@ ${amount} dla ${merchant} - ${date}`,
         errorSelection: 'Wybierz opcję, aby przejść dalej',
         purpose: {
             title: 'Co chcesz dzisiaj zrobić?',
-            errorContinue: 'Naciśnij „Kontynuuj”, aby się skonfigurować',
-            errorBackButton: 'Dokończ pytania konfiguracyjne, aby zacząć korzystać z aplikacji',
-            [CONST.ONBOARDING_CHOICES.EMPLOYER]: 'Zgłoś wydatki pracodawcy',
+            errorContinue: 'Naciśnij „Dalej”, aby dokończyć konfigurację',
+            errorBackButton: 'Dokończ pytania konfiguracji, aby zacząć korzystać z aplikacji',
+            [CONST.ONBOARDING_CHOICES.EMPLOYER]: 'Wyślij wydatki do mojego pracodawcy',
             [CONST.ONBOARDING_CHOICES.MANAGE_TEAM]: 'Zarządzaj wydatkami mojego zespołu',
-            [CONST.ONBOARDING_CHOICES.TRACK_BUSINESS]: 'Śledź wydatki firmowe',
-            [CONST.ONBOARDING_CHOICES.TRACK_PERSONAL]: 'Organizuj swoje wydatki osobiste',
+            [CONST.ONBOARDING_CHOICES.TRACK_BUSINESS]: 'Śledź wydatki mojej firmy',
+            [CONST.ONBOARDING_CHOICES.TRACK_PERSONAL]: 'Porządkuj moje prywatne wydatki',
             [CONST.ONBOARDING_CHOICES.LOOKING_AROUND]: 'Coś innego',
         },
         personalTrackGoal: {
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index 9c2257c2..b5f7f893 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -3405,7 +3405,7 @@ ${amount} para ${merchant} - ${date}`,
             title: 'O que você quer fazer hoje?',
             errorContinue: 'Pressione continuar para concluir a configuração',
             errorBackButton: 'Conclua as perguntas de configuração para começar a usar o app',
-            [CONST.ONBOARDING_CHOICES.EMPLOYER]: 'Enviar despesas ao meu empregador',
+            [CONST.ONBOARDING_CHOICES.EMPLOYER]: 'Enviar despesas para meu empregador',
             [CONST.ONBOARDING_CHOICES.MANAGE_TEAM]: 'Gerenciar as despesas da minha equipe',
             [CONST.ONBOARDING_CHOICES.TRACK_BUSINESS]: 'Controlar despesas do meu negócio',
             [CONST.ONBOARDING_CHOICES.TRACK_PERSONAL]: 'Organizar meus gastos pessoais',
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index 0169e014..2552b0bf 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -3301,12 +3301,12 @@ ${amount},商户:${merchant} - 日期:${date}`,
         errorSelection: '选择一个选项以继续',
         purpose: {
             title: '你今天想做什么?',
-            errorContinue: '请按“继续”完成设置',
+            errorContinue: '请点击“继续”完成设置',
             errorBackButton: '请完成设置问题以开始使用此应用程序',
-            [CONST.ONBOARDING_CHOICES.EMPLOYER]: '向雇主提交费用',
+            [CONST.ONBOARDING_CHOICES.EMPLOYER]: '向我的雇主提交报销',
             [CONST.ONBOARDING_CHOICES.MANAGE_TEAM]: '管理我团队的报销',
-            [CONST.ONBOARDING_CHOICES.TRACK_BUSINESS]: '跟踪我的商务开销',
-            [CONST.ONBOARDING_CHOICES.TRACK_PERSONAL]: '管理我的个人支出',
+            [CONST.ONBOARDING_CHOICES.TRACK_BUSINESS]: '记录我的业务支出',
+            [CONST.ONBOARDING_CHOICES.TRACK_PERSONAL]: '整理我的个人支出',
             [CONST.ONBOARDING_CHOICES.LOOKING_AROUND]: '其他原因',
         },
         personalTrackGoal: {

Note

You can apply these changes to your branch by copying the patch to your clipboard, then running pbpaste | git apply 😉

View workflow run

@carlosmiceli
carlosmiceli marked this pull request as ready for review October 9, 2026 19:00
@carlosmiceli
carlosmiceli requested review from a team as code owners October 9, 2026 19:00
@melvin-bot
melvin-bot Bot requested review from iwiznia and parasharrajat and removed request for a team October 9, 2026 19:00
@melvin-bot

melvin-bot Bot commented Oct 9, 2026

Copy link
Copy Markdown

@parasharrajat @iwiznia One of you needs to copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

@melvin-bot
melvin-bot Bot requested review from dylanexpensify and removed request for a team October 9, 2026 19:00
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-09T19:12:44.798121Z 960deb1 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@carlosmiceli

Copy link
Copy Markdown
Contributor Author

@MelvinBot investiate failing React test

@carlosmiceli

Copy link
Copy Markdown
Contributor Author

@MelvinBot fix jest test too.

…ler regression

Co-authored-by: Carlos Miceli <carlosmiceli@users.noreply.github.com>
@MelvinBot
MelvinBot requested a review from a team as a code owner October 9, 2026 19:05
@melvin-bot
melvin-bot Bot requested review from ikevin127 and removed request for a team October 9, 2026 19:05
@melvin-bot

melvin-bot Bot commented Oct 9, 2026

Copy link
Copy Markdown

@ikevin127 Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

@MelvinBot

Copy link
Copy Markdown
Contributor

Fixed the failing React Compiler Compliance check in ee0783e.

Cause: The revert changed initialState in src/libs/Navigation/NavigationRoot.tsx:153 from useState(() => …) back to useMemo(() => …, []). The empty dependency list makes the Babel compiler stop compiling NavigationRoot ("Found missing memoization dependencies"). The file compiles on main, so CI flags this as a regression.

Fix: I kept the useState lazy initializer and only removed the join-workspace onboarding redirect. The hook now matches main, and the revert behavior is unchanged.

Other failure: test (job 3) fails in tests/ui/DebugReportActionsTest.tsx ("No results found" not rendered). This PR doesn't touch that page, the test, or its strings, so it looks flaky or pre-existing. A re-run should confirm.

I couldn't run the compliance check locally, so please confirm it passes on the new CI run.

@codecov

codecov Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Looks like you've decreased code coverage for some files. Please write tests to increase, or at least maintain, the existing level of code coverage. See our documentation here for how to interpret this table.

Files with missing lines Coverage Δ
src/CONST/index.ts 95.90% <ø> (ø)
src/ROUTES.ts 31.82% <100.00%> (-0.33%) ⬇️
src/components/Icon/chunks/illustrations.chunk.ts 0.00% <ø> (ø)
src/components/OnboardingHeader.tsx 100.00% <100.00%> (ø)
...components/OnboardingMergingAccountBlockedView.tsx 100.00% <100.00%> (ø)
src/components/ReportActionItem/TaskView.tsx 84.28% <100.00%> (-0.23%) ⬇️
...idateCodeActionModal/ValidateCodeActionContent.tsx 100.00% <100.00%> (ø)
src/hooks/useOnboardingFlow.ts 81.13% <ø> (ø)
src/hooks/useOnboardingIntent.ts 100.00% <100.00%> (ø)
src/libs/API/types.ts 100.00% <ø> (ø)
... and 27 more
... and 15 files with indirect coverage changes

@MelvinBot

Copy link
Copy Markdown
Contributor

No Jest fix is needed. All 8 Jest jobs pass on the latest commit (ee0783e), including test (job 3) (run). React Compiler Compliance also passes now.

The earlier failure in tests/ui/DebugReportActionsTest.tsx ("No results found" not rendered) passed on the next run with no test changes. This PR doesn't touch that page or test, so the failure was flaky.

The only remaining failure is Check independent approval, which needs a reviewer's approval.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 960deb1782

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

jest.clearAllMocks();
});

it('should not dispatch when navigation is not ready', () => {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Add required Given/When/Then test documentation

All four new it blocks in this file omit the mandatory // Given, // When, and // Then explanations. Add those comments to each case so the new suite complies with the repository’s test-documentation requirement. CLAUDE.mdL77-L81

Useful? React with 👍 / 👎.

@puneetlath
puneetlath merged commit 930932b into main Oct 9, 2026
44 of 47 checks passed
@puneetlath
puneetlath deleted the revert-99833-and-followups branch October 9, 2026 19:14
@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

🚧 puneetlath has triggered a test Expensify/App build. You can view the workflow run here.

@os-botify os-botify Bot mentioned this pull request Oct 9, 2026
7 of 44 tasks
@OSBotify OSBotify added the CP Staging marks PRs that have been CP'd to staging label Oct 9, 2026
@OSBotify

OSBotify commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

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

puneetlath added a commit that referenced this pull request Oct 9, 2026
Revert join-workspace onboarding changes

(cherry picked from commit 930932b)

(cherry-picked to staging by puneetlath)
puneetlath added a commit that referenced this pull request Oct 9, 2026
…37978880059-1

🍒 Cherry pick PR #103649 to staging 🍒
@OSBotify OSBotify mentioned this pull request Oct 9, 2026
90 tasks done
@os-botify

os-botify Bot commented Oct 9, 2026

Copy link
Copy Markdown

🔁 Filed a Staging retest request for deploy blockers #103545 after this PR was cherry-picked to staging.

@OSBotify

OSBotify commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

🚀 Cherry-picked to staging by https://github.com/puneetlath in version: 9.5.6-6 🚀

platform result
🕸 web 🕸 success ✅
🤖 android 🤖 success ✅
🍎 iOS 🍎 success ✅

@MelvinBot

Copy link
Copy Markdown
Contributor

No help site update is needed: this PR removes the join-workspace onboarding option, and no article under docs/articles describes it (no article mentions Join my company workspace).

Note: the open docs PR [No QA] Docs updates for E/A#99833 Add Join my company workspace option to help article documents the feature this PR reverts. Please close it or put it on hold so it doesn't merge.

@OSBotify

OSBotify commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

🚀 Deployed to production by https://github.com/puneetlath in version: 9.5.6-6 🚀

platform result
🕸 web 🕸 success ✅
🤖 android 🤖 success ✅
🍎 iOS 🍎 success ✅

Bundle Size Analysis (Sentry):

@OSBotify

OSBotify commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

🚀 Cherry-picked to staging by https://github.com/puneetlath in version: 9.5.7-0 🚀

platform result
🕸 web 🕸 success ✅
🤖 android 🤖 success ✅
🍎 iOS 🍎 success ✅

@MelvinBot

Copy link
Copy Markdown
Contributor

No help site update is needed. No published article in docs/articles mentions the reverted Join my company workspace onboarding option or its Concierge tasks, so the revert makes no article sentence incorrect.

One follow-up: [No QA] Docs updates for E/A#99833 Add Join my company workspace option to help article is still open and documents the feature this PR removed. Please close it or put it on hold until the feature comes back, so it doesn't document something users can't see.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CP Staging marks PRs that have been CP'd to staging

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants