From 7af27eac047f688b07fbbbcb4c0c54382ba9370a Mon Sep 17 00:00:00 2001 From: "dgesteves-release[bot]" <343266878+dgesteves-release[bot]@users.noreply.github.com> Date: Thu, 29 Oct 2026 10:21:34 +0000 Subject: [PATCH] chore: release --- .changeset/eslint-refresh-options.md | 13 ----------- .changeset/token-export-round-trip.md | 9 -------- CHANGELOG.md | 22 +++++++++++++++++++ package.json | 2 +- plugins/onsystem-agent/mcp.json | 2 +- plugins/onsystem-agent/plugin.json | 2 +- .../.cursor-plugin/plugin.json | 2 +- plugins/onsystem-cursor/mcp.json | 2 +- plugins/onsystem/.claude-plugin/plugin.json | 2 +- plugins/onsystem/.mcp.json | 2 +- plugins/onsystem/hooks/check-ui.mjs | 2 +- server.json | 4 ++-- 12 files changed, 32 insertions(+), 32 deletions(-) delete mode 100644 .changeset/eslint-refresh-options.md delete mode 100644 .changeset/token-export-round-trip.md diff --git a/.changeset/eslint-refresh-options.md b/.changeset/eslint-refresh-options.md deleted file mode 100644 index dd7e65bc..00000000 --- a/.changeset/eslint-refresh-options.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -'onsystem': minor ---- - -The ESLint plugin no longer holds up a lint while it looks at the design system again. In an editor, every lint after a pause of two seconds or more waited for that look, which takes longer the larger the design system. Now the lint is answered at once from the design system already loaded, the look runs in the background, and the lints after it get what it found. The lint that starts a look is answered from what was loaded before, so after a change to the design system or the config, the file shows its earlier findings until it is linted again (the next edit, or the next save when the editor lints on save). A one-shot `eslint` run always loads fresh. - -Edits to the project's config reach an editor's ESLint server without a restart: a rule turned off in the `rules` or `overrides` of `onsystem.config.json`, `.mjs`, `.js` or `.ts` is no longer reported once the plugin has looked at the project again. Before, the plugin kept the rules it loaded first until the server restarted. - -A rule's options can be set in ESLint's config, as in `onsystem.config.json`: `'onsystem/no-hardcoded-color': ['error', { allow: ['#fff'] }]` no longer fails ESLint's config validation ("should NOT have more than 0 items"), and its `allow` takes the place of the one the project's config gives that rule. - -A misspelled rule in a suppression comment, such as `// onsystem-disable-next-line no-hardcoded-colour`, is reported by the new `onsystem/suppression` rule, a warning in the recommended config, with the message `check` gives. Through ESLint, nothing said why the comment suppressed nothing. This is a new warning on upgrade: a run with `--max-warnings 0` over code with such a comment now fails, until the comment is fixed or `'onsystem/suppression': 'off'` turns the rule off. - -docs/eslint.md says where rule options live, what each ESLint run pays for the plugin (prefer `onsystem check` or the GitHub Action for a CI gate), and that ESLint's `--cache` does not see design-system changes. diff --git a/.changeset/token-export-round-trip.md b/.changeset/token-export-round-trip.md deleted file mode 100644 index db45b833..00000000 --- a/.changeset/token-export-round-trip.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'onsystem': patch ---- - -`onsystem export --format design-md` writes Tailwind's spacing unit as the steps of the scale (`"1": 0.25rem`, `"2": 0.5rem` up to `"96": 24rem`) instead of `base: 0.25rem`. DESIGN.md has no multiplier, so a reader, onsystem included, took 4px as the only step: read back in a project with no stylesheet, `padding: "16px"` got the advice "Use `p-[4px]`", and `gap-[8px]` the nearest step `gap-[4px]`. Now 8px and 16px are on the scale, and `p-[13px]` is nearest `p-[12px]`. Export again to rewrite a DESIGN.md written by an earlier version. - -A typography alias in the DESIGN.md export, such as shadcn/ui's `--font-heading: var(--font-sans)`, is written as the level it names (`fontFamily: ...`) instead of `"{typography.font-sans}"`. A reference in the front matter names one value, not a level: onsystem warned "unresolved reference {typography.font-sans}" when it read the file, and DESIGN.md's linter reported one unknown typography property per character of the reference. - -A DTCG file exported into the project with `onsystem export --format dtcg --out design.tokens.json`, which zero config reads back next to the stylesheet, no longer adds tokens. Its `@theme inline` tokens (`rounded-sm`, `font-sans`) have no custom property to merge by, so they now merge with the stylesheet's by name and Tailwind class. In a stock shadcn/ui app, `inspect` listed 50 tokens instead of 42, and a later DESIGN.md export listed the radii twice and warned that they were left out of the front matter. diff --git a/CHANGELOG.md b/CHANGELOG.md index 7bf77a6d..b106b78d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,27 @@ # onsystem (formerly @dgesteves/design-system-mcp) +## 0.11.0 + +### Minor Changes + +- [#255](https://github.com/dgesteves/onsystem/pull/255) [`ab3f7bc`](https://github.com/dgesteves/onsystem/commit/ab3f7bc2fb10dee1a27f9fef108453bd13ef9736) - The ESLint plugin no longer holds up a lint while it looks at the design system again. In an editor, every lint after a pause of two seconds or more waited for that look, which takes longer the larger the design system. Now the lint is answered at once from the design system already loaded, the look runs in the background, and the lints after it get what it found. The lint that starts a look is answered from what was loaded before, so after a change to the design system or the config, the file shows its earlier findings until it is linted again (the next edit, or the next save when the editor lints on save). A one-shot `eslint` run always loads fresh. + + Edits to the project's config reach an editor's ESLint server without a restart: a rule turned off in the `rules` or `overrides` of `onsystem.config.json`, `.mjs`, `.js` or `.ts` is no longer reported once the plugin has looked at the project again. Before, the plugin kept the rules it loaded first until the server restarted. + + A rule's options can be set in ESLint's config, as in `onsystem.config.json`: `'onsystem/no-hardcoded-color': ['error', { allow: ['#fff'] }]` no longer fails ESLint's config validation ("should NOT have more than 0 items"), and its `allow` takes the place of the one the project's config gives that rule. + + A misspelled rule in a suppression comment, such as `// onsystem-disable-next-line no-hardcoded-colour`, is reported by the new `onsystem/suppression` rule, a warning in the recommended config, with the message `check` gives. Through ESLint, nothing said why the comment suppressed nothing. This is a new warning on upgrade: a run with `--max-warnings 0` over code with such a comment now fails, until the comment is fixed or `'onsystem/suppression': 'off'` turns the rule off. + + docs/eslint.md says where rule options live, what each ESLint run pays for the plugin (prefer `onsystem check` or the GitHub Action for a CI gate), and that ESLint's `--cache` does not see design-system changes. + +### Patch Changes + +- [#254](https://github.com/dgesteves/onsystem/pull/254) [`5638dd2`](https://github.com/dgesteves/onsystem/commit/5638dd2eacd5d9f5ccb2fcefa5a9c861576df585) - `onsystem export --format design-md` writes Tailwind's spacing unit as the steps of the scale (`"1": 0.25rem`, `"2": 0.5rem` up to `"96": 24rem`) instead of `base: 0.25rem`. DESIGN.md has no multiplier, so a reader, onsystem included, took 4px as the only step: read back in a project with no stylesheet, `padding: "16px"` got the advice "Use `p-[4px]`", and `gap-[8px]` the nearest step `gap-[4px]`. Now 8px and 16px are on the scale, and `p-[13px]` is nearest `p-[12px]`. Export again to rewrite a DESIGN.md written by an earlier version. + + A typography alias in the DESIGN.md export, such as shadcn/ui's `--font-heading: var(--font-sans)`, is written as the level it names (`fontFamily: ...`) instead of `"{typography.font-sans}"`. A reference in the front matter names one value, not a level: onsystem warned "unresolved reference {typography.font-sans}" when it read the file, and DESIGN.md's linter reported one unknown typography property per character of the reference. + + A DTCG file exported into the project with `onsystem export --format dtcg --out design.tokens.json`, which zero config reads back next to the stylesheet, no longer adds tokens. Its `@theme inline` tokens (`rounded-sm`, `font-sans`) have no custom property to merge by, so they now merge with the stylesheet's by name and Tailwind class. In a stock shadcn/ui app, `inspect` listed 50 tokens instead of 42, and a later DESIGN.md export listed the radii twice and warned that they were left out of the front matter. + ## 0.10.3 ### Patch Changes diff --git a/package.json b/package.json index 931e577c..56f3a053 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "onsystem", - "version": "0.10.3", + "version": "0.11.0", "mcpName": "io.github.dgesteves/onsystem", "description": "Keeps coding agents on your design system: catches palette colors, native elements and APIs your system lacks, at every edit and pull request, with the fix. Set it up once in your design-system package; every app in your monorepo gets it.", "keywords": [ diff --git a/plugins/onsystem-agent/mcp.json b/plugins/onsystem-agent/mcp.json index 1aa8ca5f..0cabb16e 100644 --- a/plugins/onsystem-agent/mcp.json +++ b/plugins/onsystem-agent/mcp.json @@ -4,7 +4,7 @@ "onsystem": { "type": "stdio", "command": "npx", - "args": ["-y", "onsystem@0.10.3"] + "args": ["-y", "onsystem@0.11.0"] } } } diff --git a/plugins/onsystem-agent/plugin.json b/plugins/onsystem-agent/plugin.json index ee055e26..406ef83a 100644 --- a/plugins/onsystem-agent/plugin.json +++ b/plugins/onsystem-agent/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "onsystem", - "version": "0.10.3", + "version": "0.11.0", "description": "Keeps coding agents on your design system: catches palette colors, native elements and APIs your system lacks, at every edit and pull request, with the fix. Set it up once in your design-system package; every app in your monorepo gets it.", "author": { "name": "Diogo Esteves", diff --git a/plugins/onsystem-cursor/.cursor-plugin/plugin.json b/plugins/onsystem-cursor/.cursor-plugin/plugin.json index d955d64b..46207596 100644 --- a/plugins/onsystem-cursor/.cursor-plugin/plugin.json +++ b/plugins/onsystem-cursor/.cursor-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "onsystem", "displayName": "onsystem", - "version": "0.10.3", + "version": "0.11.0", "description": "Keeps coding agents on your design system: catches palette colors, native elements and APIs your system lacks, at every edit and pull request, with the fix. Set it up once in your design-system package; every app in your monorepo gets it.", "author": { "name": "Diogo Esteves" diff --git a/plugins/onsystem-cursor/mcp.json b/plugins/onsystem-cursor/mcp.json index f548ecb7..f74b8d9d 100644 --- a/plugins/onsystem-cursor/mcp.json +++ b/plugins/onsystem-cursor/mcp.json @@ -2,7 +2,7 @@ "mcpServers": { "onsystem": { "command": "npx", - "args": ["-y", "onsystem@0.10.3"] + "args": ["-y", "onsystem@0.11.0"] } } } diff --git a/plugins/onsystem/.claude-plugin/plugin.json b/plugins/onsystem/.claude-plugin/plugin.json index 6686ea99..dc88b586 100644 --- a/plugins/onsystem/.claude-plugin/plugin.json +++ b/plugins/onsystem/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "onsystem", "displayName": "onsystem", - "version": "0.10.3", + "version": "0.11.0", "description": "Keeps coding agents on your design system: catches palette colors, native elements and APIs your system lacks, at every edit and pull request, with the fix. Set it up once in your design-system package; every app in your monorepo gets it.", "author": { "name": "Diogo Esteves", diff --git a/plugins/onsystem/.mcp.json b/plugins/onsystem/.mcp.json index f548ecb7..f74b8d9d 100644 --- a/plugins/onsystem/.mcp.json +++ b/plugins/onsystem/.mcp.json @@ -2,7 +2,7 @@ "mcpServers": { "onsystem": { "command": "npx", - "args": ["-y", "onsystem@0.10.3"] + "args": ["-y", "onsystem@0.11.0"] } } } diff --git a/plugins/onsystem/hooks/check-ui.mjs b/plugins/onsystem/hooks/check-ui.mjs index 588e17d4..1acbadf7 100644 --- a/plugins/onsystem/hooks/check-ui.mjs +++ b/plugins/onsystem/hooks/check-ui.mjs @@ -61,7 +61,7 @@ import path from 'node:path'; const PACKAGE = 'onsystem'; // The exact release this plugin runs; scripts/sync-versions.mjs sets it with each release. -const VERSION = '0.10.3'; +const VERSION = '0.11.0'; const UI_FILE = /\.[jt]sx$/i; const MAX_FINDINGS = 30; // Both runs together, within the 60 seconds hooks.json gives the hook. Tests shorten it. diff --git a/server.json b/server.json index 122da59f..11d8c031 100644 --- a/server.json +++ b/server.json @@ -20,12 +20,12 @@ "sizes": ["180x180"] } ], - "version": "0.10.3", + "version": "0.11.0", "packages": [ { "registryType": "npm", "identifier": "onsystem", - "version": "0.10.3", + "version": "0.11.0", "transport": { "type": "stdio" }