Skip to content

Fix CI workflows and add neo-ux-core primitive component library#98

Merged
SMSDAO merged 15 commits intomainfrom
copilot/fix-ci-workflow-errors
Feb 11, 2026
Merged

Fix CI workflows and add neo-ux-core primitive component library#98
SMSDAO merged 15 commits intomainfrom
copilot/fix-ci-workflow-errors

Conversation

Copy link
Contributor

Copilot AI commented Feb 10, 2026

Fix CI workflows and add neo-ux-core primitive component library

Status: ✅ CI Fixes Applied

Issue: Both v3-build and dependency-health workflows failing with lockfile mismatch error
Root Cause: packages/neo-ux-core/package.json was missing devDependencies that exist in pnpm-lock.yaml
Fix: Restored devDependencies to match lockfile

Changes Summary

CI Workflow Fixes

  • Fixed pnpm setup order (before Node.js) in all workflows
  • Removed broken script dependencies
  • Added CI=false for Next.js builds
  • Created ESLint config for frames package

TypeScript Configuration

  • SDK: Added ESM-only configuration, tsc-alias support
  • neo-ux-core: Updated to use Bundler module resolution
  • Fixed type errors in Sidebar component

neo-ux-core Package (FIXED)

Restored devDependencies to match lockfile:

  • @types/react@^18.2.0
  • @types/react-dom@^18.2.0
  • eslint@^8.56.0
  • tsup@^8.0.0
  • typescript@5.3.3

Theme System:

  • tokens.ts with design tokens
  • NeoThemeProvider for CSS custom properties

Primitive Components (7 total):

  • Surface, Button, Badge, Input, Card, Modal, Navbar
  • All use CSS custom properties from theme
  • Built with tsup (ESM + CJS + TypeScript declarations)

CI Status

  • ✅ Should now pass frozen-lockfile check
  • ✅ Dependencies properly defined
  • ✅ Build configuration complete
Original prompt

CI Repair + Test Refresh + Deploy Readiness

Problem Statement

All three critical GitHub Actions workflows are failing in the CastQuest V3 repository:

  1. CastQuest V3 Build & Deploy / build (push) — failing after ~13 seconds
  2. CI / ci (push) — failing after ~34 seconds
  3. Dependency Health Check / dependency-health (push) — failing after ~2 minutes

Root Causes Identified

1. v3-build.yaml Workflow Failure

2. CI Workflow Failure

3. Dependency Health Check Failure

  • Error: Multiple TypeScript build failures:
    • @castquest/neo-ux-core build failed
    • @castquest/sdk build failed (ESM/CJS module conflicts)
    • @castquest/admin build failed with syntax error: 'import', and 'export' cannot be used outside of module code
    • apps/web/components/ui/Sidebar.tsx type error: Property 'active' does not exist on type
  • Run: https://github.com/CastQuest/castquest-frames/actions/runs/21520546414

Required Fixes

1. Fix GitHub Actions Workflows

.github/workflows/v3-build.yaml

  • Move pnpm/action-setup@v3 BEFORE Node.js setup
  • Remove cache: 'pnpm' from Node.js setup step
  • Upgrade cache action to actions/cache@v4
  • Add run_install: false to pnpm setup
  • Add --prefer-offline flag to install command
  • Build packages in correct dependency order
  • Add CI=false env var for Next.js builds
  • Remove dependency on broken custom scripts (scripts/repair-dependencies.sh, scripts/master.sh)

.github/workflows/ci.yml

  • Apply same pnpm setup fix as v3-build.yaml
  • Upgrade to pnpm/action-setup@v3 and actions/cache@v4
  • Add CI=false for builds

.github/workflows/dependency-health.yml

  • Apply same pnpm setup fix
  • Remove broken custom script dependencies
  • Simplify to core dependency checks only

2. Add Missing ESLint Configuration

Create packages/frames/.eslintrc.js:

module.exports = {
  root: true,
  extends: ['next/core-web-vitals', 'next/typescript'],
  rules: {
    '@typescript-eslint/no-explicit-any': 'warn',
    '@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
  },
};

3. Fix TypeScript Configuration Issues

packages/sdk/package.json

  • Add "type": "module" to enable ESM
  • Add tsc-alias dev dependency for path resolution
  • Update build script to "build": "tsc && tsc-alias"

packages/sdk/tsconfig.json

  • Change moduleResolution from "Node" to "Bundler"
  • Set strict: false for compatibility
  • Add isolatedModules: true

packages/neo-ux-core/tsconfig.json

  • Change moduleResolution from "Node" to "Bundler"
  • Set strict: false for compatibility

packages/frames/tsconfig.json (CREATE NEW FILE)

{
  "extends": "../../tsconfig.json",
  "compilerOptions": {
    "jsx": "preserve",
    "module": "esnext",
    "moduleResolution": "bundler",
    "allowJs": true,
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "lib": ["dom", "dom.iterable", "esnext"],
    "incremental": true,
    "plugins": [{ "name": "next" }]
  },
  "include": ["src/**/*", ".next/types/**/*.ts"],
  "exclude": ["node_modules"]
}

4. Fix Type Errors in Source Code

apps/web/components/ui/Sidebar.tsx

Remove active?: boolean from SidebarProps interface type definition on line 7. The component should compute active state from pathname, not receive it as a prop.

Change line 7 from:

menuItems?: Array<{ label: string; icon: string; href: string; active?: boolean }>;

To:

menuItems?: Array<{ label: string; icon: string; href: string }>;

Remove reference to item.active on line 28 and compute active state only from pathname comparison.

5. Update Root Package Configuration

package.json

  • Add tsc-alias to devDependencies
  • Update husky prepare script to handle failures gracefully

Success Criteria

After applying these fixes, all three workflows must pass:

  1. v3-build.yaml: All packages and apps build successfully
  2. ci.yml: Lint, typecheck, test, and build all pass
  3. dependency-health.yml: Dependency checks pass with no build errors

Testing Instructions

  1. Verify pnpm installs correctly in all workflows
  2. Verify ESLint runs without configuration errors
  3. Verify all TypeScript packages compile without errors
  4. Verify all Next.js apps build successfully
  5. Run full CI pipeline on this PR to confirm green status

Additional Con...

This pull request was created from Copilot chat.


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI and others added 3 commits February 10, 2026 06:15
- Fix pnpm setup order in all three workflows (v3-build, ci, dependency-health)
- Upgrade to pnpm/action-setup@v3 and actions/cache@v4
- Remove broken script dependencies from workflows
- Add missing .eslintrc.js for packages/frames
- Update TypeScript configs for SDK and neo-ux-core (moduleResolution: Bundler, strict: false)
- Add type: module and tsc-alias to SDK package
- Fix Sidebar.tsx type error (remove active prop)
- Add tsc-alias to root devDependencies

Co-authored-by: SMSDAO <144380926+SMSDAO@users.noreply.github.com>
Co-authored-by: SMSDAO <144380926+SMSDAO@users.noreply.github.com>
… workflow

Co-authored-by: SMSDAO <144380926+SMSDAO@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix GitHub Actions workflow failures in CastQuest V3 Fix CI failures: pnpm setup order, missing ESLint config, TypeScript module resolution Feb 10, 2026
Copilot AI requested a review from SMSDAO February 10, 2026 06:25
@github-actions
Copy link

🏥 Dependency Health Check

Status: ✅ Healthy
Version Consistency: ❌ Inconsistent

Version Summary

  • TypeScript versions: 5
  • @types/node versions: 3
  • Next.js versions: 2

⚠️ Action Required: Please address version inconsistencies before merging.

@SMSDAO SMSDAO marked this pull request as ready for review February 10, 2026 06:35
Copilot AI review requested due to automatic review settings February 10, 2026 06:35
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Repairs failing GitHub Actions workflows and TypeScript build configuration in the monorepo (pnpm setup/caching order, ESLint config for frames, and TS module resolution changes to unblock package builds).

Changes:

  • Update CI workflows to install pnpm before Node setup, switch to actions/cache@v4, and add CI=false for build-related steps.
  • Adjust TS configs (moduleResolution: Bundler, strict: false) and update SDK build to run tsc-alias (+ add tsc-alias dependency).
  • Add missing packages/frames/.eslintrc.js and fix a Sidebar prop typing issue.

Reviewed changes

Copilot reviewed 9 out of 10 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
.github/workflows/v3-build.yaml Fix pnpm setup order, update caching, and apply CI=false to build steps.
.github/workflows/ci.yml Fix pnpm setup/caching and apply CI=false to CI steps.
.github/workflows/dependency-health.yml Fix pnpm setup/caching, build key packages, and relax Next.js version tolerance.
packages/frames/.eslintrc.js Add ESLint config so frames lint step can run in CI.
packages/sdk/tsconfig.json Switch to bundler module resolution and relax strictness to match repo defaults.
packages/sdk/package.json Mark SDK as ESM and add tsc-alias to the build pipeline.
packages/neo-ux-core/tsconfig.json Switch to bundler module resolution and relax strictness.
apps/web/components/ui/Sidebar.tsx Remove unused active field from nav item typing/logic.
package.json Add tsc-alias to root devDependencies.
pnpm-lock.yaml Lockfile updates reflecting dependency additions/changes.
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

SMSDAO and others added 3 commits February 9, 2026 22:49
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
SMSDAO and others added 2 commits February 9, 2026 22:52
The SDK is marked as "type": "module" but had a require condition pointing to the same ESM file, which would break CommonJS consumers. Since we're building ESM-only, removed the require condition to properly declare this as an ESM package.

Co-authored-by: SMSDAO <144380926+SMSDAO@users.noreply.github.com>
@github-actions
Copy link

🏥 Dependency Health Check

Status: ⚠️ Inconsistent Versions Detected
Version Consistency: ❌ Inconsistent

Version Summary

  • TypeScript versions: 5
  • @types/node versions: 3
  • Next.js versions: 2

⚠️ Action Required: Please address version inconsistencies before merging.

…tion

Co-authored-by: SMSDAO <144380926+SMSDAO@users.noreply.github.com>
Copilot AI changed the title Fix CI failures: pnpm setup order, missing ESLint config, TypeScript module resolution Add documentation comment for neo-ux-core location in pnpm-workspace.yaml Feb 10, 2026
Copilot AI and others added 2 commits February 10, 2026 07:08
- Update package.json with tsup build scripts and devDependencies
- Update tsconfig.json to match spec (strict: true, bundler moduleResolution)
- Add theme/tokens.ts with neoColors, neoRadii, neoShadow, neoSpacing, neoTypography
- Add theme/NeoThemeProvider.tsx for CSS custom properties injection
- Export theme components from index.ts
- apps/web already has workspace:* dependency on neo-ux-core

Co-authored-by: SMSDAO <144380926+SMSDAO@users.noreply.github.com>
- Surface, Button, Badge, Input, Card, Modal, Navbar components
- All use CSS custom properties from theme system
- Update index.ts exports
- Fix package.json exports order

Co-authored-by: SMSDAO <144380926+SMSDAO@users.noreply.github.com>
Co-authored-by: SMSDAO <144380926+SMSDAO@users.noreply.github.com>
Copilot AI changed the title Add documentation comment for neo-ux-core location in pnpm-workspace.yaml Fix CI workflows and add neo-ux-core primitive component library Feb 10, 2026
@SMSDAO
Copy link
Member

SMSDAO commented Feb 11, 2026

@copilot fix all test failing checks
CastQuest V3 Build & Deploy / build (pull_request)
CastQuest V3 Build & Deploy / build (pull_request)Failing after 25s
Dependency Health Check / dependency-health (pull_request)
Dependency Health Check / dependency-health (pull_request)Failing after 24s
skipped checks
CastQuest V3 Build & Deploy / deploy-preview (pull_request)
CastQuest V3 Build & Deploy / deploy-preview (pull_request)Skipped yesterday
successful checks
CodeQL - Code Quality / Analyze (javascript-typescript) (dynamic)
CodeQL - Code Quality / Analyze (javascript-typescript) (dynamic)Successful in 1m must be green before merge

Restore missing devDependencies (tsup, typescript, eslint, @types/*) that were in the lockfile but removed from package.json. This was causing CI failures with "pnpm-lock.yaml is not up to date" errors.

- Add back devDependencies: @types/react, @types/react-dom, eslint, tsup, typescript
- Add private: false for npm publishing
- Add sideEffects: false for tree-shaking
- Add lint script
- Reorder exports with types first (best practice)

Co-authored-by: SMSDAO <144380926+SMSDAO@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 11, 2026

@copilot fix all test failing checks
CastQuest V3 Build & Deploy / build (pull_request)
CastQuest V3 B...

Fixed in commit 1f870d0. The CI failures were caused by packages/neo-ux-core/package.json missing devDependencies that were present in the lockfile. Restored the required devDependencies (tsup, typescript, eslint, @types/react, @types/react-dom) to match the lockfile. Both workflows should now pass the frozen-lockfile check.

@github-actions
Copy link

🏥 Dependency Health Check

Status: ⚠️ Inconsistent Versions Detected
Version Consistency: ❌ Inconsistent

Version Summary

  • TypeScript versions: 5
  • @types/node versions: 3
  • Next.js versions: 2

⚠️ Action Required: Please address version inconsistencies before merging.

@SMSDAO SMSDAO merged commit 7f7ce85 into main Feb 11, 2026
3 of 4 checks passed
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.

3 participants