designwithai-mcp 0.14.0 → 0.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,23 @@
1
+ # Changelog — designwithai-mcp
2
+
3
+ Les versions antérieures à 0.14.1 sont décrites dans l'historique git du dépôt
4
+ (`git log -- mcp/`). À partir d'ici, chaque version publiée a son entrée, tirée
5
+ des titres de PR (voir `CONTRIBUTING.md`).
6
+
7
+ ## 0.14.1
8
+
9
+ ### Sécurité
10
+
11
+ - **Le template d'Action `templates/designwithai-status.yml` ne prête plus son
12
+ shell aux noms de branche** (#2). Il interpolait `${{ github.head_ref }}` dans
13
+ `run:` avec `contents: write` sur tout le workflow : une PR ouverte depuis une
14
+ branche au nom piégé pouvait exécuter une commande avec le droit d'écrire dans
15
+ ton dépôt. Les refs passent désormais par `env:`, chaque job n'a que le droit
16
+ dont il a besoin, et la version de l'outil est figée.
17
+
18
+ **Si tu as copié ce fichier dans `.github/workflows/`, remplace-le** par celui de
19
+ cette version. Le copier depuis le paquet ne suffit pas : la copie dans ton dépôt
20
+ ne se met pas à jour toute seule.
21
+
22
+ Aucun changement de comportement des outils MCP ni de la CLI : le template
23
+ installe toujours `designwithai-mcp@0.14.0`, qui fait exactement le même travail.
@@ -72,7 +72,11 @@ const MARQUE = {
72
72
  */
73
73
  const STYLE = `
74
74
  :root{
75
- --encre:#17151d; --encre-2:#5b5766; --encre-3:#8b8794;
75
+ /* L'encre 3 était #8b8794 : 3.17 à 3.51:1 selon la surface, sous le 4.5:1
76
+ d'AA — et c'est elle qui porte les dates, les numéros et les noms de
77
+ preuve, c'est-à-dire ce qu'on vient lire. Elle passe au pas 11 de l'échelle
78
+ mauve, le premier pas que le kit garantit lisible. */
79
+ --encre:#17151d; --encre-2:#5b5766; --encre-3:#6f6d78;
76
80
  --fond:#faf9fb; --carte:#ffffff; --trait:#e7e5ec;
77
81
  --coherent:${COULEUR_PILIER["Cohérent"]}; --soigne:${COULEUR_PILIER["Soigné"]}; --solide:${COULEUR_PILIER["Solide"]};
78
82
  --l:clamp(320px,92vw,880px);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "designwithai-mcp",
3
- "version": "0.14.0",
3
+ "version": "0.14.1",
4
4
  "type": "module",
5
5
  "license": "UNLICENSED",
6
6
  "description": "Le serveur designwithai pour ton éditeur : audite ton produit — interface, navigation, performance, sécurité des données, hygiène Figma — trace les corrections, et fait remonter les résultats dans ton tableau de bord.",
@@ -23,7 +23,8 @@
23
23
  "templates",
24
24
  "skills",
25
25
  "handbook-embeddings.json",
26
- "README.md"
26
+ "README.md",
27
+ "CHANGELOG.md"
27
28
  ],
28
29
  "scripts": {
29
30
  "build": "tsc",
@@ -13,6 +13,12 @@
13
13
  # de la base à celui de la branche ; s'il est dans le .gitignore, il n'y a rien
14
14
  # à comparer et l'outil le dit au lieu d'inventer un résultat.
15
15
 
16
+ # SÉCURITÉ : les noms de branche viennent de l'auteur de la PR. Ils passent
17
+ # par `env:` et sont cités dans le shell, jamais interpolés dans `run:` — une
18
+ # branche nommée `x";curl …|sh;"` resterait une chaîne, pas une commande. Chaque
19
+ # job n'a que le droit dont il a besoin, et la version de l'outil est figée :
20
+ # la mettre à jour est un changement de ce fichier, relu comme les autres.
21
+
16
22
  name: État du produit
17
23
 
18
24
  on:
@@ -20,31 +26,29 @@ on:
20
26
  branches: [main]
21
27
  pull_request:
22
28
 
23
- permissions:
24
- contents: write
25
- pull-requests: write
29
+ permissions: {}
26
30
 
27
31
  jobs:
28
- etat:
32
+ page:
33
+ if: github.event_name == 'push'
29
34
  runs-on: ubuntu-latest
35
+ permissions:
36
+ contents: write
30
37
  steps:
31
38
  - uses: actions/checkout@v4
32
- with:
33
- # Le delta a besoin de la base : sans historique, `git show base:` échoue.
34
- fetch-depth: 0
35
39
 
36
40
  - uses: actions/setup-node@v4
37
41
  with:
38
42
  node-version: 20
39
43
 
40
- - run: npm install -g designwithai-mcp@^0.13.0
44
+ - run: npm install -g designwithai-mcp@0.14.0
41
45
 
42
46
  - name: La page d'état
43
- if: github.event_name == 'push'
44
- run: designwithai-mcp status-page --product "${{ github.event.repository.name }}"
47
+ env:
48
+ PRODUCT: ${{ github.event.repository.name }}
49
+ run: designwithai-mcp status-page --product "$PRODUCT"
45
50
 
46
51
  - name: La commiter si elle a bougé
47
- if: github.event_name == 'push'
48
52
  run: |
49
53
  if [ -n "$(git status --porcelain docs/etat-produit)" ]; then
50
54
  git config user.name "github-actions[bot]"
@@ -56,16 +60,37 @@ jobs:
56
60
  echo "La page n'a pas changé."
57
61
  fi
58
62
 
63
+ delta:
64
+ if: github.event_name == 'pull_request'
65
+ runs-on: ubuntu-latest
66
+ permissions:
67
+ contents: read
68
+ pull-requests: write
69
+ steps:
70
+ - uses: actions/checkout@v4
71
+ with:
72
+ # Le delta a besoin de la base : sans historique, `git show base:` échoue.
73
+ fetch-depth: 0
74
+ persist-credentials: false
75
+
76
+ - uses: actions/setup-node@v4
77
+ with:
78
+ node-version: 20
79
+
80
+ - run: npm install -g designwithai-mcp@0.14.0
81
+
59
82
  - name: Le delta de la branche
60
- if: github.event_name == 'pull_request'
83
+ env:
84
+ BASE_REF: ${{ github.base_ref }}
85
+ HEAD_REF: ${{ github.head_ref }}
61
86
  run: |
62
87
  designwithai-mcp pr-delta \
63
- --base "origin/${{ github.base_ref }}" \
64
- --branch "${{ github.head_ref }}" > delta.md
88
+ --base "origin/$BASE_REF" \
89
+ --branch "$HEAD_REF" > delta.md
65
90
  cat delta.md
66
91
 
67
92
  - name: Le poster sur la PR
68
- if: github.event_name == 'pull_request'
69
93
  env:
70
94
  GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
71
- run: gh pr comment "${{ github.event.number }}" --body-file delta.md
95
+ PR_NUMBER: ${{ github.event.number }}
96
+ run: gh pr comment "$PR_NUMBER" --body-file delta.md