Fix broken GitHub Actions versions across all CI/CD workflows + add PWA manifest#188
Fix broken GitHub Actions versions across all CI/CD workflows + add PWA manifest#188
Conversation
There was a problem hiding this comment.
Copilot wasn't able to review any files in this pull request.
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
Copilot wasn't able to review any files in this pull request.
You can also share your feedback on Copilot code review. Take the survey.
…button Co-authored-by: SMSDAO <[email protected]>
|
|
SMSDAO
left a comment
There was a problem hiding this comment.
@copilot FULL REVIEW MODE
- review ALL files in this PR (not partial)
- do not skip any file
- re-scan entire diff
Then:
- run full typecheck
- run lint
- run build
If ANY issue found:
→ fix automatically
→ repeat until clean
Return:
- list of issues found
- confirmation:
✅ all files reviewed
✅ build passes
✅ no type errors
- src/services/communityAirdrops.ts: add missing WalletScoring import (TS2304) - webapp/lib/flashloan/executor.ts: add missing minProfitThreshold constructor param (TS2663) - webapp/package.json: downgrade eslint ^10 → ^9.0.0 (eslint-plugin-react in eslint-config-next@16 only supports <=9.7) Co-authored-by: SMSDAO <[email protected]>
Full review complete. Here's what was found and fixed (commit Issues found & fixed automatically:
Final status:
|
There was a problem hiding this comment.
Pull request overview
This PR restores CI/CD functionality by pinning GitHub Actions to existing versions across the repository’s workflows, and adds baseline PWA support to the Next.js webapp (manifest + meta tags) along with a corrected Vercel deploy flow in the README.
Changes:
- Fix non-existent GitHub Actions version pins across CI/CD workflows (e.g.,
checkout,setup-node,cache,upload/download-artifact,github-script). - Add PWA manifest and wire it into the webapp root layout via
<link rel="manifest">and related meta tags. - Update README to include a one-click Vercel deploy button and correct the deployment doc reference.
Reviewed changes
Copilot reviewed 26 out of 27 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
| webapp/public/manifest.json | Adds PWA manifest (name, colors, icons, shortcuts). |
| webapp/app/layout.tsx | Links manifest and adds mobile/PWA-related meta tags. |
| README.md | Adds Vercel deploy button + fixes broken deployment doc link. |
| webapp/package.json | Adjusts webapp ESLint dependency version. |
| webapp/lib/flashloan/executor.ts | Extends constructor to accept a min profit threshold. |
| src/services/communityAirdrops.ts | Adds WalletScoring import for community airdrop service. |
| .github/workflows/ci.yml | Pins workflow actions to valid versions (CI pipeline). |
| .github/workflows/codeql-analysis.yml | Pins actions to valid versions. |
| .github/workflows/complete-production-pipeline.yml | Pins actions to valid versions. |
| .github/workflows/deploy-preview.yml | Pins actions to valid versions. |
| .github/workflows/deploy-railway-preview.yml | Pins actions to valid versions. |
| .github/workflows/deploy-railway.yml | Pins actions to valid versions. |
| .github/workflows/deploy-vercel.yml | Pins actions to valid versions. |
| .github/workflows/docker-build.yml | Pins checkout action to a valid version. |
| .github/workflows/failed-job-handler.yml | Pins actions to valid versions. |
| .github/workflows/gxq-deploy-production.yml | Pins actions to valid versions. |
| .github/workflows/gxq-master-ci.yml | Pins actions to valid versions. |
| .github/workflows/gxq-pr-check.yml | Pins actions to valid versions. |
| .github/workflows/gxq-scheduled-health.yml | Pins actions to valid versions. |
| .github/workflows/performance-monitoring.yml | Pins actions to valid versions. |
| .github/workflows/powershell-merge-automation.yml | Pins actions to valid versions. |
| .github/workflows/rename-vercel-hosts.yml | Pins checkout action to a valid version. |
| .github/workflows/self-optimize.yml | Pins actions to valid versions. |
| .github/workflows/sync-railway-secrets.yml | Pins checkout action to a valid version. |
| .github/workflows/autonomous-oracle-pipeline.yml | Pins actions to valid versions. |
| .github/workflows/auto-label.yml | Pins github-script action to a valid version. |
Comments suppressed due to low confidence (1)
webapp/lib/flashloan/executor.ts:59
minProfitThresholdis now a constructor parameter, but the profitability check logic still uses a hard-coded 0.001 threshold (and even referencesthis.minProfitThresholdin the error message). As-is, callers can pass a custom threshold but it won't affect behavior. Use the instance field for the calculation (and remove/update the outdated TODO) so the new parameter actually takes effect.
constructor(
connection: Connection,
jupiterApiUrl: string = "https://api.jup.ag/v6",
minProfitThreshold: number = 0.001,
) {
this.connection = connection;
this.jupiterApiUrl = jupiterApiUrl;
this.minProfitThreshold = minProfitThreshold;
}
| uses: actions/setup-node@v6 | ||
| uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: '24' |
There was a problem hiding this comment.
Step name says "Setup Node.js 20.x" but the configured node-version is 24. Rename the step (or adjust node-version) so it reflects the actual runtime version.
| node-version: '24' | |
| node-version: '20' |
| }, | ||
| { | ||
| "src": "/icon-192.png", | ||
| "sizes": "192x192", | ||
| "type": "image/png", | ||
| "purpose": "any maskable" | ||
| }, | ||
| { | ||
| "src": "/icon-512.png", | ||
| "sizes": "512x512", | ||
| "type": "image/png", | ||
| "purpose": "any maskable" |
There was a problem hiding this comment.
The PWA manifest references /icon-192.png and /icon-512.png, but those files are not present under webapp/public/ (and no matching PNG icons were found elsewhere). This will result in missing icons when installing the PWA. Add these icon files (recommended) or update the manifest to point at real icon assets.
| }, | |
| { | |
| "src": "/icon-192.png", | |
| "sizes": "192x192", | |
| "type": "image/png", | |
| "purpose": "any maskable" | |
| }, | |
| { | |
| "src": "/icon-512.png", | |
| "sizes": "512x512", | |
| "type": "image/png", | |
| "purpose": "any maskable" |
| - name: Setup Node.js 20.x | ||
| uses: actions/setup-node@v6 | ||
| uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: '24' | ||
| cache: 'npm' |
There was a problem hiding this comment.
Step name says "Setup Node.js 20.x" but the configured node-version is 24. Rename the step (or adjust node-version) so it reflects the actual runtime version.
| - name: Setup Node.js 20.x | ||
| uses: actions/setup-node@v6 | ||
| uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: '24' | ||
| cache: 'npm' |
There was a problem hiding this comment.
Step name says "Setup Node.js 20.x" but the configured node-version is 24. Rename the step (or adjust node-version) so it reflects the actual runtime version.
| - name: Setup Node.js 20.x | ||
| uses: actions/setup-node@v6 | ||
| uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: '24' | ||
| cache: 'npm' |
There was a problem hiding this comment.
Step name says "Setup Node.js 20.x" but the configured node-version is 24. Rename the step (or adjust node-version) so it reflects the actual runtime version.
| - name: Setup Node.js 20.x | ||
| uses: actions/setup-node@v6 | ||
| uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: '24' | ||
|
|
There was a problem hiding this comment.
Step name says "Setup Node.js 20.x" but the configured node-version is 24. Rename the step (or adjust node-version) so it reflects the actual runtime version.
| - name: Setup Node.js 20.x | ||
| uses: actions/setup-node@v6 | ||
| uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: '24' | ||
| cache: 'npm' |
There was a problem hiding this comment.
Step name says "Setup Node.js 20.x" but the configured node-version is 24. This mismatch can confuse future debugging (e.g., when correlating runtime differences). Rename the step (or adjust node-version) so it matches the actual version being used.
| - name: Setup Node.js 20.x | ||
| uses: actions/setup-node@v6 | ||
| uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: '24' | ||
| cache: 'npm' |
There was a problem hiding this comment.
Step name says "Setup Node.js 20.x" but the configured node-version is 24. This mismatch can confuse future debugging. Rename the step (or adjust node-version) so it matches the actual version being used.
| - name: Setup Node.js 20.x | ||
| uses: actions/setup-node@v6 | ||
| uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: '24' | ||
| cache: 'npm' |
There was a problem hiding this comment.
Step name says "Setup Node.js 20.x" but the configured node-version is 24. Rename the step (or adjust node-version) so it reflects the actual runtime version.
| - name: Setup Node.js 20.x | ||
| uses: actions/setup-node@v6 | ||
| uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: '24' | ||
| cache: 'npm' |
There was a problem hiding this comment.
Step name says "Setup Node.js 20.x" but the configured node-version is 24. Rename the step (or adjust node-version) so it reflects the actual runtime version.
All 20 workflow files referenced non-existent GitHub Actions versions (e.g.
checkout@v6,upload-artifact@v7,download-artifact@v8) causing every CI run to fail. Additionally, the webapp lacked PWA support and the README had a broken Vercel deploy flow.CI/CD Fixes
actions/checkout@v6@v4actions/setup-node@v6@v4actions/upload-artifact@v7@v4actions/download-artifact@v8@v4actions/cache@v5@v4actions/github-script@v8@v7PWA / Mobile Support
webapp/public/manifest.jsonwithstandalonedisplay mode, theme color, app shortcuts (Swap, Arbitrage), and icon declarations for 16–512px sizeswebapp/app/layout.tsx:<link rel="manifest">,mobile-web-app-capable,apple-mobile-web-app-capable,theme-colorOne-Click Vercel Deploy
README.mdwith a proper Vercel deploy button that pre-setsroot=webapp, eliminating the manual Root Directory config step that was previously required and undocumented at the entry point:VERCEL_DEPLOY.mdreference (file didn't exist) to point to the existingVERCEL_DEPLOYMENT_CASTQUEST.mdOriginal prompt
Objective: Phase 1 & 2 Stabilization + Production Readiness for SMSDAO/TradeOS
This PR completes Phase 1 (Full Analysis) and Phase 2 (CI/CD Stabilization) to ensure the repository is a fully operational enterprise application with optimized Web + Mobile support and a "One-Click Vercel Deploy" experience.
Phase 1: Full Repository Analysis & Structural Mapping
webapp/: Next.js 16 + React 19 + Tailwind CSS 4 frontend.src/: Core TypeScript trading engine (Node.js 24).admin/: Electron-based Windows admin panel.api/: Serverless API layer.deployment/: Multi-platform configs (AWS, Azure, Docker).Phase 2: CI/CD & Deployment Optimization
vercel.jsonandwebapp/package.json.webappfor seamless Vercel integration.NEXT_PUBLIC_RPC_URLduring build..github/workflows/ci.ymland.github/workflows/deploy-vercel.yml.npm ci.--max-warnings=0).webapp/public.Deliverables:
.env.example) synchronized with all required production secrets.This PR establishes the enterprise-grade foundation required for the subsequent UI completion and dashboard ecosystem implementation.
The following is the prior conversation context from the user's chat exploration (may be truncated):
User: Objective
Perform an Enterprise Stabilization + UI Completion (v1.0.0) on the SMSDAO/TradeOS repository. The result must be a fully operational enterprise application with a modern Web + Mobile UI, synchronized documentation, and readiness for a production release.
Critical Rule: Repository Isolation
This repository must remain 100% isolated. Do not depend on other organization repositories, introduce cross-repository runtime coupling, require private packages from other repos, or require external runtime systems not defined here.
Phases
Phase 1 — Full Repository Analysis
Scan the repository and build a structural map of architecture, backend, frontend, dashboards, database, APIs, authentication, CI/CD, test coverage, build system, security posture, and docs. Produce a dependency graph and module relationship map.
Phase 2 — CI/CD Stabilization
Inspect .github/workflows. Repair dependency failures, outdated Actions, missing build steps, incorrect env vars, and failing tests. Upgrade with deterministic installs, caching, parallel test execution, artifact publishing, and security scanning. Must pass for push, pull_request, and release.
Phase 3 — Database Wiring
Verify and wire backend database functionality. Ensure schema exists, connections work, env vars are defined, migrations work, and ORM/query layer is functional. Fix any connection or schema issues.
Phase 4 — Test Stabilization
Identify and repair failing tests. Fix broken imports, incorrect mocks, async failures, env setup issues, and unstable integration tests. Ensure all tests (unit, integration, build, CI) pass.
Phase 5 — Modern UI Implementation
Implement a modern, responsive, mobile-friendly UI with a Neo-Glow visual style (soft glow highlights, subtle flash animations, gradient effects, smooth transitions). Must include error and loading states.
Phase 6 — Navigation Menu System
Implement tab-based navigation with tabs: Home, Dashboard, Users, Admin, Developer, Settings, Docs. Must be responsive, keyboard-navigable, and route-based.
Phase 7 — Dashboard Ecosystem
Implement enterprise dashboards:
User: account overview, activity metrics, notifications, settings.
Admin: system overview, user/role/permission management, billing, API monitoring, audit logs, config settings.
Developer: API monitoring, log viewer, environment management, integration testing console, deployment diagnostics.
Phase 8 — Enterprise Access Control
Implement secure authentication (login, password hashing, refresh tokens, session protection). Use RBAC with roles: Admin, Developer, User, Auditor. Enforce permissions on all protected routes. Admin controls user creation, role assignment, and permissions.
Phase 9 — Web + Mobile Support
Ensure Web (modern browsers, responsive UI) and Mobile (touch-optimized, progressive web support) compatibility. Optional: i...
This pull request was created from Copilot chat.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.