Skip to content

Revert "Ci/cd vercel prebuild Merge pull request #136 "#830

Merged
Dargon789 merged 1 commit intomainfrom
revert-783-ci/cd-vercel-prebuild
Jan 21, 2026
Merged

Revert "Ci/cd vercel prebuild Merge pull request #136 "#830
Dargon789 merged 1 commit intomainfrom
revert-783-ci/cd-vercel-prebuild

Conversation

@Dargon789
Copy link
Copy Markdown
Owner

@Dargon789 Dargon789 commented Jan 21, 2026

Reverts #783

Summary by Sourcery

Revert prior Vercel CI/CD and example app changes while adding minor UI and test updates.

Bug Fixes:

  • Ensure wallet send preview redirects to the account view on successful send and reflects loading state on submission.

Enhancements:

  • Simplify the collapsed wallet connect button by removing the wallet icon.
  • Improve test coverage for wallet send preview and connect flows.

CI:

  • Remove debug output of AWS secrets from the canary publish workflow.

Deployment:

  • Remove Vercel-specific headers from Playwright lab configuration and drop generated Vercel output artifacts and related sample apps from the repo.

Tests:

  • Add tests verifying redirect and loading behavior of the wallet send preview view and adjust connect view tests accordingly.

Chores:

  • Remove deprecated example dapps, security document, and obsolete changeset files.
  • Add a new changeset describing enhanced connection UX for QR-based wallet prompts.

@bolt-new-by-stackblitz
Copy link
Copy Markdown

Review PR in StackBlitz Codeflow Run & review this pull request in StackBlitz Codeflow.

@codesandbox
Copy link
Copy Markdown

codesandbox bot commented Jan 21, 2026

Review or Edit in CodeSandbox

Open the branch in Web EditorVS CodeInsiders

Open Preview

@sourcery-ai
Copy link
Copy Markdown

sourcery-ai bot commented Jan 21, 2026

Reviewer's Guide

This PR reverts prior Vercel CI/CD and example app integration while refining the connect view UX, tightening CI config, documenting the new connection behavior, and adding tests for wallet send preview routing and loading states.

File-Level Changes

Change Details Files
Refine connect view collapsed wallets button appearance.
  • Remove wallet icon from the collapsed wallets button when wallets are collapsed.
  • Delete the unit test that asserted the presence of the wallet icon on the collapsed wallets button.
packages/scaffold-ui/src/views/w3m-connect-view/index.ts
packages/scaffold-ui/test/views/w3m-connect-view.test.ts
Add coverage for wallet send preview routing and loading behavior.
  • Add a test to verify that a successful token send redirects to the Account view via RouterController.replace.
  • Add a test to verify that the send button shows a loading state when SendController.state.loading is true.
packages/scaffold-ui/test/views/w3m-wallet-send-preview-view.test.ts
Simplify Playwright lab configuration and remove Vercel-specific HTTP headers.
  • Remove extraHTTPHeaders configuration that injected the x-vercel-protection-bypass header from the Vercel automation secret.
  • Keep video recording on failure while leaving the rest of the test configuration unchanged.
apps/laboratory/playwright.config.ts
Tighten canary publish workflow by removing secret debugging output.
  • Delete the step that printed AWS ECR publisher credentials to logs.
  • Leave the rest of the canary publish workflow intact.
.github/workflows/publish_canary.yml
Document enhanced connection UX for QR-based flows via changeset.
  • Introduce a new changeset describing enhanced connection UX for scanning QR codes with the main device camera and prompting the target wallet.
  • Remove several obsolete changeset files that are no longer needed.
.changeset/soft-terms-design.md
.changeset/ninety-poets-bake.md
.changeset/spotty-cherries-raise.md
.changeset/spotty-deers-knock.md
.changeset/wet-hotels-repair.md
.changeset/wise-tigers-poke.md
Remove example dapp, web3 game, generated Vercel output, and obsolete security file as part of reverting prior work.
  • Delete the appkit-dapp example application and its configuration, assets, and build files.
  • Delete the web3-game example application and its configuration, assets, and build files.
  • Remove previously committed .vercel/output artifacts under the web3game directory.
  • Remove the standalone SECURITY.md file that is no longer required.
  • Touch Dockerfile.canary and apps/laboratory/.env.example as part of the revert (no functional changes shown).
SECURITY.md
Dockerfile.canary
apps/laboratory/.env.example
appkit-dapp/*
web3-game/*
web3game/.vercel/output/*

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@snyk-io
Copy link
Copy Markdown

snyk-io bot commented Jan 21, 2026

Snyk checks have passed. No issues have been found so far.

Status Scanner Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

Repository owner deleted a comment from vercel bot Jan 21, 2026
Copy link
Copy Markdown

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

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

Hey - I've found 4 issues

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location> `packages/scaffold-ui/test/views/w3m-wallet-send-preview-view.test.ts:247-256` </location>
<code_context>
     expect(valueText?.textContent?.trim()).to.equal('$100.00')
   })
+
+  it('should redirect to account view when send is successful', async () => {
+    const sendSpy = vi.spyOn(SendController, 'sendToken').mockResolvedValue()
+    const routerSpy = vi.spyOn(RouterController, 'replace')
+    vi.spyOn(SendController, 'state', 'get').mockReturnValue({
+      ...mockSendControllerState
+    })
+
+    const element = await fixture<W3mWalletSendPreviewView>(
+      html`<w3m-wallet-send-preview-view></w3m-wallet-send-preview-view>`
+    )
+
+    await element.updateComplete
+
+    let button: WuiButton = element.shadowRoot?.querySelector('.sendButton') as WuiButton
+    button?.click()
+
+    await element.updateComplete
+
+    viExpect(sendSpy).toHaveBeenCalled()
+    viExpect(routerSpy).toHaveBeenCalledWith('Account')
+  })
+
</code_context>

<issue_to_address>
**suggestion (testing):** Add a negative-path test for send failure or rejection to cover error handling behavior.

This test only covers the successful send-and-redirect path. Please also add a test where `SendController.sendToken` is mocked to reject/throw (e.g. network error, user cancellation) and assert that the router is *not* redirected to `Account`, and that any error/notification or state-reset behavior is exercised, so the redirect is verified to occur only on true success.

Suggested implementation:

```typescript
  it('should redirect to account view when send is successful', async () => {
    const sendSpy = vi.spyOn(SendController, 'sendToken').mockResolvedValue()
    const routerSpy = vi.spyOn(RouterController, 'replace')
    vi.spyOn(SendController, 'state', 'get').mockReturnValue({
      ...mockSendControllerState
    })

    const element = await fixture<W3mWalletSendPreviewView>(
      html`<w3m-wallet-send-preview-view></w3m-wallet-send-preview-view>`
    )

    await element.updateComplete

    let button: WuiButton = element.shadowRoot?.querySelector('.sendButton') as WuiButton
    button?.click()

    await element.updateComplete

    viExpect(sendSpy).toHaveBeenCalled()
    viExpect(routerSpy).toHaveBeenCalledWith('Account')
  })

  it('should not redirect to account view when send fails', async () => {
    const error = new Error('Network error')
    const sendSpy = vi.spyOn(SendController, 'sendToken').mockRejectedValue(error)
    const routerSpy = vi.spyOn(RouterController, 'replace')
    vi.spyOn(SendController, 'state', 'get').mockReturnValue({
      ...mockSendControllerState
    })

    const element = await fixture<W3mWalletSendPreviewView>(
      html`<w3m-wallet-send-preview-view></w3m-wallet-send-preview-view>`
    )

    await element.updateComplete

    const button: WuiButton = element.shadowRoot?.querySelector('.sendButton') as WuiButton
    button?.click()

    // Allow any async error-handling logic in the component to run
    await element.updateComplete

    viExpect(sendSpy).toHaveBeenCalled()
    viExpect(routerSpy).not.toHaveBeenCalledWith('Account')
  })

```

If the component exposes a specific error-handling behavior (e.g. an error message element, toast trigger, or state-reset flag), you should extend the new test to assert that behavior explicitly. For example, you might query for an error text node in the shadow DOM or verify that a notification controller was called, depending on how `W3mWalletSendPreviewView` implements error handling.
</issue_to_address>

### Comment 2
<location> `packages/scaffold-ui/test/views/w3m-wallet-send-preview-view.test.ts:269-285` </location>
<code_context>
+    viExpect(routerSpy).toHaveBeenCalledWith('Account')
+  })
+
+  it('should show loading state when sending', async () => {
+    // Mock SendController.state to have loading=true
+    vi.spyOn(SendController, 'state', 'get').mockReturnValue({
+      ...mockSendControllerState,
+      loading: true
+    })
+
+    const element = await fixture<W3mWalletSendPreviewView>(
+      html`<w3m-wallet-send-preview-view></w3m-wallet-send-preview-view>`
+    )
+
+    await element.updateComplete
+
+    // Get the button and check if it has the loading property set
+    const button = element.shadowRoot?.querySelector('.sendButton') as WuiButton
+    expect(button?.loading).to.equal(true)
+  })
 })
</code_context>

<issue_to_address>
**suggestion (testing):** Extend the loading-state test to assert behavior when interacting while loading.

This test confirms the `loading` flag is set on the button, but not how that state affects behavior. Please also assert that clicking `.sendButton` while `loading: true` does not call `SendController.sendToken`, and/or that the button is disabled or otherwise non-interactive while loading, if that’s the expected UX. That will verify the loading state is enforced functionally, not just visually.

```suggestion
  it('should show loading state when sending', async () => {
    // Mock SendController.state to have loading=true
    vi.spyOn(SendController, 'state', 'get').mockReturnValue({
      ...mockSendControllerState,
      loading: true
    })
    const sendSpy = vi.spyOn(SendController, 'sendToken').mockResolvedValue()

    const element = await fixture<W3mWalletSendPreviewView>(
      html`<w3m-wallet-send-preview-view></w3m-wallet-send-preview-view>`
    )

    await element.updateComplete

    // Get the button and check if it has the loading property set
    const button = element.shadowRoot?.querySelector('.sendButton') as WuiButton
    expect(button?.loading).to.equal(true)

    // While loading, interaction should not trigger sending
    button?.click()
    await element.updateComplete

    viExpect(sendSpy).not.toHaveBeenCalled()
  })
```
</issue_to_address>

### Comment 3
<location> `packages/scaffold-ui/test/views/w3m-connect-view.test.ts:150-159` </location>
<code_context>
     expect(HelpersUtil.querySelect(element, WALLET_LOGIN_LIST)).toBeNull()
   })

-  it('should render collapse wallets button with wallet icon when collapseWallets is true', async () => {
-    vi.spyOn(OptionsController, 'state', 'get').mockReturnValue({
-      ...OptionsController.state,
-      enableWallets: true,
-      features: {
-        connectMethodsOrder: ['wallet', 'email', 'social'],
-        collapseWallets: true
-      },
-      remoteFeatures: {
-        email: true,
-        socials: ['google']
-      }
-    })
-
-    const element: W3mConnectView = await fixture(html`<w3m-connect-view></w3m-connect-view>`)
-
-    const collapseButton = HelpersUtil.getByTestId(element, COLLAPSE_WALLETS_BUTTON)
-    expect(collapseButton).not.toBeNull()
-    expect(collapseButton?.getAttribute('icon')).toBe('wallet')
-  })
-
</code_context>

<issue_to_address>
**suggestion (testing):** Replace the removed icon assertion with a test that verifies the new icon-less collapse wallets UX.

With the icon-specific test removed, the new “no icon on collapse wallets button” behavior isn’t validated anywhere. To preserve regression coverage, please add a test that:
- Confirms the collapse wallets button renders when `collapseWallets` is true, and
- Asserts that its `icon` attribute is absent or explicitly unset.
This will encode the new UX as an explicit, enforced behavior in the test suite.
</issue_to_address>

### Comment 4
<location> `.changeset/soft-terms-design.md:29` </location>
<code_context>
+'@reown/appkit-wallet-button': patch
+---
+
+Enhanced connection UX by allowing scanning of QR code with main device camera and prompting the target wallet
</code_context>

<issue_to_address>
**suggestion (typo):** Consider adding articles and closing punctuation for smoother grammar.

For example: "Enhanced connection UX by allowing scanning of the QR code with the main device camera and prompting the target wallet." Adding "the" before "QR code" and "main device camera," and ending with a period will make it read more naturally.
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@Dargon789 Dargon789 merged commit f9835a8 into main Jan 21, 2026
15 of 33 checks passed
@Dargon789 Dargon789 deleted the revert-783-ci/cd-vercel-prebuild branch January 21, 2026 14:20
@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello @Dargon789, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request aims to revert a series of changes introduced by a previous pull request. The changes include modifications to the build process, removal of certain example files, and the undoing of a UI fix. The primary goal is to restore the repository to its state before the initial pull request was merged.

Highlights

  • Reverts Changes: This pull request reverts a previous pull request, effectively undoing the changes it introduced.
  • Removes Files: Several .changeset files and appkit-dapp related files, along with SECURITY.md and web3-game/.env.example, have been removed.
  • Modifies Files: The Dockerfile.canary and apps/laboratory/.env.example files have been modified to revert to previous states.
  • Fixes UI Issue: This PR reverts a change that was made to fix an issue with the 'Continue with wallet' button in the scaffold-ui package.
Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/publish_canary.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request primarily reverts a previous change related to Vercel CI/CD and example applications, which is reflected in the large number of removed files. It also includes some valuable bug fixes and enhancements, such as simplifying the wallet connect button and adding test coverage for the wallet send preview. The changes are well-aligned with the description. I have one suggestion regarding the Dockerfile to improve build reproducibility.

@@ -1,4 +1,4 @@
FROM node:22.14.0-bookworm-slim
FROM node:22-bullseye
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

For better build reproducibility, it's a good practice to pin the Node.js version in the FROM instruction. Using a floating tag like node:22-bullseye can lead to unexpected build failures if the base image is updated with breaking changes. Pinning to a specific version ensures that your builds are consistent and predictable.

FROM node:22.4.1-bullseye

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

# Flow diagram for selecting GitHub issue templates *Review the following changes in direct dependencies.*#rabby

1 participant