fix: resolve Lint & Format and Type Check CI failures#103
fix: resolve Lint & Format and Type Check CI failures#103kayodebristol merged 3 commits intomainfrom
Conversation
…uild praxis before type check Co-authored-by: kayodebristol <3579196+kayodebristol@users.noreply.github.com> Agent-Logs-Url: https://github.com/plures/FinancialAdvisor/sessions/ec766f1d-2d18-43db-b28d-f07461d301fc
…d plugin source Co-authored-by: kayodebristol <3579196+kayodebristol@users.noreply.github.com> Agent-Logs-Url: https://github.com/plures/FinancialAdvisor/sessions/ec766f1d-2d18-43db-b28d-f07461d301fc
There was a problem hiding this comment.
Pull request overview
Fixes CI failures introduced in earlier changes by making the custom ESLint plugin loadable and ensuring .praxis type declarations exist before running Svelte type checking.
Changes:
- Added the missing
@plures/eslint-plugin-design-dojoimplementation (src/index.js) with the two rules referenced byeslint.config.js. - Updated
.gitignoreto ensure the plugin’s JS source underpackages/eslint-plugin-design-dojo/src/is not ignored. - Updated CI typecheck workflow to run
npm run build:packagesbeforesvelte-checkfor.praxis/dist/*.d.tsresolution.
Reviewed changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| packages/eslint-plugin-design-dojo/src/index.js | Adds the ESLint plugin entrypoint and rule implementations used by the repo’s flat ESLint config. |
| .gitignore | Un-ignores the plugin’s JS source so it’s included in git (and thus available to ESLint in CI). |
| .github/workflows/ci.yml | Builds workspace packages (including .praxis) before running npm run check in the Type Check job. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| messages: { | ||
| useDesignDojo: | ||
| 'Use the <{{ component }}> component from @plures/design-dojo instead of a raw <{{ tag }}> element.', | ||
| }, |
There was a problem hiding this comment.
ESLint message templates use placeholders like {{name}}. The current strings include spaces ({{ component }} / {{ tag }}), which prevents interpolation and will show the raw template text in lint output. Remove the spaces so data.component and data.tag are substituted correctly.
| schema: [], | ||
| messages: { | ||
| preferPackageImport: | ||
| "'{{ name }}' should be imported from '@plures/design-dojo', not from a local path.", |
There was a problem hiding this comment.
Same interpolation issue here: {{ name }} includes spaces, so ESLint likely won’t substitute the data.name value. Use {{name}} to ensure the reported message includes the imported symbol name.
| "'{{ name }}' should be imported from '@plures/design-dojo', not from a local path.", | |
| "'{{name}}' should be imported from '@plures/design-dojo', not from a local path.", |
kayodebristol
left a comment
There was a problem hiding this comment.
Auto-approved: CI green + Copilot code review complete.
Two CI jobs introduced in PR #93 were failing: Lint & Format (ESLint couldn't load its config) and Type Check (missing type declarations for
.praxis).Lint & Format — missing ESLint plugin source
packages/eslint-plugin-design-dojohad apackage.jsondeclaring"main": "src/index.js"but nosrc/directory existed. ESLint crashed at config load time before linting any file.packages/eslint-plugin-design-dojo/src/index.jsimplementing both rules referenced ineslint.config.js:no-local-primitives— errors on raw HTML primitives (<button>,<input>,<select>,<textarea>) that have design-dojo equivalentsprefer-design-dojo-imports— warns when design-dojo components are imported from relative paths instead of@plures/design-dojo.gitignoreexception forpackages/eslint-plugin-design-dojo/src/**/*.js— the existing rulepackages/**/src/**/*.jswas silently excluding the file (intended to block compiled TS output; this package is plain CommonJS with JS source)Type Check —
.praxisnot built beforesvelte-checksrc/lib/praxis/lifecycle.tsimports from@financialadvisor/praxis/lifecycle, resolving to.praxis/dist/lifecycle.d.ts. ThetypecheckCI job ransvelte-checkwithout building packages first, sodist/didn't exist — producing 1 module-not-found error and 5 downstream implicit-anyerrors from the unresolvedDataEventCallbackstype.npm run build:packagesstep to thetypecheckCI job beforesvelte-kit syncandsvelte-checkOriginal prompt
📱 Kick off Copilot coding agent tasks wherever you are with GitHub Mobile, available on iOS and Android.