Releases: textlint/textlint
v15.2.2
What's Changed
Bug Fixes
- fix(textlint-tester): support empty string test cases by @kellyselden in #1698
Documentation
- docs: add filterRules parameter to TextlintKernelDescriptor by @k35o in #1668
- docs: add GitHub Actions CI/CD integration examples by @azu in #1671
- docs: fix typos in README by @azu in #1681
- docs: clarify JSON comment support in configuration files by @azu in #1690
Maintenance
CI
- chore(deps): update github/codeql-action action to v3.29.3 by @renovate[bot] in #1672
- chore(deps): update github/codeql-action action to v3.29.5 by @renovate[bot] in #1675
- chore(deps): update github/codeql-action action to v3.29.7 by @renovate[bot] in #1679
- chore(deps): update actions/checkout action to v4.3.0 by @renovate[bot] in #1695
- CI(create-release-pr): remove unneeded --yes by @azu in #1699
- chore(deps): update github/codeql-action action to v3.29.9 by @renovate[bot] in #1700
Dependency Updates
- fix(deps): update dependency @modelcontextprotocol/sdk to ^1.16.0 by @renovate[bot] in #1665
- chore(deps): update dependency eslint-config-prettier to ^10.1.8 by @renovate[bot] in #1666
- chore(deps): update patch updates (patch) by @renovate[bot] in #1667
- chore(deps): update eslint to ^8.38.0 (patch) by @renovate[bot] in #1674
- fix(deps): update patch updates (patch) by @renovate[bot] in #1676
- chore(deps): update dependency @eslint/js to ^9.32.0 by @renovate[bot] in #1678
- fix(deps): update react monorepo to ^19.1.1 (patch) by @renovate[bot] in #1677
- fix(deps): update minor updates (minor) by @renovate[bot] in #1680
- chore(deps): update dependency lint-staged to ^16.1.4 by @renovate[bot] in #1683
- chore(deps): remove unused unique-concat dependency by @azu in #1687
- chore(deps): remove unused mkdirp dependency by @azu in #1688
- chore(deps): update eslint to ^8.39.0 (minor) by @renovate[bot] in #1691
- fix(deps): update dependency @modelcontextprotocol/sdk to ^1.17.2 by @renovate[bot] in #1692
- chore(deps): update dependency lint-staged to ^16.1.5 by @renovate[bot] in #1693
- chore(deps): update dependency @eslint/js to ^9.33.0 by @renovate[bot] in #1694
- chore(deps): update eslint to ^8.39.1 (patch) by @renovate[bot] in #1696
Other Changes
- chore(deps): update node.js to v22.17.1 by @renovate[bot] in #1660
- feat(website): make the entire sidebar hideable by @JamBalaya56562 in #1669
New Contributors
- @JamBalaya56562 made their first contribution in #1669
Full Changelog: v15.2.1...v15.2.2
v15.2.1
What's Changed
Bug Fixes
Documentation
CI
- chore(deps): update github/codeql-action action to v3.29.2 by @renovate[bot] in #1638
- chore(deps): update rossjrw/pr-preview-action action to v1.6.2 by @renovate[bot] in #1648
Dependency Updates
- chore(deps): update dependency lerna to ^8.2.3 by @renovate[bot] in #1637
- chore(deps): update eslint to ^8.35.1 (patch) by @renovate[bot] in #1639
- chore(deps): update dependency globals to ^16.3.0 by @renovate[bot] in #1640
- chore(deps): update dependency @eslint/js to ^9.30.1 by @renovate[bot] in #1641
- fix(deps): update patch updates (patch) by @renovate[bot] in #1642
- chore(deps): update dependency @types/node to ^22.16.0 by @renovate[bot] in #1643
- fix(deps): update dependency @babel/core to ^7.28.0 by @renovate[bot] in #1644
- fix(deps): update babel monorepo to ^7.28.0 (minor) by @renovate[bot] in #1645
- fix(deps): update dependency zod to ^3.25.71 by @renovate[bot] in #1646
- fix(deps): update dependency @modelcontextprotocol/sdk to ^1.15.0 by @renovate[bot] in #1649
- fix(deps): update dependency zod to ^3.25.73 by @renovate[bot] in #1650
- fix(deps): update dependency zod to ^3.25.74 by @renovate[bot] in #1651
- fix(deps): update dependency zod to ^3.25.75 by @renovate[bot] in #1653
- chore(deps): update eslint to ^8.36.0 (patch) by @renovate[bot] in #1654
- fix(deps): update dependency zod to ^3.25.76 by @renovate[bot] in #1655
- chore(deps): update patch updates (patch) by @renovate[bot] in #1656
- chore(deps): update pnpm to v10.13.1 by @renovate[bot] in #1657
- fix(deps): update patch updates (patch) by @renovate[bot] in #1658
- chore(deps): update dependency @eslint/js to ^9.31.0 by @renovate[bot] in #1659
- chore(deps): update eslint to ^8.37.0 (minor) by @renovate[bot] in #1661
- chore(deps): update patch updates (patch) by @renovate[bot] in #1662
Other Changes
Full Changelog: v15.2.0...v15.2.1
v15.2.0
What's Changed
🎉 MCP (Model Context Protocol) Enhancements
New: CLI Flag Support with --mcp
Starting with v15.2.0, you can now combine the --mcp
flag with other CLI arguments for enhanced flexibility:
# Use specific config with MCP server
npx textlint --mcp --config .textlintrc.dev.json
# Combine with quiet mode
npx textlint --mcp --quiet
# Multiple options together
npx textlint --mcp --config .textlintrc.dev.json --quiet --ignore-path .textlintignore.dev
Supported CLI Flags:
--config <path>
: Custom configuration file--ignore-path <path>
: Custom .textlintignore file--quiet
: Report errors only--rules-base-directory <path>
: Custom node_modules directory
📖 Documentation: https://textlint.org/docs/mcp
Features
Testing
- refactor(mcp): improve test structure and add configuration options by @azu in #1630
- test(mcp): add comprehensive tests for createStructuredErrorResponse by @azu in #1633
CI
Dependency Updates
- fix(deps): update patch updates (patch) by @renovate in #1626
- fix(deps): update dependency @babel/core to ^7.27.7 by @renovate in #1627
- chore(deps): update dependency @eslint/js to ^9.30.0 by @renovate in #1629
- chore(deps): update patch updates (patch) by @renovate in #1631
Full Changelog: v15.1.1...v15.2.0
v15.1.1
What's Changed
Features
Bug Fixes
Refactoring
- refactor(eslint): fix eslint warning by @azu in #1618
- refactor: fix all ESLint no-explicit-any warnings by @azu in #1620
CI
Dependency Updates
- chore(deps): update pnpm to v10.12.2 by @renovate in #1614
- chore(deps): update eslint to ^8.35.0 (patch) by @renovate in #1615
- fix(deps): update dependency @modelcontextprotocol/sdk to ^1.13.1 by @renovate in #1616
- chore(deps): update patch updates (patch) by @renovate in #1619
Other Changes
Full Changelog: v15.1.0...v15.1.1
v15.1.0
What's Changed
Key Features
This release includes two major improvements to textlint's severity system and configuration handling:
1. New info
Severity Level (PR #1610)
We've implemented proper support for the info
severity level, which provides more flexible linting for informational messages that are less critical than warnings.
Background: Previously, info
had the same value as none
(0), causing confusion. Now info
has its own distinct value (3) and is properly supported across all formatters.
Use Case: This is particularly useful for AI-assisted writing rules, such as those in textlint-ja/textlint-rule-preset-ai-writing, which provides LLM-oriented rules for guidelines. These rules can be somewhat broad and may produce false positives if used as errors, but when reported as info
, they provide more flexible feedback for AI agents and human writers.
Severity Levels:
none: 0
- Disabledwarning: 1
- Warning (yellow)error: 2
- Error (red)info: 3
- Informational (green)
Example Usage:
{
"rules": {
"my-rule": {
"severity": "info" // Now properly displays as green "info"
}
}
}
2. Fixed Preset Severity Preservation (PR #1607)
Fixed an issue where preset-defined severity settings were lost when users provided partial rule configuration in their .textlintrc
file.
Problem: When using a preset that defined severity levels for rules, those settings were completely lost if users added any custom options for those rules.
Solution: Implemented a clear priority system where user configuration completely overrides preset configuration when provided (no merging), making behavior predictable and consistent.
Related Issues: Fixes #1608, #1606
Features
Bug Fixes
Documentation
- chore: fix typos by @noritaka1166 in #1604
Testing
CI
- fix: skip deploy-pr-preview for external repository PRs by @devin-ai-integration in #1605
Dependency Updates
- chore: update npm-run-all2 from v5 to v8 by @noritaka1166 in #1593
- chore(deps): update patch updates (patch) by @renovate in #1595
- chore(deps): update eslint to ^8.34.1 (patch) by @renovate in #1597
- chore: update lint-staged from v13 to v16 by @noritaka1166 in #1596
- fix(deps): update dependency zod to ^3.25.67 by @renovate in #1598
- chore: update globals from v15 to v16 by @noritaka1166 in #1599
- chore(deps): update dependency vitest to ^3.2.4 by @renovate in #1600
- chore(deps): update dependency @types/lodash to ^4.17.18 by @renovate in #1602
- fix(deps): update dependency @modelcontextprotocol/sdk to ^1.13.0 by @renovate in #1603
- chore: update eslint-config-prettier from v9 to v10 by @noritaka1166 in #1601
Other Changes
New Contributors
- @devin-ai-integration made their first contribution in #1605
Full Changelog: v15.0.1...v15.1.0
v15.0.1
v15.0.0
🎉 Release Notes
For detailed information about textlint v15.0.0, including migration guides and new features, see the comprehensive release notes:
What's Changed
Breaking Changes
- refactor(textlint): use "read-package-up" by @azu in #1572
- BREAKING CHANGE: remove legacy
textlint
APIs by @azu in #1574 - feat: remove deprecated createFormatter function by @azu in #1578
- feat: update Node.js version requirements to 20.x across all packages by @azu in #1582
- fix: Make lintFiles respect ignore patterns for absolute file paths (#1412) by @azu in #1583
Features
- feat(mcp): implement Phase 1 improvements - structured output, outputSchema, and error handling by @azu in #1564
Refactoring
- refactor: remove unused import & imported multiple times by @noritaka1166 in #1552
- refactor: rename: change test files from -test.ts to .test.ts by @azu in #1575
- refactor(test): remove unused import from test file by @azu in #1576
Dependency Updates
- fix(deps): update patch updates (patch) by @renovate in #1553
- chore(deps): update dependency @eslint/js to ^9.28.0 by @renovate in #1554
- chore(deps): update eslint (patch) by @renovate in #1555
- chore(deps): update eslint to ^8.34.0 (patch) by @renovate in #1556
- fix(deps): update patch updates (patch) by @renovate in #1557
- fix(deps): update dependency zod to ^3.25.58 by @renovate in #1558
- fix(deps): update dependency zod to ^3.25.62 by @renovate in #1559
- fix(deps): update dependency zod to ^3.25.63 by @renovate in #1560
- chore(deps): update dependency @eslint/js to ^9.29.0 by @renovate in #1561
- fix(deps): update patch updates (patch) by @renovate in #1562
- chore(deps): update dependency globals to ^15.15.0 by @renovate in #1568
- chore(deps): update eslint (patch) by @renovate in #1569
- chore(deps): update dependency @eslint/js to ^9.29.0 by @renovate in #1567
- chore(deps): update eslint to ^8.34.0 (patch) by @renovate in #1573
- chore(deps): update dependency @types/node to ^20.19.0 by @renovate in #1584
Other Changes
- feat: replace Netlify with pr-preview-action by @azu in #1580
- CI: add Merge Gatekeeper workflow for pull requests by @azu in #1577
Full Changelog: v14.8.4...v15.0.0
v14.8.4
What's Changed
Refactoring
- refactor: upgrade to Node.js 22 for CI and development by @azu in #1534
- refactor: migrate deprecated JTF-style plugin and fix integration-test ESM compatibility by @azu in #1536
- chore: use pnpm instead of npm by @azu in #1538
- refactor: migrate test runner from Mocha to Vitest by @azu in #1544
- Update ESLint to version 9 and include .js files in patterns by @azu in #1546
CI
- Add pnpm installation step to release job by @azu in #1548
- CI: add build step before publishing in release workflow by @azu in #1550
Dependency Updates
- chore(deps): update dependency @types/react to ^18.3.23 by @renovate in #1541
- fix(deps): update patch updates (patch) by @renovate in #1543
Full Changelog: v14.8.1...v14.8.4
v14.8.3
fix to release.
v14.8.1
What's Changed
Documentation
This PR resolves the issue where AI Agents misunderstand the MCP fixFile
and fixText
tools, thinking they directly modify files when they actually only return fixed content.
Tool Renaming
fixFile
→getLintFixedFileContent
fixText
→getLintFixedTextContent
Updated Descriptions
- Changed from "Fix files/text using textlint" to "Get lint-fixed content of files/text using textlint"
- Emphasizes that these tools return corrected content without modifying original files
- Eliminates AI Agent confusion - Clear naming prevents misunderstanding about file modification
- Better user experience - AI Agents will be more willing to use these "safe" tools
- Maintains backward compatibility - Only affects MCP tool names, not core functionality
- Improved documentation - Examples now clearly show content retrieval use cases
Breaking Changes
This is a breaking change for MCP clients that use the old tool names (fixFile
, fixText
). However, MCP is experimental feature.
Refactoring
- refactor: use for..of instead of traditional for loop by @noritaka1166 in #1529
CI
Dependency Updates
Other Changes
Full Changelog: v14.8.0...v14.8.1