Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 0 additions & 13 deletions .changeset/eslint-refresh-options.md

This file was deleted.

9 changes: 0 additions & 9 deletions .changeset/token-export-round-trip.md

This file was deleted.

22 changes: 22 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -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": [
Expand Down
2 changes: 1 addition & 1 deletion plugins/onsystem-agent/mcp.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"onsystem": {
"type": "stdio",
"command": "npx",
"args": ["-y", "onsystem@0.10.3"]
"args": ["-y", "onsystem@0.11.0"]
}
}
}
2 changes: 1 addition & 1 deletion plugins/onsystem-agent/plugin.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion plugins/onsystem-cursor/.cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
2 changes: 1 addition & 1 deletion plugins/onsystem-cursor/mcp.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"mcpServers": {
"onsystem": {
"command": "npx",
"args": ["-y", "onsystem@0.10.3"]
"args": ["-y", "onsystem@0.11.0"]
}
}
}
2 changes: 1 addition & 1 deletion plugins/onsystem/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion plugins/onsystem/.mcp.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"mcpServers": {
"onsystem": {
"command": "npx",
"args": ["-y", "onsystem@0.10.3"]
"args": ["-y", "onsystem@0.11.0"]
}
}
}
2 changes: 1 addition & 1 deletion plugins/onsystem/hooks/check-ui.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
4 changes: 2 additions & 2 deletions server.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
Expand Down
Loading