Skip to content

chore: sync Modern.TiddlyDev standard and bump tiddlywiki-plugin-dev to ^0.5.7#13

Merged
linonetwo merged 1 commit into
masterfrom
chore/sync-modern-standard-2026-04-20
Apr 20, 2026
Merged

chore: sync Modern.TiddlyDev standard and bump tiddlywiki-plugin-dev to ^0.5.7#13
linonetwo merged 1 commit into
masterfrom
chore/sync-modern-standard-2026-04-20

Conversation

@linonetwo
Copy link
Copy Markdown
Contributor

Sync root config files, npm scripts, and GitHub workflows to the latest Modern.TiddlyDev standard. This also bumps tiddlywiki-plugin-dev to ^0.5.7, refreshes pnpm-lock.yaml, replaces legacy ESLint root config files with eslint.config.mjs, and upgrades deprecated artifact actions.

Copilot AI review requested due to automatic review settings April 20, 2026 05:38
@github-actions
Copy link
Copy Markdown

✅ PR validation passed successfully!

Copy link
Copy Markdown

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

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-dev to ^0.5.7 and refresh pnpm-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.json declares engines.node: ">=20", but the updated dependency tree requires a higher minimum Node version (e.g. inquirer@13.4.2 in pnpm-lock.yaml requires Node ^20.12.0 and esbuild-plugin-browserslist@2.0.0 requires ^20.19.0). Consider bumping engines.node to at least >=20.19.0 to 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.

Comment thread eslint.config.mjs
parserOptions: {
projectService: {
allowDefaultProject: ['./*.js', './*.mjs'],
allowDefaultProject: ['./*.js', './*.mjs', './wiki/tiddlers/tests/playwright/*.ts'],
Copy link

Copilot AI Apr 20, 2026

Choose a reason for hiding this comment

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

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.

Suggested change
allowDefaultProject: ['./*.js', './*.mjs', './wiki/tiddlers/tests/playwright/*.ts'],
allowDefaultProject: ['./*.js', './*.mjs', './wiki/tiddlers/tests/playwright/**/*.ts'],

Copilot uses AI. Check for mistakes.

- name: Lint Code
run: pnpm exec eslint ./src --max-warnings 0
continue-on-error: true
Copy link

Copilot AI Apr 20, 2026

Choose a reason for hiding this comment

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

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.

Suggested change
continue-on-error: true

Copilot uses AI. Check for mistakes.
Comment on lines +84 to +106
- 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!'
})
Copy link

Copilot AI Apr 20, 2026

Choose a reason for hiding this comment

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

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.

Suggested change
- 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
});
}

Copilot uses AI. Check for mistakes.
Comment thread package.json
"overrides": {
"esbuild-plugin-browserslist": "1.0.2"
}
"tiddlywiki-plugin-dev": "^0.5.7"
Copy link

Copilot AI Apr 20, 2026

Choose a reason for hiding this comment

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

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).

Suggested change
"tiddlywiki-plugin-dev": "^0.5.7"
"tiddlywiki-plugin-dev": "^0.5.7"
},
"pnpm": {
"overrides": {
"esbuild": "~0.27.0"
}

Copilot uses AI. Check for mistakes.
@linonetwo linonetwo merged commit f694c0c into master Apr 20, 2026
6 checks passed
@linonetwo linonetwo deleted the chore/sync-modern-standard-2026-04-20 branch April 20, 2026 05:49
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.

2 participants