Skip to content
This repository was archived by the owner on Mar 2, 2026. It is now read-only.
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
272 commits
Select commit Hold shift + click to select a range
595ed74
feat: account info and linked account with new component and storybook
Jun 24, 2025
b821a77
Merge branch 'dev' into 980-feature-update-settings-layout
Jun 24, 2025
5591bd8
fixed: remove unused function
Jun 24, 2025
8cd9003
Updated registration background
tombeckenham Jun 24, 2025
11ec949
Implemented new stepper on landing components
tombeckenham Jun 24, 2025
03c1085
Added color code to svg
tombeckenham Jun 25, 2025
aad7fee
Merge branch 'dev' into 861-feature-consolidate-password-input
Jun 25, 2025
3ddcade
fixed: unresolved password box
Jun 25, 2025
7199e9c
fixed: remove mui style
Jun 25, 2025
bdfb1bb
fixed: removed unuse margin style
Jun 25, 2025
2c61d06
feat: new switch component and update header
Jun 25, 2025
83ca462
fixed: update setting page change account to profile
Jun 25, 2025
59783d8
Merge pull request #1102 from onflow/master
tombeckenham Jun 25, 2025
b2edcd6
Import profile from mobile documentation
tombeckenham Jun 26, 2025
d5e71ec
Removed invalid chararters from mermaid diagram
tombeckenham Jun 26, 2025
e732a90
Completed technical documentation for import from mobile
tombeckenham Jun 26, 2025
2b7fd3d
Updated readme to include links to documentation
tombeckenham Jun 26, 2025
cadb618
Split technical details
tombeckenham Jun 26, 2025
4d8d478
Added reference to new issue in web next to add multiple keys to mult…
tombeckenham Jun 26, 2025
76b29fc
Merge pull request #1106 from onflow:1105-task-technical-doc-for-mobi…
tombeckenham Jun 26, 2025
88da726
feat: new hidden account toggle
Jun 26, 2025
4e145e7
Merge branch 'dev' into 980-feature-update-settings-layout
Jun 26, 2025
418dd33
fixed: remove extra evm card
Jun 26, 2025
fd87ec7
Merge pull request #1109 from onflow:master
tombeckenham Jun 26, 2025
86b6870
Merge branch 'dev' into 861-feature-consolidate-password-input
Jun 26, 2025
cee1413
fixed: remove duplicate
Jun 26, 2025
ef3755b
fixed: storybook
Jun 26, 2025
97a13fe
fixed: use hook mock
Jun 26, 2025
7aac81f
Refactor wallet initialization process by removing redundant message …
tombeckenham Jun 27, 2025
01aac51
Created mock files for most major functions
tombeckenham Jun 27, 2025
389cf21
Removed unused mock file for UI hooks and cleaned up related code in …
tombeckenham Jun 27, 2025
ff87ac1
Updated default mocks
tombeckenham Jun 27, 2025
17b5e4a
Corrected useProfiles mock
tombeckenham Jun 27, 2025
b5af95d
Updated WalletContext mock and improved MenuDrawer and AccountImport …
tombeckenham Jun 27, 2025
9c494f1
fixed: component structure and file linting
Jun 27, 2025
abec9c1
Corrected useProfiles mock return value
tombeckenham Jun 27, 2025
fd9697d
Corrected feature flag mock
tombeckenham Jun 27, 2025
d73d0a2
Merge pull request #1111 from onflow:1110-feature-fixed-the-runtime-e…
tombeckenham Jun 27, 2025
9905021
fixed: update password component structure
Jun 27, 2025
343df28
Fixed up menu drawer stories
tombeckenham Jun 27, 2025
dd5e665
Merge pull request #1112 from onflow:1098-task-fix-storybook-mocks-ke…
tombeckenham Jun 27, 2025
d9fd989
fixed: remove extra sx
Jun 27, 2025
2b286a5
Merge with dev
tombeckenham Jun 27, 2025
6ff569e
feat: update password with helper text and error text component
Jun 27, 2025
f0c25b8
Updated background
tombeckenham Jun 27, 2025
922aeb1
Added helper text and error text
tombeckenham Jun 27, 2025
90cb240
Updated unlock to use errorText
tombeckenham Jun 27, 2025
60ce1fa
refactor: update PasswordInput props to use showPassword and setShowP…
tombeckenham Jun 27, 2025
b3143fb
Updated remove profile dialog to use errorText
tombeckenham Jun 27, 2025
88c8035
SettingsPassword uses errorText
tombeckenham Jun 27, 2025
d05d7fd
Updated change password dialog
tombeckenham Jun 27, 2025
9d4240f
Updated DecryptWallet
tombeckenham Jun 27, 2025
1d51cb6
Corrected error handling logic in setpassword
tombeckenham Jun 27, 2025
ec46f04
Corrected infinite loop in change password
tombeckenham Jun 27, 2025
a883bc9
Removed redundant components
tombeckenham Jun 29, 2025
3d44687
Clear opossing message states
tombeckenham Jun 29, 2025
0a57695
Corrected error message naming and dependecies in changePasswordWithB…
tombeckenham Jun 29, 2025
0b71061
Can't have rows if minRows is defined
tombeckenham Jun 29, 2025
b3b3119
Replaced SlideRelative with Collapse and reverted SlideRelative for o…
tombeckenham Jun 30, 2025
17265ea
Merge branch 'dev' into 980-feature-update-settings-layout
Jun 30, 2025
99da357
Added password component stories
tombeckenham Jun 30, 2025
108a357
Updated imports of SettingsPassword
tombeckenham Jun 30, 2025
5ad0347
Refactored password validation logic in SetPassword component to hand…
tombeckenham Jun 30, 2025
86452ed
Enhanced layout of ChangePassword component by adding gap styling and…
tombeckenham Jun 30, 2025
8da382f
Updated SetPassword component and added story
tombeckenham Jun 30, 2025
83a86bd
Updated gap and removed formgroup
tombeckenham Jun 30, 2025
6d86ca4
Now checks if touched before showing validation error and helper text
tombeckenham Jun 30, 2025
5a647e9
Added readonly story
tombeckenham Jun 30, 2025
53a180e
feat: update story book for setting page
Jun 30, 2025
f652087
Click agree to terms
tombeckenham Jun 30, 2025
f025492
Refactored checkbox interactions in helper functions to use setChecke…
tombeckenham Jun 30, 2025
28ff6c8
Added the password label back into e2e tests
tombeckenham Jun 30, 2025
51b1006
Reverted change to show errors only on blur
tombeckenham Jun 30, 2025
ec93813
Merge pull request #945 from onflow:861-feature-consolidate-password-…
tombeckenham Jun 30, 2025
d2823c9
Upgraded react-router to v7 using claude code
tombeckenham Jun 30, 2025
743a85a
Fixed up issue with Landing routes
tombeckenham Jun 30, 2025
184b89a
Remove missing import
tombeckenham Jun 30, 2025
956edda
feat: update storybook
Jun 30, 2025
5626810
Merge branch 'dev' into 980-feature-update-settings-layout
Jun 30, 2025
ae7d0c8
Merge branch 'dev' into 234-feature-upgrade-to-react-router-7
tombeckenham Jun 30, 2025
8797ddc
Updated storybook with proper react router addin
tombeckenham Jun 30, 2025
c0d8ae8
Corrected links which didn't start with slash
tombeckenham Jun 30, 2025
4715c11
Added withRouter to account listing and import
tombeckenham Jun 30, 2025
fd9267f
Merge pull request #1113 from onflow:234-feature-upgrade-to-react-rou…
tombeckenham Jul 1, 2025
6262442
Merge branch 'dev' into 980-feature-update-settings-layout
Jul 1, 2025
93feb92
fixed: linked account display issue
Jul 1, 2025
ce27387
fixed: setting story page
Jul 1, 2025
4a576c8
Corrected manage token links
tombeckenham Jul 1, 2025
537a587
Corrected swtich network dialog on evm
tombeckenham Jul 1, 2025
0134465
feat: add update account icon and name
Jul 1, 2025
7a54aae
fixed: merge component
Jul 1, 2025
d1354f7
Merge branch '980-feature-update-settings-layout' into 1114-feature-c…
Jul 1, 2025
6804347
fixed: revert
Jul 1, 2025
670d10f
fixed: revert position
Jul 1, 2025
2783189
fixed: component for evm and linked
Jul 1, 2025
993776a
fixed: story book error
Jul 1, 2025
b8b04e0
Merge branch '980-feature-update-settings-layout' into 1114-feature-c…
Jul 1, 2025
b9ac74f
Used new script to get all child and evm accounts in one hit. Removed…
tombeckenham Jul 2, 2025
536a9c4
fixed: account
Jul 2, 2025
0292552
Corrected story data
tombeckenham Jul 2, 2025
4ee4849
Merge pull request #1117 from onflow:1073-task-update-account-loading…
tombeckenham Jul 2, 2025
1e22b74
Merge pull request #1116 from onflow:1115-bug-routing-issues-on-staging
tombeckenham Jul 2, 2025
5071a01
Merge branch 'dev' into 980-feature-update-settings-layout
Jul 2, 2025
c72584c
Merge branch '980-feature-update-settings-layout' into 1114-feature-c…
Jul 2, 2025
1841a41
fixed: remove extra loading state
Jul 2, 2025
9da1f84
Merge branch '980-feature-update-settings-layout' into 1114-feature-c…
Jul 2, 2025
5f40909
Playwright gcp instructions
tombeckenham Jul 2, 2025
7dc46e2
fixed: small ui and text update
Jul 2, 2025
cfef2ab
fixed: goback link
Jul 2, 2025
6d283c4
fixed: setting link and llheader goback
Jul 2, 2025
ac439b1
fixed: give a default count
Jul 2, 2025
89d85b1
Merge branch '980-feature-update-settings-layout' into 1114-feature-c…
Jul 2, 2025
5ce7302
fixed: remove unused account storage, update it to the new mainaccount
Jul 2, 2025
e8a4483
feat: update evm account with the new account structure
Jul 2, 2025
1e8f318
fixed: setting list item storybook
Jul 3, 2025
1b7f32a
Isolated background/service with background/utils. Created lint rules…
tombeckenham Jul 3, 2025
ca5b88f
fixed: linkeddetail fix and update naming and links
Jul 3, 2025
d149036
fixed: update settings page and index
Jul 3, 2025
5ed4a5d
Corrected build
tombeckenham Jul 3, 2025
53fc5d5
Merge branch '980-feature-update-settings-layout' into 1114-feature-c…
Jul 3, 2025
b6a4d7f
Added unused import error
tombeckenham Jul 3, 2025
5b2ed3e
Reorganised consts
tombeckenham Jul 3, 2025
6105bb2
Removed background alias
tombeckenham Jul 3, 2025
1912001
Removed ui alias
tombeckenham Jul 3, 2025
3f6f311
Blocked all relative imports outside the ui folder
tombeckenham Jul 3, 2025
205aa72
fixed: update structure
Jul 3, 2025
81188d1
fixed: remove extra router
Jul 3, 2025
5cff2f7
Moved useWallet to its own hook file
tombeckenham Jul 3, 2025
ebc9d71
Moved algo constants
tombeckenham Jul 3, 2025
bfafaab
Merge branch '980-feature-update-settings-layout' into 1114-feature-c…
Jul 3, 2025
a01be14
fixed: setting change password
Jul 3, 2025
1ca8071
Ensure all ui does use relative paths outside of its own subfolder
tombeckenham Jul 3, 2025
1f0f7be
Ensured background folder could import anything outside using relativ…
tombeckenham Jul 3, 2025
750bece
Added a rule to ensure nothing in shared could import outside
tombeckenham Jul 3, 2025
4fd0b20
Corrected icon import
tombeckenham Jul 3, 2025
10f98ac
Moved service and util to core so we can create a libary out of that
tombeckenham Jul 3, 2025
a4f2d46
Nothing in ui imports anything in core
tombeckenham Jul 3, 2025
a0e02b6
Fixed up test imports and mocks
tombeckenham Jul 3, 2025
4f312b8
Clarifed KeyDetail
tombeckenham Jul 3, 2025
ea1514a
Added docs
tombeckenham Jul 3, 2025
8135bb0
Corrected no evm mocks
tombeckenham Jul 3, 2025
4f82cfd
fixed: settings update
Jul 3, 2025
566fbb0
Merge branch '980-feature-update-settings-layout' into 1114-feature-c…
Jul 3, 2025
e340827
Merge pull request #1120 from onflow:1118-task-restructure-aliases-first
tombeckenham Jul 3, 2025
45337cd
Updating to use GCP bucket for reports
tombeckenham Jul 4, 2025
df71e54
Now deploys storybook to chromatic while playwright tests are running
tombeckenham Jul 4, 2025
66bac4c
Merge branch 'dev' into 980-feature-update-settings-layout
Jul 4, 2025
bade1bc
Changed GCS_BUCKET_NAME to a variable
tombeckenham Jul 4, 2025
fe042df
fixed: stage build file
Jul 4, 2025
5a83ccb
fixed: update background
Jul 4, 2025
968acb3
fixed: update core file
Jul 4, 2025
858aad4
fixed: update constant files
Jul 4, 2025
1b374bc
Moved back to executed state
tombeckenham Jul 4, 2025
52a0493
fixed: background change desc function
Jul 4, 2025
0ab0a99
fixed: update components
Jul 4, 2025
ba0f0b1
fixed: update hooks
Jul 4, 2025
3ca1244
fixed: update ui files
Jul 4, 2025
3104fed
fixed: update ui views
Jul 4, 2025
c113862
fixed: storybook render
Jul 4, 2025
40aaa4f
Merge pull request #1072 from onflow/980-feature-update-settings-layout
zzggo Jul 4, 2025
a8c3003
Merge branch 'dev' into 1126-feature-update-the-import-background-and…
tombeckenham Jul 4, 2025
a6587ca
Merge remote-tracking branch 'origin/dev' into 1126-feature-update-th…
tombeckenham Jul 4, 2025
0b05d0c
Merge branch 'dev' into 1114-feature-change-the-account-icon-and-name…
Jul 4, 2025
d07ae2f
fixed: current background
Jul 4, 2025
ddc2c8f
fixed: merge dev update folder
Jul 4, 2025
eb53e1e
fixed: merge ui
Jul 4, 2025
3756f98
Added helper to ensure that the mnemonic is copied properly
tombeckenham Jul 4, 2025
e23b657
fixed: merge view
Jul 4, 2025
d7acaa4
Merge pull request #1123 from onflow:1119-task-playwright-reports-too…
tombeckenham Jul 4, 2025
f244685
Merge pull request #1125 from onflow:1122-move-back-to-executed-state…
tombeckenham Jul 4, 2025
64bfa39
Merge remote-tracking branch 'origin/dev' into 1126-feature-update-th…
tombeckenham Jul 4, 2025
4ba638f
Corrected storybook mocks
tombeckenham Jul 4, 2025
78dc551
Added withRouter to recover profile
tombeckenham Jul 4, 2025
71d8299
Uses USE_PROFILES_MOCK
tombeckenham Jul 4, 2025
e00b26a
feat: add storybook for link and account detail page
Jul 4, 2025
efee744
Merge branch 'dev' into 1114-feature-change-the-account-icon-and-name…
Jul 4, 2025
81be2a4
fixed: show correct profile
Jul 4, 2025
4a476f8
fixed: remove console
Jul 4, 2025
eb7106b
Merge pull request #1127 from onflow:1126-feature-update-the-import-b…
tombeckenham Jul 4, 2025
6b60329
Merge branch 'dev' into 1114-feature-change-the-account-icon-and-name…
zzggo Jul 4, 2025
f1dbecf
feat: update version number
Jul 4, 2025
60cc862
Merge pull request #1121 from onflow/1114-feature-change-the-account-…
zzggo Jul 4, 2025
4f7cb91
feat: use cached account data first before requesting for indexer data
Jul 7, 2025
947cc8e
Corrected Confetti issue
tombeckenham Jul 7, 2025
d41b5e0
Corrected scroll, gap, and message on import tabs
tombeckenham Jul 7, 2025
3b9070e
Corrected an issue on the mobile import tab
tombeckenham Jul 7, 2025
cce2cf8
fixed: getting the right algo through keyring service, and remove cle…
Jul 7, 2025
f07468b
Added skeleton to handle case of where the indexes have not yet been …
tombeckenham Jul 7, 2025
04088b8
Added fix to make sure skeleton is shown before word is chosen. Fixes…
tombeckenham Jul 7, 2025
2867349
Updated pending count
tombeckenham Jul 7, 2025
48b5c04
fixed: update switch profile and unlock profile login so uses the dat…
Jul 7, 2025
17deb69
Merge branch '1100-task-optimise-profile-switching' of github.com:onf…
Jul 7, 2025
c4ede41
Added trigger refresh mock
tombeckenham Jul 7, 2025
3243919
Merge pull request #1129 from onflow:1107-bug-confetti-blocks-pointer…
tombeckenham Jul 7, 2025
56753be
fixed revert indexer
Jul 7, 2025
d66e163
fixed: login
Jul 7, 2025
b2cdb3e
Merge branch 'dev' into 1100-task-optimise-profile-switching
Jul 8, 2025
8372662
Simplfied loginWithPublicPrivateKey to not require the hash algo
tombeckenham Jul 8, 2025
8191e40
Merge pull request #1128 from onflow/1100-task-optimise-profile-switc…
zzggo Jul 8, 2025
bdda2a4
Created shared package
tombeckenham Jul 8, 2025
289faa5
Updated import rules
tombeckenham Jul 8, 2025
722a22a
Updated import paths and lint rules
tombeckenham Jul 8, 2025
b176386
Moved the extension into its own package
tombeckenham Jul 8, 2025
4bbad6f
Updated package and build to support moving extension
tombeckenham Jul 8, 2025
6d66792
Update GitHub Actions workflow and husky setup for monorepo structure
tombeckenham Jul 8, 2025
b95ee34
Husky only configured at root
tombeckenham Jul 8, 2025
259767b
Corrected test imports
tombeckenham Jul 8, 2025
0314572
Updated shared package type and updated gitignore
tombeckenham Jul 8, 2025
c081a0f
Corrected storybook build
tombeckenham Jul 8, 2025
be0e2df
Corrected playwright report path
tombeckenham Jul 8, 2025
13a760d
Made console log platform independent and added chrome logger
tombeckenham Jul 8, 2025
756182d
Merge branch 'dev' into 1124-task-multi-package-tom
tombeckenham Jul 8, 2025
b22c830
Added reducers package
tombeckenham Jul 8, 2025
d0a895a
Updated docs
tombeckenham Jul 8, 2025
39e926b
Updated .gitignore paths, added env.example for configuration, update…
tombeckenham Jul 8, 2025
c09364d
Corrected the repeat phrase screen again...
tombeckenham Jul 8, 2025
d050613
fixed: evm nft collection page offset
Jul 9, 2025
ce95055
Fixed permission site cache issue. Added migration
tombeckenham Jul 9, 2025
5b6bdf4
Update packages and add copy plugin
tombeckenham Jul 9, 2025
e9feb5b
Created common config between mac and windows
tombeckenham Jul 9, 2025
767dfa4
Added config for reducers build
tombeckenham Jul 9, 2025
8a01d93
Added aliases to packages as it speeds up the build slightly
tombeckenham Jul 9, 2025
734b7db
Updated pnpm-lock.yaml to include new versions for @types/react, @typ…
tombeckenham Jul 9, 2025
3698eeb
Merge pull request #1132 from onflow:1124-task-multi-package-tom
tombeckenham Jul 9, 2025
a6f036c
Merge branch 'dev' into 1133-bug-extension-nft-search-page-is-not-usi…
tombeckenham Jul 9, 2025
4c0b58d
Merge pull request #1135 from onflow:1133-bug-extension-nft-search-pa…
tombeckenham Jul 9, 2025
1242448
Merge pull request #1136 from onflow/dev
tombeckenham Jul 9, 2025
f94fefd
Added size calculation to lru cache and a load of tests
tombeckenham Jul 10, 2025
9b12500
Corrected license on packages
tombeckenham Jul 10, 2025
44a6c1a
Merge pull request #1140 from onflow:1137-bug-lrucache-error
tombeckenham Jul 10, 2025
3d5afd6
Unified Token Avatars across the extension
tombeckenham Jul 10, 2025
0588a84
Merge pull request #1144 from onflow:1143-bug-tokens-with-no-icon-sho…
tombeckenham Jul 10, 2025
84e4400
Added manual actions trigger
tombeckenham Jul 10, 2025
af18845
Merge pull request #1146 from onflow:1145-task-add-manual-github-acti…
tombeckenham Jul 10, 2025
011c17a
Merge pull request #1141 from onflow:master
tombeckenham Jul 10, 2025
4c61314
feat: new welcome page
Jul 10, 2025
8bc112a
Merge branch 'dev' into 1024-feature-update-landing-components-backgr…
Jul 10, 2025
3144121
fixed: e2e test for new wallet
Jul 10, 2025
5ffba8a
fixed: remove referrer for external link
Jul 10, 2025
8e5d0a0
fixed: update test classname
Jul 11, 2025
44237c0
fixed: component and translation, add storybook
Jul 11, 2025
0479b69
fixed: update url import
Jul 11, 2025
329161b
fixed: update i18n tags
Jul 11, 2025
2827e6c
Small tweaks
tombeckenham Jul 11, 2025
7bc6282
Merge pull request #1147 from onflow/1024-feature-update-landing-comp…
zzggo Jul 11, 2025
2112765
Moved all frames back to false
tombeckenham Jul 11, 2025
068169d
Merge pull request #1150 from onflow:1149-bug-loading-in-all-frames-c…
tombeckenham Jul 11, 2025
ec5ca52
Merge pull request #1151 from onflow/dev
tombeckenham Jul 11, 2025
0260b1d
Changed the scroll on landing components
tombeckenham Jul 14, 2025
4061b42
Merge pull request #1170 from onflow:1169-bug-cant-scroll-on-import-p…
tombeckenham Jul 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 3 additions & 3 deletions .cursor/rules/project-rules.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ pnpm add <package-name>
## Directory Structure

- **`src/background`**: Contains the code for the extension's background script.
- **`service/`**: Houses various services that run in the background, like API calls and wallet logic. See [userWallet.ts](mdc:src/background/service/userWallet.ts).
- **`service/`**: Houses various services that run in the background, like API calls and wallet logic. See [userWallet.ts](mdc:src/core/service/userWallet.ts).
- **`utils/`**: Utilities for the background script.
- **`src/ui`**: Contains all UI-related code.
- **`components/`**: Shared, reusable React components. See [FRWProfile.tsx](mdc:src/ui/components/FRWProfile.tsx).
Expand All @@ -64,7 +64,7 @@ To maintain consistency, please adhere to the following naming conventions for n

- **Flow Interaction**: The [@onflow/fcl](mdc:https:/github.com/onflow/fcl-js) library is used for all interactions with the Flow blockchain.
- **State Management**: The application uses a combination of React hooks, and data cache storage using chrome storage.
- **Firebase**: Used for remote configuration. See [firebaseConfig.ts](mdc:src/background/utils/firebaseConfig.ts).
- **Firebase**: Used for remote configuration. See [firebaseConfig.ts](mdc:src/core/utils/firebaseConfig.ts).
- **Internationalization (i18n)**: Text is managed in [messages.json](mdc:src/messages.json) and loaded via `i18n.ts`.

## Data Caching
Expand All @@ -89,7 +89,7 @@ The extension uses a custom stale-while-revalidate caching system designed for t
- **`docs/cache-data-model.md`**: The primary documentation for this system.
- **`src/shared/utils/cache-data-keys.ts`**: Defines keys and data types for temporary session data.
- **`src/shared/utils/user-data-keys.ts`**: Defines keys and data types for persistent user data.
- **`src/background/utils/data-cache.ts`**: Contains the core logic for the caching mechanism, including `registerRefreshListener` for single items and `registerBatchRefreshListener` for batching multiple requests.
- **`src/core/utils/data-cache.ts`**: Contains the core logic for the caching mechanism, including `registerRefreshListener` for single items and `registerBatchRefreshListener` for batching multiple requests.

### Implementation Pattern

Expand Down
125 changes: 70 additions & 55 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: Extension Build

on:
push:
workflow_dispatch:

jobs:
determine-env:
Expand Down Expand Up @@ -121,23 +122,23 @@ jobs:
EOF
}

# Always create .env.pro
create_env_file ".env.pro"
# Always create .env.pro in extension directory
create_env_file "apps/extension/.env.pro"

# Create .env.dev if environment is development
if [[ "${{ needs.determine-env.outputs.env_name }}" == "development" || "${{ needs.determine-env.outputs.env_name }}" == "staging" ]]; then
create_env_file ".env.dev"
create_env_file "apps/extension/.env.dev"
fi

- name: Run tests
run: pnpm test
run: pnpm -F flow-wallet-extension test:run

- name: Build
run: |
if [[ "${{ needs.determine-env.outputs.env_name }}" == "development" || "${{ needs.determine-env.outputs.env_name }}" == "staging" ]]; then
pnpm run build:dev-ci
pnpm -F flow-wallet-extension build:dev-ci
else
pnpm run build:ci
pnpm -F flow-wallet-extension build:ci
fi
env:
CI: true
Expand All @@ -151,12 +152,12 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: extension-build
path: dist/
path: apps/extension/dist/

- name: Check build size
run: |
echo "Build size:"
du -sh dist/
du -sh apps/extension/dist/

test:
needs: [determine-env, build]
Expand Down Expand Up @@ -185,11 +186,11 @@ jobs:
uses: actions/download-artifact@v4
with:
name: extension-build
path: dist/
path: apps/extension/dist/

- name: Create .env.test file
run: |
cat << EOF > .env.test
cat << EOF > apps/extension/.env.test
# Test secrets
TEST_PASSWORD="${{ secrets.TEST_PASSWORD }}"
TEST_SEED_PHRASE_RECEIVER="${{ secrets.TEST_SEED_PHRASE_RECEIVER }}"
Expand All @@ -212,31 +213,80 @@ jobs:
- name: Install Playwright Browsers
run: pnpm playwright install --with-deps chromium
- name: Run Playwright tests
run: pnpm test:e2e
run: pnpm -F flow-wallet-extension test:e2e
env:
CI: true
HEADLESS: true
- name: Sanitize Playwright Report
if: always()
run: pnpm tsx build/sanitize-playwright.ts
run: cd apps/extension && pnpm tsx build/sanitize-playwright.ts
- uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: playwright-report/
path: apps/extension/playwright-report/
retention-days: 30

deploy-storybook-and-reports:
needs: [test] # Depends on the Playwright test job
deploy-reports:
needs: [test]
runs-on: ubuntu-latest
if: always() # Run even if tests fail to publish what's available
if: always()
permissions:
contents: 'read'
id-token: 'write'
steps:
- name: Download Playwright Report
uses: actions/download-artifact@v4
with:
name: playwright-report
path: playwright-report

- name: Authenticate to Google Cloud
id: auth
uses: google-github-actions/auth@v2
with:
token_format: 'access_token'
workload_identity_provider: ${{ secrets.WORKLOAD_IDENTITY_PROVIDER }}
service_account: ${{ secrets.SERVICE_ACCOUNT }}

- name: Setup Google Cloud CLI
uses: google-github-actions/setup-gcloud@v1
with:
project_id: ${{ secrets.PROJECT_ID }}

- name: Upload reports to GCS
run: |
RUN_DIR="reports/run-${{ github.run_id }}"
gsutil -m cp -r playwright-report/* gs://${{ vars.GCS_BUCKET_NAME }}/$RUN_DIR/
echo "REPORT_URL=https://storage.googleapis.com/${{ vars.GCS_BUCKET_NAME }}/$RUN_DIR/index.html" >> $GITHUB_ENV

- name: Add Job Summary
if: always()
run: |
echo "## 🎭 Playwright Test Results" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### 📊 Report Details" >> $GITHUB_STEP_SUMMARY
echo "- **Run ID**: ${{ github.run_id }}" >> $GITHUB_STEP_SUMMARY
echo "- **Branch**: ${{ github.ref_name }}" >> $GITHUB_STEP_SUMMARY
echo "- **Commit**: ${{ github.sha }}" >> $GITHUB_STEP_SUMMARY
echo "- **Triggered by**: ${{ github.event_name }}" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### 🔗 Links" >> $GITHUB_STEP_SUMMARY
echo "- 📋 **[View Full Report](${{ env.REPORT_URL }})**" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "> 💡 **Tip**: Click the report link above to view detailed test results, traces, and screenshots!" >> $GITHUB_STEP_SUMMARY

deploy-storybook:
needs: [build]
runs-on: ubuntu-latest
if: always()
strategy:
matrix:
node-version: [22.x]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Fetch all history for tags
fetch-depth: 0

- name: Install pnpm
uses: pnpm/action-setup@v4
Expand All @@ -250,47 +300,12 @@ jobs:
- name: Install dependencies
run: pnpm install

- name: Download Playwright Report
uses: actions/download-artifact@v4
with:
name: playwright-report
path: playwright-report/ # Download to this path

- name: Create .nojekyll file
run: touch playwright-report/.nojekyll

- name: Deploy Playwright Report
uses: peaceiris/actions-gh-pages@v4
if: always() # Deploy even if tests fail
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./playwright-report
destination_dir: reports/run-${{ github.run_id }}
keep_files: true

- name: Build Storybook
run: pnpm build-storybook # Assumes output is storybook-static
run: pnpm -F flow-wallet-extension build-storybook

- name: Publish to Chromatic
uses: chromaui/action@v1
with:
projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
storybookBuildDir: storybook-static # Directory with Storybook and reports
exitZeroOnChanges: true # Optional: useful for PR checks
# workingDir: . # Not needed if storybookBuildDir is set correctly

- name: Add Job Summary
if: always()
run: |
echo "## 🎭 Playwright Test Results" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### 📊 Report Details" >> $GITHUB_STEP_SUMMARY
echo "- **Run ID**: ${{ github.run_id }}" >> $GITHUB_STEP_SUMMARY
echo "- **Branch**: ${{ github.ref_name }}" >> $GITHUB_STEP_SUMMARY
echo "- **Commit**: ${{ github.sha }}" >> $GITHUB_STEP_SUMMARY
echo "- **Triggered by**: ${{ github.event_name }}" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### 🔗 Links" >> $GITHUB_STEP_SUMMARY
echo "- 📋 **[View Full Report](https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/reports/run-${{ github.run_id }}/)**" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "> 💡 **Tip**: Click the report link above to view detailed test results, traces, and screenshots!" >> $GITHUB_STEP_SUMMARY
storybookBuildDir: apps/extension/storybook-static
exitZeroOnChanges: true
17 changes: 8 additions & 9 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,29 +12,28 @@ yarn.lock
.env.pro
.env.*
dist.zip
_raw/manifest.json
_raw/react-devtools.js
apps/extension/_raw/manifest.json
apps/extension/_raw/react-devtools.js
yarn-error.log
dist2
src/background/utils/firebase.config.json
dist.rar
dist.7z
**/firebase.config.json
.cursorrules
/test-results/
/playwright-report/
/blob-report/
/playwright/.cache/
test-results
playwright-report
blob-report
playwright
dependency-usage.md
extension-dependencies.md
emulator-account.pkey
flow.json
coverage
.github-data
playwright/.auth

**/.claude/settings.local.json

*storybook.log
storybook-static

/docs-archive/
docs-archive
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
22
Loading
Loading