ci: fix all 5 failing PR checks (update base for #727)#744
Open
Dickson2015 wants to merge 42 commits into
Open
ci: fix all 5 failing PR checks (update base for #727)#744Dickson2015 wants to merge 42 commits into
Dickson2015 wants to merge 42 commits into
Conversation
- Iris-IV#607: raise HSTS max-age to 63072000 (2 years) in next.config.ts - Iris-IV#611: self-host Inter via next/font/google with font-display swap, eliminating render-blocking font fetch - Iris-IV#606: add onRefetch polling (10s) to DonationModal so concurrent donations update progress bar while input is open - Iris-IV#605: multi-language campaign descriptions via [lang:en]/[lang:es] encoding; detail page resolves viewer locale with English fallback
The OnboardingTour uses localStorage to gate visibility. On CI each browser session starts cold so the tour appeared and intercepted pointer events, causing every journey test to time out on click actions. Seed onboarding_tour_dismissed via addInitScript so the flag is present before React hydration reads localStorage.
- Fix isConnected()/isAllowed() destructuring (Freighter API v6 returns objects, not primitives) — was causing disconnect branch to never be reached - Replace WatchWalletChanges with 5s polling + visibilitychange listener (WatchWalletChanges only fires on address/network changes, not disconnection) - Fix isAllowed() handling in connectWallet — 'not authorized' warning was unreachable - Update test mocks to match v6 API shape, add external disconnect test
- Add optional latitude/longitude fields to Campaign type - Create CampaignMap component with valid-coordinate filtering - Create MapErrorBoundary for map-specific error handling - Add list/map view toggle to Causes page with dynamic leaflet import - Update mock campaigns with sample coordinates (some with, some without) - Add i18n keys for listView/mapView - Write tests for helpers, filter, and error boundary
Issue Iris-IV#651 — Multi-signature withdrawal for creator dashboard - Add `useMultiSigProposals` hook managing proposals via localStorage - Add `MultiSigWithdrawalPanel` component: creators set co-signers and a threshold; co-signers approve; withdrawal executes once threshold met - Integrate panel into dashboard submitted-campaigns section - Add i18n strings (en + es) under `MultiSigPanel` namespace Issue Iris-IV#668 — Pagination Next button disabled correctly on last page - Add reusable `Pagination` component: Next disabled when currentPage === totalPages, Prev disabled when currentPage === 1 - Apply to admin pending-campaigns list (5 per page) Issue Iris-IV#601 — Storybook with stories for all reusable UI components - Add @storybook/nextjs + addons to devDependencies - Add `storybook` and `build-storybook` npm scripts - Add `.storybook/main.ts` and `.storybook/preview.tsx` with NextIntlClientProvider decorator - Add stories for: CauseCard, DonationModal, VotingComponent, ShareButtons, DeadlineCountdown, FundingProgressBar, Skeleton Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Regenerates the lock file after adding @storybook/nextjs, @storybook/react, @storybook/addon-essentials, @storybook/addon-interactions, and storybook devDependencies in the previous commit. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…nd dependency scanning - Add CampaignMap component showing active campaigns on an interactive world map with mock coordinates, hover tooltips, and campaign list legend - Add AdminTwoFactorSetup component with a 3-step TOTP flow (intro → QR scan → verification → confirmed); integrated into the admin dashboard - Add .github/workflows/branch-naming.yml enforcing feat|fix|docs|test|chore| refactor|perf|ci|build|revert prefix convention on every PR - Add .github/workflows/security.yml with dedicated npm audit (high+critical) and CodeQL static analysis jobs on push, PR, and weekly schedule Closes Iris-IV#685 Closes Iris-IV#686 Closes Iris-IV#687 Closes Iris-IV#688
…687-688 feat: add campaign map, admin 2FA setup, branch naming enforcement, and dependency scanning
… saving - Add QR modal to ShareButtons: campaign URL QR + optional wallet address QR via qrserver.com, each with a Download link; closes on Escape/backdrop click - Add EditCampaignMetadata component: collapsible panel for creators to edit title, description, and cover image before verification; overrides stored in localStorage with an audit trail (editedAt timestamp + clear button); wired into CauseDetailClient with isCreator/canEdit guard - Make campaign draft per-wallet in NewCauseClient: key is now proof_of_heart_draft_<publicKey>; added hasDraft state, lastSavedAt indicator, and Discard draft button that resets all fields Closes Iris-IV#487 Closes Iris-IV#482 Closes Iris-IV#481
Closes Iris-IV#481 Closes Iris-IV#482 Closes Iris-IV#487
- Switch webServer from `npm run start` to `npm run dev` so next-intl locale middleware works correctly in test mode - Add onboarding tour dismissal via addInitScript in both test files so the fixed overlay does not block pointer events - Fix URL assertion to accept /en/ locale prefix after redirect - Rewrite contribute test to navigate directly to /en/causes/1 (CauseCard has no anchor link to detail page) - Rewrite vote test to use the inline VotingComponent on the causes list; fix post-click assertion that was matching a hidden <option> element - Guard CauseDetailClient notFound() so a still-syncing useEffect does not prematurely 404 when fetchedCampaign is already available Closes Iris-IV#481 Closes Iris-IV#482 Closes Iris-IV#487
…81-482-487 feat: QR code sharing, campaign metadata editing, and per-wallet draft saving
- Add Levenshtein-based fuzzy matching to campaign search so single-char typos (e.g. "educaton") still return results instead of zero - Add useFollowedCreators hook (localStorage per wallet) and a Follow / Unfollow button on the cause detail creator card; shows warning when wallet is not connected - Add docs/api.md documenting all six API routes with request/response shapes, params, status codes, and env-var reference - Add .github/workflows/db-backup.yml daily cron that exports off-chain data (audit log + reports) to cloud storage with 30-day retention, and add docs/database-backup.md explaining the strategy and restore steps Closes Iris-IV#681 Closes Iris-IV#682 Closes Iris-IV#683 Closes Iris-IV#684
…irect interruption
…d router.replace interruption
…3-684 feat: fuzzy search, follow creators, API docs, backup workflow
- Remove non-existent isOpen prop from DonationModal.stories.tsx - Use conditional render pattern to control modal open state in stories - Rename onDonationSuccess arg to onSuccess to match component interface - Run Prettier on .storybook/main.ts, AdminClient, DashboardClient, MultiSigWithdrawalPanel Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ementation) The fork's CampaignMap.tsx had two component implementations concatenated (Leaflet version + SVG version) due to a bad merge conflict resolution. This caused a parsing error: TypeScript type annotations were being parsed as JSX, resulting in build failure. Also fixes Prettier formatting in files pulled from the merge.
…le waitForLoadState calls
- smoke.spec.ts: use goto for all page transitions instead of clicking
links and waiting for URL changes (avoids race with CausesClient
router.replace on webkit/firefox)
- journeys.spec.ts: remove waitForLoadState('networkidle') calls that
can hang on webkit when CausesClient keeps the page busy
Merged origin/main into fix/issues-605-606-607-611. Conflicts resolved: - tests/e2e/journeys.spec.ts: kept main's beforeEach comment and improved test flow (direct navigation, networkidle waits) - src/app/[locale]/causes/[id]/CauseDetailClient.tsx: combined our getLocalizedDescription import with main's isSameAddress and EditCampaignMetadata additions
…tion-storybook feat: multi-sig withdrawal, pagination fix, and Storybook setup
…g-coordinates feat: add campaign map view with coordinate filtering and error boundary
…ationModal
- Implemented active polling (every 2s) for campaign status and `amount_raised` while the
DonationModal is open.
- Added client-side validation to reject contributions exceeding the remaining goal or
when campaign is already fully funded.
- Updated Next-intl translation namespace from "Donation" to "DonationModal" for input
validation errors.
- Resolved type-checking errors and updated mock structures in Jest tests to cover
polling, remaining goal validation, and fully funded states.
- Formatted files with Prettier.
- Removed unused variable binding in DonationModal's polling catch block to resolve
ESLint warning.
…using-mismatched-funding-progress fix(donation): prevent race condition and campaign overfunding in Don…
optimize svg icons
- fix(verify.yml): remove branch filter so E2E runs on all PRs - fix(verify.yml): copy standalone static assets before Playwright - fix(playwright.config.ts): use node .next/standalone/server.js in CI - fix(ci.yml, security.yml): upload-artifact@v7 -> @v4 (v7 doesn't exist) - fix(eslint.config.mjs): ignore playwright-report and test-results dirs - fix(.eslintignore): same (belt-and-suspenders for ESLint 9) - fix: merge upstream/main to bring branch up to date with main
Author
|
Hi! All 5 failing checks have been Root causes:
Fix: PR #744 merges main into this |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR fixes all 5 failing CI checks against the
dependabot/github_actions/actions/upload-artifact-7branch (PR #727).Root causes found
1. Branch was out of date with
mainThe Dependabot branch was missing ~63 files merged into
mainsince the branch was cut (profile page, CampaignMap, MultiSigWithdrawalPanel, stories, etc.). This caused TypeScript to error on missing modules and the build/lint to fail.upstream/maininto the branch.2.
upload-artifact@v7does not existDependabot bumped to
@v7but the latest release ofactions/upload-artifactis@v4.verify.yml,ci.yml, andsecurity.yml.3. ESLint linting Playwright trace artifacts
ESLint 9 dropped support for
.eslintignore. Theplaywright-report/directory was being linted, causingno-this-aliaserrors in minified JS.playwright-report/**andtest-results/**toglobalIgnoresineslint.config.mjs.4. Playwright webServer incompatible with
output: standalonenext startdoes not work whenoutput: "standalone"is set. The standalone server must be started withnode .next/standalone/server.js, and static assets must be copied into the bundle first.playwright.config.tsandverify.yml.5.
verify.ymlbranch filterpull_request: branches: [main]prevented E2E from running on PRs not targetingmain.Checks verified locally