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
5 changes: 0 additions & 5 deletions .changeset/design-md-one-line-rows.md

This file was deleted.

13 changes: 0 additions & 13 deletions .changeset/layered-configs.md

This file was deleted.

18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,23 @@
# onsystem (formerly @dgesteves/design-system-mcp)

## 0.10.0

### Minor Changes

- [#202](https://github.com/dgesteves/onsystem/pull/202) [`3798fb7`](https://github.com/dgesteves/onsystem/commit/3798fb7268410ca455aee0333867ef2f67a39373) - An app's own config builds on the config its design-system package declares, instead of replacing it. What the app's config leaves out comes from the package's, unless it sets `components` of its own: `components`, with the package's `importPath`, `docs`, `elements`, `tokens` and `libraries`. A config that sets `components` reads its tokens as before: without `tokens`, from the app's own stylesheet (`app/globals.css`) and the ones it imports. Its `rules` apply over the package's, rule by rule, either way, and, with the package's components, its `elements` element by element; the package's `exclude` patterns are added to the app's; its `overrides`, `tsconfig` and `includeDesignSystem` are its own. Before, an app config that only turned one rule to `"warn"` lost the package's components and color tokens: in an app that installs the package, `check` said `No design system found` and passed. `inspect` names both configs (`config onsystem.config.json, over node_modules/@acme/ui/onsystem.config.json (declared by @acme/ui)`). `"extends": false` in the app's config reads it alone, as before. This can change what `check` reports in an app with a config of its own whose dependency declares one: it now gets the package's rules where its config leaves them out, and the package's components and tokens when it sets no `components` of its own. A workspace package whose `"onsystem"` field cannot be read is a warning in such an app, which then reads its own config alone, and still an error in an app without one.

A monorepo root's config builds on a project's design-system package config the same way in `check` and `inspect` from the root, so its `rules` and `overrides` apply to every project without a config of its own. Before, the config a project's design-system package declared took their place, without a word. From the project's folder, the root's config is still not read.

`init --force` in an app on such a package, without a config or with one whose `components` match no file outside the package, writes a config with only `$schema`, for the app's own rules and overrides, and keeps the package's components, `importPath`, tokens and rules. Before, it wrote the package's paths into the app's config, or a config that lost the package's components. In an app whose config names components of its own, it writes them again, as before.

`init` in an app whose design system zero config reads from an installed package leaves `components` and `tokens` to zero config. It wrote paths into the package's folder, which pnpm names by version (`node_modules/.pnpm/@acme+ui@1.0.0_react@19.0.0/node_modules/@acme/ui/…`), so after an upgrade `check` failed with `Token file not found`, and the component files it listed matched nothing.

In a design-system package whose `files` leave out its component sources, `init` says that apps installing it read its components from the type declarations it publishes, when its `package.json` names some. It said they get no component checks, which holds only without type declarations.

### Patch Changes

- [#237](https://github.com/dgesteves/onsystem/pull/237) [`5a10990`](https://github.com/dgesteves/onsystem/commit/5a10990f76aa04c5a94576be042751b7b4156571) - `onsystem export --format design-md` keeps each table row on one line. A token whose comment or value the stylesheet wraps over several lines, such as a two-part `--shadow-lg`, broke its row: GitHub showed the rest of it as a code block and every later row in that table as a paragraph. The lines are now joined with spaces.

## 0.9.1

### 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.9.1",
"version": "0.10.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.9.1"]
"args": ["-y", "onsystem@0.10.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.9.1",
"version": "0.10.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.9.1",
"version": "0.10.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.9.1"]
"args": ["-y", "onsystem@0.10.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.9.1",
"version": "0.10.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.9.1"]
"args": ["-y", "onsystem@0.10.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.9.1';
const VERSION = '0.10.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.9.1",
"version": "0.10.0",
"packages": [
{
"registryType": "npm",
"identifier": "onsystem",
"version": "0.9.1",
"version": "0.10.0",
"transport": {
"type": "stdio"
}
Expand Down
Loading