chore: sync Modern.TiddlyDev standard and bump tiddlywiki-plugin-dev to ^0.5.7#13
Conversation
|
✅ PR validation passed successfully! |
There was a problem hiding this comment.
Pull request overview
This PR syncs the repository’s root tooling/config and CI setup to the latest Modern.TiddlyDev standard, including bumping tiddlywiki-plugin-dev to ^0.5.7 and refreshing the pnpm lockfile. It also introduces Playwright test configuration and workflows, and modernizes lint/format tooling configuration.
Changes:
- Bump
tiddlywiki-plugin-devto^0.5.7and refreshpnpm-lock.yaml; adjust pnpm workspace settings. - Add Playwright configuration + scripts and new CI workflows for PR validation and E2E runs.
- Replace/standardize formatting configs (new
eslint.config.mjs, Prettier config, updated dprint plugins) and update ignore files.
Reviewed changes
Copilot reviewed 11 out of 14 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
tsconfig.json |
Removes stray trailing whitespace and keeps TS include patterns aligned with repo structure. |
pnpm-workspace.yaml |
Updates pnpm workspace build settings. |
pnpm-lock.yaml |
Lockfile refresh reflecting dependency bump(s) and new dev tooling (Playwright, updated transitive deps). |
playwright.config.ts |
Adds Playwright test runner config and webServer integration. |
package.json |
Updates scripts (husky), adds Playwright scripts/dependency, bumps tiddlywiki-plugin-dev, removes pnpm overrides. |
eslint.config.mjs |
Updates ESLint project service default project globs to include Playwright tests. |
dprint.json |
Updates dprint plugin versions. |
.prettierrc |
Adds Prettier configuration. |
.prettierignore |
Adds ignore patterns for Prettier. |
.gitignore |
Broadens TW ignore patterns and ignores Playwright outputs. |
.github/workflows/release.yml |
Updates workflow action versions and cache keys for pnpm. |
.github/workflows/pr-validate.yml |
Adds PR validation workflow including (optional) Playwright execution and artifact upload. |
.github/workflows/playwright.yml |
Adds dedicated Playwright E2E workflow. |
.github/workflows/gh-pages.yml |
Updates workflow action versions and cache keys for pnpm. |
Comments suppressed due to low confidence (1)
package.json:28
package.jsondeclaresengines.node: ">=20", but the updated dependency tree requires a higher minimum Node version (e.g.inquirer@13.4.2inpnpm-lock.yamlrequires Node^20.12.0andesbuild-plugin-browserslist@2.0.0requires^20.19.0). Consider bumpingengines.nodeto at least>=20.19.0to avoid installs failing or emitting engine warnings on older Node 20 minors.
"engines": {
"node": ">=20"
},
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| parserOptions: { | ||
| projectService: { | ||
| allowDefaultProject: ['./*.js', './*.mjs'], | ||
| allowDefaultProject: ['./*.js', './*.mjs', './wiki/tiddlers/tests/playwright/*.ts'], |
There was a problem hiding this comment.
The new Playwright tests path is added as ./wiki/tiddlers/tests/playwright/*.ts, which only matches files directly under that folder. If tests are organized into subfolders (and the workflow uses **/*.ts), ESLint's projectService may not pick them up; consider switching this glob to ./wiki/tiddlers/tests/playwright/**/*.ts.
| allowDefaultProject: ['./*.js', './*.mjs', './wiki/tiddlers/tests/playwright/*.ts'], | |
| allowDefaultProject: ['./*.js', './*.mjs', './wiki/tiddlers/tests/playwright/**/*.ts'], |
|
|
||
| - name: Lint Code | ||
| run: pnpm exec eslint ./src --max-warnings 0 | ||
| continue-on-error: true |
There was a problem hiding this comment.
Lint Code is marked continue-on-error: true, so the workflow can report success even when linting fails. If this workflow is meant to validate PRs, consider removing continue-on-error (or gating it behind an input) so lint failures correctly fail the check.
| continue-on-error: true |
| - name: Comment PR with Results | ||
| if: failure() && github.event_name == 'pull_request' | ||
| uses: actions/github-script@v9 | ||
| with: | ||
| script: | | ||
| github.rest.issues.createComment({ | ||
| issue_number: context.issue.number, | ||
| owner: context.repo.owner, | ||
| repo: context.repo.repo, | ||
| body: '❌ PR validation failed. Please check the workflow logs for details.' | ||
| }) | ||
|
|
||
| - name: Comment PR with Success | ||
| if: success() && github.event_name == 'pull_request' | ||
| uses: actions/github-script@v9 | ||
| with: | ||
| script: | | ||
| github.rest.issues.createComment({ | ||
| issue_number: context.issue.number, | ||
| owner: context.repo.owner, | ||
| repo: context.repo.repo, | ||
| body: '✅ PR validation passed successfully!' | ||
| }) |
There was a problem hiding this comment.
This workflow posts a new PR comment on every run for both success and failure, which can quickly spam PR threads on frequent pushes. Consider removing these steps or switching to a "sticky" comment/update pattern (or relying on GitHub Checks / job summaries) to avoid repeated comments.
| - name: Comment PR with Results | |
| if: failure() && github.event_name == 'pull_request' | |
| uses: actions/github-script@v9 | |
| with: | |
| script: | | |
| github.rest.issues.createComment({ | |
| issue_number: context.issue.number, | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| body: '❌ PR validation failed. Please check the workflow logs for details.' | |
| }) | |
| - name: Comment PR with Success | |
| if: success() && github.event_name == 'pull_request' | |
| uses: actions/github-script@v9 | |
| with: | |
| script: | | |
| github.rest.issues.createComment({ | |
| issue_number: context.issue.number, | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| body: '✅ PR validation passed successfully!' | |
| }) | |
| - name: Update PR validation comment | |
| if: always() && github.event_name == 'pull_request' | |
| uses: actions/github-script@v9 | |
| env: | |
| VALIDATION_STATUS: ${{ job.status }} | |
| with: | |
| script: | | |
| const marker = '<!-- pr-validation-status -->'; | |
| const status = process.env.VALIDATION_STATUS; | |
| const body = status === 'success' | |
| ? `${marker}\n✅ PR validation passed successfully!` | |
| : `${marker}\n❌ PR validation failed. Please check the workflow logs for details.`; | |
| const { data: comments } = await github.rest.issues.listComments({ | |
| issue_number: context.issue.number, | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| per_page: 100 | |
| }); | |
| const existingComment = comments.find(comment => | |
| comment.user?.type === 'Bot' && comment.body?.includes(marker) | |
| ); | |
| if (existingComment) { | |
| await github.rest.issues.updateComment({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| comment_id: existingComment.id, | |
| body | |
| }); | |
| } else { | |
| await github.rest.issues.createComment({ | |
| issue_number: context.issue.number, | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| body | |
| }); | |
| } |
| "overrides": { | ||
| "esbuild-plugin-browserslist": "1.0.2" | ||
| } | ||
| "tiddlywiki-plugin-dev": "^0.5.7" |
There was a problem hiding this comment.
After removing the pnpm.overrides pin and bumping tiddlywiki-plugin-dev, the lockfile now resolves esbuild-plugin-browserslist@2.0.0 which declares a peer dependency on esbuild ~0.27.0, but the lockfile also resolves esbuild@0.28.0. Even with strict-peer-dependencies=false, this peer mismatch can cause subtle build issues; consider aligning versions (pin esbuild to 0.27.x, add an override, or bump to a plugin version that supports 0.28.x).
| "tiddlywiki-plugin-dev": "^0.5.7" | |
| "tiddlywiki-plugin-dev": "^0.5.7" | |
| }, | |
| "pnpm": { | |
| "overrides": { | |
| "esbuild": "~0.27.0" | |
| } |
Sync root config files, npm scripts, and GitHub workflows to the latest Modern.TiddlyDev standard. This also bumps
tiddlywiki-plugin-devto^0.5.7, refreshespnpm-lock.yaml, replaces legacy ESLint root config files witheslint.config.mjs, and upgrades deprecated artifact actions.