Skip to content

Migrate tooling to oxlint, TypeScript 7 and pnpm 11 - #17

Merged
valuecodes merged 2 commits into
mainfrom
feat/oxlint-ts7-pnpm11
Sep 23, 2026
Merged

valuecodes merged 2 commits into
mainfrom
feat/oxlint-ts7-pnpm11

Conversation

@valuecodes

Copy link
Copy Markdown
Owner

What

  • Syncs tooling with the updated agentic-monorepo-starter template (feat/oxlint-ts7-logger), so this repo stops drifting from it.
  • Replaces ESLint with type-aware oxlint. .oxlintrc.json is built from the effective ESLint config (145 rules, options included) and verified rule-by-rule for parity; the logger template-literal ban becomes a local oxlint JS plugin with tests.
  • Upgrades to TypeScript 7 (drops baseUrl, ./-relative paths) and pnpm 11, with a toolchain catalog, allowBuilds and a 14-day minimumReleaseAge in pnpm-workspace.yaml. @types/node stays on 24.x to match the supported runtime.
  • Adds pnpm caching in CI, oxc/format-on-save VS Code settings, and removes the Copilot instruction docs, as the template did.

How to test

pnpm install
pnpm typecheck
pnpm lint
pnpm test
pnpm format:check

Security review

No security-impacting changes.

🤖 Generated with Claude Code

valuecodes and others added 2 commits September 23, 2026 15:47
Sync tooling with the updated agentic-monorepo-starter template.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings September 23, 2026 12:52

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4ff9e32228

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread package.json
Comment on lines +26 to +27
"lint": "oxlint --type-aware --report-unused-disable-directives",
"lint:fix": "oxlint --type-aware --report-unused-disable-directives --fix",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Enable JavaScript plugins in the lint commands

Both pnpm lint commands omit Oxlint's --js-plugins switch (oxlint --help describes it as “Enable JavaScript plugins”), even though .oxlintrc.json registers the local logger plugin and enables logger/no-template-literal. In CI and local runs, Oxlint therefore cannot load that rule and the lint command fails on the unknown plugin rule instead of checking the repository; add --js-plugins to both scripts.

AGENTS.md reference: AGENTS.md:L49-L50

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Not needed: oxlint 1.80 has no --js-plugins switch (oxlint --help lists none). The plugin is loaded from jsPlugins in .oxlintrc.json — the lint CI job passes on this PR, and a local probe with logger.info(x) reports logger(no-template-literal) under the current script.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🟡 Changes recommended

A critical Playwright installation issue and a moderate logger-plugin compatibility issue remain unresolved.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 1 High severity

Open (1)
What changed in this PR

Migrates repository tooling from ESLint to oxlint, while upgrading TypeScript to 7 and pnpm to 11.

Changes:

  • Adds type-aware oxlint configuration and a tested logger plugin.
  • Updates TypeScript, pnpm catalogs, build permissions, and release-age controls.
  • Refreshes CI caching, editor settings, documentation, and lint suppressions.
File Summary Review note
tsconfig.json Updates TypeScript 7 configuration and paths. —
src/​tools/​write-file/​write-file-tool.test.ts Migrates lint suppression comments. —
src/​tools/​utils/​html-processing.ts Migrates lint suppression comments. —
src/​tools/​run-python/​run-python-tool.test.ts Migrates lint suppression comments. —
src/​tools/​read-file/​read-file-tool.test.ts Migrates lint suppression comments. —
src/​tools/​list-files/​list-files-tool.test.ts Migrates lint suppression comments. —
src/​tools/​fetch-url/​fetch-url-tool.test.ts Migrates lint suppression comments. —
src/​tools/​delete-file/​delete-file-tool.test.ts Migrates lint suppression comments. —
src/​cli/​owner-lookup/​clients/​name-matcher.test.ts Applies formatting updates. —
scripts/​oxlint/​logger-plugin.ts Implements the logger template-literal rule. Moderate (1 vote): preserve PrivateIdentifier matching and add a regression test.
scripts/​oxlint/​logger-plugin.test.ts Tests the custom lint rule. —
README.md Documents the updated toolchain. —
prettier.config.ts Updates import sorting configuration. —
pnpm-workspace.yaml Adds catalogs, build permissions, and release-age policy. Critical (1 vote): allow Playwright’s install script or explicitly install the browser in shared setup.
package.json Updates scripts, engines, and dependencies. —
eslint.config.ts Removes obsolete ESLint configuration. —
AGENTS.md Updates toolchain guidance. —
.vscode/​settings.json Enables oxlint and format-on-save. —
.vscode/​extensions.json Adds recommended extensions. —
.prettierignore Updates ignored generated directories. —
.oxlintrc.json Adds migrated oxlint rules and configuration. —
.npmrc Normalizes package settings. —
.gitignore Expands cache and artifact ignores. —
.github/​pull-request-description-instructions.md Removes obsolete instructions. —
.github/​commit-message-instructions.md Removes obsolete instructions. —
.github/​actions/​setup/​action.yml Enables pnpm caching. —
.claude/​settings.json Updates allowed pnpm commands. —

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread pnpm-workspace.yaml
allowBuilds:
# tsx and Vitest both run through esbuild, and this install script is what
# links its native binary.
esbuild: true

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

No behavior change here: playwright and playwright-core 1.57.0 declare no lifecycle scripts, so allowBuilds has nothing to block — Chromium comes from playwright install, not from pnpm install. pnpm 10 (before this PR) also skipped dependency build scripts by default.

@valuecodes
valuecodes merged commit bc21ffe into main Sep 23, 2026
6 checks passed
@valuecodes
valuecodes deleted the feat/oxlint-ts7-pnpm11 branch September 23, 2026 13:04
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