@mcptoolshop/claude-synergy 1.1.1 → 1.2.0

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/README.es.md CHANGED
@@ -73,7 +73,7 @@ claude-synergy/
73
73
  └── URGENT_FINDINGS.md # 23 actionable items surfaced from the corpus
74
74
  ```
75
75
 
76
- **Cifras actualizadas (a partir de la versión 1.1.0):** 44 productos / 1.186 archivos de lanzamiento / 6.042 cambios / 1.225 entidades / 12 sinergias / 508 pruebas / 11 herramientas MCP / 17 comandos de línea de comandos.
76
+ **Datos actualizados (a partir de la versión 1.2.0):** 44 productos / 1.171 archivos de lanzamiento / 6.573 cambios / 1.260 entidades / 12 sinergias / 517 pruebas / 13 herramientas MCP / 17 comandos de línea de comandos. (La base de datos se actualizó mediante `sync_now` el 24 de mayo de 2026).
77
77
 
78
78
  ---
79
79
 
@@ -84,12 +84,13 @@ claude-synergy/
84
84
  | **1 — corpus de Markdown (inicialización)** | ✅ implementado | Study-swarm recopiló 706 archivos de lanzamiento de enero a mayo de 2026; se ampliaron a 1186 en la etapa 4. |
85
85
  | **2a — SQLite + FTS5 + CLI** | ✅ implementado | CLI `hk`; 15 subcomandos; ingestión en menos de 300 ms. |
86
86
  | **2b — sqlite-vec + Recuperación contextual** | ✅ implementado | Proveedor adaptable (ninguno/estructurado/ollama/contexto de Claude-haiku × incrustaciones de ollama/viaje × ninguno/ollama-judge/viaje/cohere para reordenar). |
87
- | **3 — sincronización + servidor MCP** | ✅ implementado | `hk fetch / sync / seed-markers`; `claude-synergy-mcp` expone 11 herramientas a través de stdio (8 en la versión original de Nivel 3, 3 añadidas en la versión 1.1). |
87
+ | **3 — sincronización + servidor MCP** | ✅ implementado | `hk fetch / sync / seed-markers`; `claude-synergy-mcp` expone 13 herramientas a través de stdio (8 en la versión inicial de la capa 3, 3 añadidas en la versión 1.1, 2 añadidas en la versión 1.2). |
88
88
  | **4a — extender más allá de Anthropic** | ✅ implementado | +15 SDKs de MCP, Cursor (RSS), Aider (HISTORY.md), Continue.dev, Cody Enterprise (RSS filtrado). |
89
89
  | **4b — rastreador de HTML** | ✅ implementado | GitHub Copilot + VS Code Chat (Windsurf necesita Playwright — v0.7). |
90
90
  | **4c — ingestión de HTML a Markdown con turndown** | ✅ implementado | Los cuerpos de HTML (Copilot/VS Code/Cursor) ahora generan filas individuales para FTS5 + extracción de entidades. |
91
91
  | **4d — Playwright + registro de MCP + configuración YAML** | ✅ implementado | Windsurf a través de Playwright; Smithery + registro oficial de MCP como catálogos de la etapa 4; productos consolidados en `products.yaml`. |
92
- | **5 — Navegación con ventanas en la versión 1.1 + integración de OpenAI** | ✅ implementado | `hk diff` / `hk breaking`, límites de fecha para todos los comandos de navegación, 3 nuevas herramientas MCP (un total de 11), proveedor de incrustación de OpenAI, dimensión de incrustación configurable, `claude-code` se sincroniza automáticamente, analizador genérico `keep-a-changelog`. |
92
+ | **5 — Navegación con ventanas en la versión 1.1 + integración de OpenAI** | ✅ implementado | `hk diff` / `hk breaking`, límites de fecha para todos los comandos de navegación, 3 nuevas herramientas MCP (un total de 11), proveedor de incrustación de OpenAI, dimensión de incrustación configurable, sincronización automática de `claude-code`, analizador genérico `keep-a-changelog`. |
93
+ | **6 — Sincronización desde MCP en la versión 1.2** | ✅ implementado | `sync_status` (frescura por producto, detección de "obsoleto") y `sync_now` (obtención bajo demanda → ingestión → incrustación con vista previa de `dry_run` + bloqueo de concurrencia en el proceso). Elimina la brecha donde un agente podía consultar la base de datos pero no actualizarla. **También corrige:** el error de "limpieza de marcadores" donde `INSERT OR REPLACE INTO products` desencadenaba un DELETE en la clave externa `markers`, restableciendo silenciosamente el cursor `since` de cada producto en cada ingestión (regresión §8.20). |
93
94
 
94
95
  Hoja de ruta para la versión 0.8+: se encuentra en [URGENT_FINDINGS.md](URGENT_FINDINGS.md) y en los problemas.
95
96
 
@@ -149,7 +150,7 @@ hk top env_var # most-mentioned by entity type
149
150
  # hook_event, setting_key)
150
151
  ```
151
152
 
152
- **Novedades en la versión 1.1:** `hk diff` y `hk breaking` responden a la pregunta "¿qué ha cambiado recientemente?" sin necesidad de un término de búsqueda. Los límites de fecha son uniformes: cada comando de navegación utiliza `--since` y `--until` en formato `YYYY-MM-DD` (o formato ISO 8601 completo), o en formato relativo (`7d`, `2w`, `3m`, `1y`).
153
+ **Novedades en la versión 1.1:** `hk diff` y `hk breaking` responden a la pregunta "¿qué ha cambiado recientemente?" sin necesidad de un término de búsqueda. Los límites de fecha son uniformes: cada comando de navegación acepta `--since` y `--until` en formato `YYYY-MM-DD` (o ISO 8601 completo), o en formato relativo (`7d`, `2w`, `3m`, `1y`).
153
154
 
154
155
  ---
155
156
 
@@ -193,7 +194,7 @@ $ hk hybrid "credential exfiltration" --limit 3
193
194
 
194
195
  La consulta nunca dice "env_scrub"; el sistema lo muestra por similitud semántica. FTS5 puro no lo encuentra en absoluto.
195
196
 
196
- **Cambios en claude-code esta semana:**
197
+ **Cambios realizados en claude-code esta semana:**
197
198
  ```
198
199
  $ hk diff claude-code --since 7d
199
200
  claude-code@2.1.147 2026-05-21 (3 changes)
@@ -205,7 +206,7 @@ claude-code@2.1.146 2026-05-19 (1 change)
205
206
  [fixed] Restored `--debug` flag accidentally removed in 2.1.144.
206
207
  ```
207
208
 
208
- **Explore los cambios importantes en todo el conjunto de datos:**
209
+ **Explorar cambios importantes en toda la base de datos:**
209
210
  ```
210
211
  $ hk breaking --since 30d --limit 5
211
212
  2026-05-15 claude-agent-sdk-python@0.2.82 Headless and SDK sessions now use Task tools by default.
@@ -244,7 +245,7 @@ Herramientas disponibles:
244
245
  |---|---|
245
246
  | `search` | FTS5 + vec híbrido; reordenamiento opcional. Modo predeterminado para consultas en lenguaje natural. (+ límite superior de fecha `until`) |
246
247
  | `lookup_entity` | Historial exacto de entidades: variables de entorno, comandos, ID de modelos, CVE, etc. |
247
- | `latest_releases` | Lanzamientos recientes en todos los productos (o en uno). (+ límite inferior de fecha `since`) |
248
+ | `latest_releases` | Lanzamientos recientes en productos (o en uno). (+ límite inferior de fecha `since`) |
248
249
  | `get_release` | Contenido completo de un lanzamiento. |
249
250
  | `list_products` | Enumeración con conteos + última versión. |
250
251
  | `top_entities` | Entidades más mencionadas por tipo. |
@@ -252,9 +253,11 @@ Herramientas disponibles:
252
253
  | `read_synergy` | Texto completo de un archivo de sinergia. |
253
254
  | `get_changes_since` | **Nuevo.** Cambios en un intervalo de tiempo, agrupados por producto y versión. Entradas: `since` (obligatorio), `until?`, `product?`, `kind?`, `limit?`. |
254
255
  | `search_breaking_changes` | **Nuevo.** Lista plana de cambios importantes: no se necesita un término de búsqueda. Entradas: `product?`, `since?`, `until?`, `limit?`. |
255
- | `compare_versions` | **Nuevo.** Todos los cambios entre dos versiones de un producto. Entradas: `product`, `from_version`, `to_version`. |
256
+ | `compare_versions` | **Versión 1.1.** Todos los cambios entre dos versiones de un mismo producto. Entradas: `product`, `from_version`, `to_version`. |
257
+ | `sync_status` | **Versión 1.2.** Frescura de la sincronización por producto: última marca de tiempo de obtención, horas desde la última obtención, número de lanzamientos ingeridos. Entradas: `product?`, `stale_only?`, `stale_hours?`. Utilice esto ANTES de confiar en `latest_releases` para saber si la base de datos está obsoleta. |
258
+ | `sync_now` | **Versión 1.2.** Actualización bajo demanda (similar a `hk sync`). Entradas: `product?`, `dry_run?`, `include_ingest?`, `include_embed?`, `timeout_ms?`. Rechaza con `InvalidParams` si ya hay otra operación `sync_now` en curso. NO se confirma en git. |
256
259
 
257
- Las tres nuevas herramientas replican `hk diff` / `hk breaking` y el flujo de trabajo de comparación de versiones que anteriormente requería scripts. Consulte [manual → servidor MCP](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/mcp-server/) para obtener los esquemas de entrada completos.
260
+ Las herramientas de la versión 1.1 son similares a `hk diff` / `hk breaking` y al flujo de trabajo de comparación de versiones que anteriormente requería scripts. Las herramientas de sincronización de la versión 1.2 eliminan la brecha donde una sesión podía consultar la base de datos pero no actualizarla: `sync_status` informa sobre la obsolescencia, `sync_now` ejecuta el proceso. Consulte [manual → servidor MCP](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/mcp-server/) para obtener los esquemas de entrada completos.
258
261
 
259
262
  ---
260
263
 
@@ -262,11 +265,11 @@ Las tres nuevas herramientas replican `hk diff` / `hk breaking` y el flujo de tr
262
265
 
263
266
  Panorama general en [SOURCES.md](SOURCES.md).
264
267
 
265
- - **Nivel 1 (Lanzamientos de GitHub)** — `gh api repos/<owner>/<repo>/releases` para 23 productos, incluidos los SDK de Anthropic (7 idiomas), los SDK de Agentes (2), la CLI de ant, **claude-code** (ahora se sincroniza automáticamente a través de gh-releases a partir de la versión 1.1, anteriormente se inicializaba manualmente), claude-code-action, claude-code-security-review y 15 SDK del ecosistema MCP.
266
- - **Nivel 2 (markdown sin formato)** — `Aider-AI/aider/HISTORY.md`. El analizador genérico `keep-a-changelog` (v1.1+) también está disponible para cualquier producto cuyo origen sea un archivo CHANGELOG.md en formato Keep-a-Changelog: configúrelo mediante una entrada en `products.yaml`.
268
+ - **Nivel 1 (Lanzamientos de GitHub)** — `gh api repos/<owner>/<repo>/releases` para 23 productos, incluyendo los SDK de Anthropic (7 idiomas), los SDK de Agentes (2), la herramienta de línea de comandos ant, **claude-code** (ahora sincronizado automáticamente a través de gh-releases desde la versión 1.1; anteriormente, se actualizaba manualmente), claude-code-action, claude-code-security-review y 15 SDK del ecosistema MCP.
269
+ - **Nivel 2 (Markdown sin formato)** — `Aider-AI/aider/HISTORY.md`. El analizador genérico `keep-a-changelog` (versión 1.1+) también está disponible para cualquier producto cuyo origen sea un archivo CHANGELOG.md en formato Keep-a-Changelog; se configura a través de una entrada en `products.yaml`.
267
270
  - **Nivel 3 (HTML / RSS)** — `platform.claude.com/docs/release-notes`, `support.claude.com/articles/12138966`, `cursor.com/changelog/rss.xml`, `sourcegraph.com/changelog/featured.rss` (filtrado), `github.blog/changelog/label/copilot/`, `code.visualstudio.com/updates/v1_NNN`.
268
- - **Nivel 4 (catálogo)** — `anthropics/skills`, `claude-plugins-{official,community}`, `knowledge-work-plugins`.
269
- - **Nivel 5 (asesoramiento)** — Cuenta de X `@ClaudeCodeLog`; espejo de changelog de marckrenn.
271
+ - **Nivel 4 (Catálogo)** — `anthropics/skills`, `claude-plugins-{official,community}`, `knowledge-work-plugins`.
272
+ - **Nivel 5 (Informativo)** — Cuenta de X `@ClaudeCodeLog`; espejo de changelog de marckrenn.
270
273
 
271
274
  Estrategias de recuperación: `gh-releases | rss | raw-changelog | html-scrape | catalog | playwright`. Nuevo producto = una entrada en `products.yaml`.
272
275
 
@@ -291,7 +294,7 @@ Estrategias de recuperación: `gh-releases | rss | raw-changelog | html-scrape |
291
294
  El conjunto de pruebas Vitest cubre los niveles de unidad / integración / regresión / pruebas básicas. **[test-spec-3.md](test-spec-3.md) es la autoridad actual** a partir de la versión v0.7.0; [test-spec.md](test-spec.md) (v1) y [test-spec-2.md](test-spec-2.md) (v2) permanecen en el repositorio como registro histórico de la línea de diseño.
292
295
 
293
296
  ```bash
294
- pnpm test # unit + integration + regression (~18s, 508 tests)
297
+ pnpm test # unit + integration + regression (~36s, 517 tests)
295
298
  pnpm test:watch # interactive
296
299
  pnpm test:coverage # generate coverage/index.html (thresholds: 78/75/85/78)
297
300
  pnpm test:smoke # opt-in full-corpus smoke (RUN_SMOKE=1)
@@ -301,9 +304,9 @@ Estructura:
301
304
 
302
305
  | Directorio | Lo que cubre |
303
306
  |-----|----------------|
304
- | `test/unit/` | por módulo: extracción, ingestión, consulta (incl. `until` / navegación / desde / comparación), base de datos (incl. migración de configuración de dimensión v3), incrustación, híbrido, extracción + cada proveedor (Ollama / Voyage / **OpenAI**) + extracción de RSS/changelog (incl. analizador **keep-a-changelog**) / HTML + extracción del registro MCP + extracción de Playwright + configuración de productos + ingestión/consulta de sinergias. |
305
- | `test/integration/` | de extremo a extremo: canalización, sincronización, servidor MCP (JSON-RPC de stdio, 11 herramientas), CLI (incl. `hk diff`, `hk breaking`). |
306
- | `test/regression/` | §8.1–§8.19 cada uno protege contra un error real corregido durante el desarrollo (§8.19: la paginación de salida temprana de ghReleases conserva los elementos dentro del intervalo). |
307
+ | `test/unit/` | por módulo: extracción, ingestión, consulta (incl. `until` / navegación / desde / comparación), base de datos (incl. migración de la configuración de dimensiones v3), incrustación, híbrido, obtención + cada proveedor (Ollama / Voyage / **OpenAI**) + obtención de RSS/changelog (incl. analizador **keep-a-changelog**) / HTML + obtención del registro MCP + obtención de Playwright + configuración de productos + ingestión/consulta de Synergy. |
308
+ | `test/integration/` | de extremo a extremo: canalización, sincronización, servidor MCP (JSON-RPC estándar, 13 herramientas, incluyendo `sync_status` / `sync_now`), línea de comandos (incl. `hk diff`, `hk breaking`). |
309
+ | `test/regression/` | §8.1–§8.19: cada uno protege contra un error real corregido durante el desarrollo (§8.19: la paginación de salida temprana de ghReleases conserva los elementos dentro del rango). |
307
310
  | `test/smoke/` | Prueba completa con todo el corpus contra productos reales (1143 archivos). |
308
311
  | `test/fixtures/` | 3 productos falsos + respuestas HTTP simuladas (RSS / GH / Voyage / Cohere / Ollama / Anthropic / Smithery / Registro oficial de MCP). |
309
312
  | `test/helpers/` | `temp-db.ts`, `fetch-mock.ts`, `mcp-client.ts`, `seed-corpus.ts`, `golden-vectors.ts`, `playwright-mock.ts`, `yaml-fixtures.ts` |
@@ -344,13 +347,13 @@ La sincronización es idempotente: es seguro volver a ejecutarla después de un
344
347
 
345
348
  `hk embed` llama a un servicio de incrustación externo:
346
349
 
347
- - **Ollama (por defecto, 768 dimensiones)**: asegúrese de que Ollama esté en ejecución (`ollama serve`) y que el modelo de incrustación se haya descargado (`ollama pull nomic-embed-text`).
348
- - **Voyage (1024 dimensiones)**: configure la variable de entorno `VOYAGE_API_KEY`. Verifique su clave de API en [dash.voyageai.com](https://dash.voyageai.com).
349
- - **OpenAI (1536 dimensiones por defecto, configurable)**: configure la variable `OPENAI_API_KEY`. El modelo predeterminado es `text-embedding-3-small`; puede cambiarlo con `OPENAI_EMBED_MODEL` (por ejemplo, `text-embedding-3-large` para 3072 dimensiones). Utilícelo a través de `hk hybrid --embed openai` o `hk embed --embed openai`.
350
+ - **Ollama (predeterminado, 768 dimensiones)**: asegúrese de que Ollama esté en ejecución (`ollama serve`) y que el modelo de incrustación se haya descargado (`ollama pull nomic-embed-text`).
351
+ - **Voyage (1024 dimensiones)**: establezca `VOYAGE_API_KEY` en su entorno. Verifique su clave de API en [dash.voyageai.com](https://dash.voyageai.com).
352
+ - **OpenAI (1536 dimensiones por defecto, configurable)**: establezca `OPENAI_API_KEY`. El modelo predeterminado es `text-embedding-3-small`; sobrescríbalo con `OPENAI_EMBED_MODEL` (por ejemplo, `text-embedding-3-large` para 3072 dimensiones). Utilícelo a través de `hk hybrid --embed openai` o `hk embed --embed openai`.
350
353
 
351
354
  **Incompatibilidad de dimensiones de incrustación al cambiar de proveedor**
352
355
 
353
- Cada proveedor genera vectores de una dimensión fija (Ollama 768, Voyage 1024, OpenAI 1536 por defecto; OpenAI admite dimensiones configurables dentro del tamaño nativo del modelo). La base de datos almacena la dimensión activa en `schema_meta.embedding_dim`. Cambiar de proveedor a una dimensión diferente mientras existen fragmentos genera un error `EMBEDDING_DIM_MISMATCH` (un error de la aplicación) en lugar de corromper silenciosamente la tabla de vectores. Para cambiar:
356
+ Cada proveedor produce vectores de una dimensión fija (Ollama 768, Voyage 1024, OpenAI 1536 por defecto; OpenAI admite dimensiones configurables dentro del tamaño nativo del modelo). La base de datos almacena la dimensión activa en `schema_meta.embedding_dim`. Cambiar de proveedor a diferentes dimensiones mientras existen fragmentos genera un error `EMBEDDING_DIM_MISMATCH` (`AppError`) en lugar de corromper silenciosamente la tabla de vectores. Para cambiar:
354
357
 
355
358
  ```bash
356
359
  rm data/claude-synergy.db data/claude-synergy.db-wal data/claude-synergy.db-shm
@@ -359,7 +362,7 @@ hk ingest
359
362
  hk embed --embed openai # new provider, new dim, fresh chunks_vec
360
363
  ```
361
364
 
362
- Para la truncación de Matryoshka de OpenAI (dimensión menor a la nativa), configure `OPENAI_EMBED_MODEL` y pase la dimensión deseada a través de la construcción del proveedor en `hk embed`; consulte la [sección de incrustaciones del manual](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/cli-reference/#embedding-providers-and-dimensions) para obtener más detalles.
365
+ Para la truncación de Matryoshka de OpenAI (dimensión inferior a la nativa), establezca `OPENAI_EMBED_MODEL` y pase la dimensión deseada a través de la construcción del proveedor en `hk embed`; consulte la [sección de incrustaciones del manual](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/cli-reference/#embedding-providers-and-dimensions) para obtener más detalles.
363
366
 
364
367
  **Incompatibilidad de versión de esquema / base de datos corrupta**
365
368
 
package/README.fr.md CHANGED
@@ -73,7 +73,7 @@ claude-synergy/
73
73
  └── URGENT_FINDINGS.md # 23 actionable items surfaced from the corpus
74
74
  ```
75
75
 
76
- **Chiffres en direct (version v1.1.0) :** 44 produits / 1 186 fichiers de publication / 6 042 modifications / 1 225 entités / 12 synergies / 508 tests / 11 outils MCP / 17 commandes CLI.
76
+ **Chiffres en direct (version 1.2.0) :** 44 produits / 1 171 fichiers de publication / 6 573 modifications / 1 260 entités / 12 synergies / 517 tests / 13 outils MCP / 17 commandes CLI. (Le corpus a été mis à jour via `sync_now` le 24 mai 2026.)
77
77
 
78
78
  ---
79
79
 
@@ -90,6 +90,7 @@ claude-synergy/
90
90
  | **4c — ingestion HTML→Markdown avec turndown** | ✅ réalisé | Les corps HTML (Copilot/VS Code/Cursor) génèrent désormais des lignes individuelles pour FTS5 + l'extraction d'entités. |
91
91
  | **4d — Playwright + registre MCP + configuration YAML** | ✅ réalisé | Windsurf via Playwright ; Smithery + registre MCP officiel comme catalogues de l'étape 4 ; les produits sont regroupés dans `products.yaml`. |
92
92
  | **5 — Navigation avec fenêtrage v1.1 + intégration OpenAI** | ✅ réalisé | `hk diff` / `hk breaking`, limites de date pour toutes les commandes de navigation, 3 nouveaux outils MCP (total de 11), fournisseur d'intégration OpenAI, dimension d'intégration configurable, synchronisation automatique de `claude-code`, analyseur générique `keep-a-changelog`. |
93
+ | **6 — v1.2 synchronisation à partir de MCP** | ✅ réalisé | `sync_status` (fraîcheur par produit, détection de données obsolètes) et `sync_now` (récupération à la demande → ingestion → intégration avec aperçu `dry_run` + verrouillage de concurrence en cours). Comble le fossé où un agent pouvait interroger le corpus mais pas le mettre à jour. **Corrige également :** un bug lié à la suppression des marqueurs où `INSERT OR REPLACE INTO products` déclenchait une suppression en cascade sur la clé étrangère `markers`, remettant silencieusement à zéro le curseur `since` de chaque produit à chaque ingestion (régression §8.20). |
93
94
 
94
95
  Feuille de route pour la version 0.8+ : consultable dans [URGENT_FINDINGS.md](URGENT_FINDINGS.md) et les problèmes.
95
96
 
@@ -253,8 +254,10 @@ Outils exposés :
253
254
  | `get_changes_since` | **Nouveau.** Modifications dans une fenêtre de temps, regroupées par produit + version. Entrées : `since` (obligatoire), `until?`, `product?`, `kind?`, `limit?`. |
254
255
  | `search_breaking_changes` | **Nouveau.** Liste plate des modifications importantes — aucun terme de recherche n'est nécessaire. Entrées : `product?`, `since?`, `until?`, `limit?`. |
255
256
  | `compare_versions` | **Nouveau.** Toutes les modifications entre deux versions d'un même produit. Entrées : `product`, `from_version`, `to_version`. |
257
+ | `sync_status` | **v1.2.** Fraîcheur de la synchronisation par produit : horodatage de la dernière récupération, heures écoulées depuis la récupération, nombre de publications ingérées. Paramètres : `product?`, `stale_only?`, `stale_hours?`. Utilisez ceci AVANT de faire confiance à `latest_releases` pour savoir si le corpus est obsolète. |
258
+ | `sync_now` | **v1.2.** Actualisation à la demande (reproduit `hk sync`). Paramètres : `product?`, `dry_run?`, `include_ingest?`, `include_embed?`, `timeout_ms?`. Renvoie une erreur `InvalidParams` si une autre opération `sync_now` est déjà en cours. NE COMMET PAS les modifications dans Git. |
256
259
 
257
- Les trois nouveaux outils reprennent `hk diff` / `hk breaking` et le flux de travail de comparaison de versions qui nécessitait auparavant un script. Consultez [manuel → serveur MCP](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/mcp-server/) pour les schémas d'entrée complets.
260
+ Les outils de la version 1.1 reproduisent `hk diff` / `hk breaking` et le flux de travail de comparaison de versions qui nécessitait auparavant des scripts. Les outils de synchronisation de la version 1.2 comblent le fossé où une session pouvait interroger le corpus mais pas le mettre à jour : `sync_status` signale l'obsolescence, `sync_now` exécute le pipeline. Consultez [le guide → serveur MCP](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/mcp-server/) pour les schémas de paramètres complets.
258
261
 
259
262
  ---
260
263
 
@@ -291,7 +294,7 @@ Index complet dans [synergies/INDEX.md](synergies/INDEX.md).
291
294
  La suite Vitest couvre les niveaux unitaires, d'intégration, de régression et de test de base. **[test-spec-3.md](test-spec-3.md) est la référence actuelle** à partir de la version v0.7.0 ; [test-spec.md](test-spec.md) (v1) et [test-spec-2.md](test-spec-2.md) (v2) restent dans le dépôt comme enregistrement historique de l'évolution de la conception.
292
295
 
293
296
  ```bash
294
- pnpm test # unit + integration + regression (~18s, 508 tests)
297
+ pnpm test # unit + integration + regression (~36s, 517 tests)
295
298
  pnpm test:watch # interactive
296
299
  pnpm test:coverage # generate coverage/index.html (thresholds: 78/75/85/78)
297
300
  pnpm test:smoke # opt-in full-corpus smoke (RUN_SMOKE=1)
@@ -302,7 +305,7 @@ Structure :
302
305
  | Dossier | Ce qu'il couvre |
303
306
  |-----|----------------|
304
307
  | `test/unit/` | par module — extraction, ingestion, requête (incl. `until` / navigation / depuis / comparaison), base de données (incl. migration de configuration de dimension v3), intégration, hybride, récupération + tous les fournisseurs (Ollama / Voyage / **OpenAI**) + récupération-RSS/changelog (incl. analyseur **keep-a-changelog**) / HTML + récupération-registre-MCP + récupération-playwright + configuration-produits + ingestion/requête de synergies. |
305
- | `test/integration/` | de bout en bout pipeline, synchronisation, serveur MCP (JSON-RPC stdio, 11 outils), CLI (incl. `hk diff`, `hk breaking`). |
308
+ | `test/integration/` | de bout en bout : pipeline, synchronisation, serveur MCP (JSON-RPC standard, 13 outils dont `sync_status` / `sync_now`), CLI (dont `hk diff`, `hk breaking`). |
306
309
  | `test/regression/` | §8.1–§8.19 — chacun protège contre un bug réel corrigé pendant le développement (§8.19 : la pagination précoce de ghReleases préserve les éléments dans la fenêtre). |
307
310
  | `test/smoke/` | Test complet sur l'ensemble des fichiers (1 143 fichiers) simulant les produits réels. |
308
311
  | `test/fixtures/` | 3 produits factices + réponses HTTP simulées (RSS / GH / Voyage / Cohere / Ollama / Anthropic / Smithery / Registre MCP officiel). |
package/README.hi.md CHANGED
@@ -73,7 +73,7 @@ claude-synergy/
73
73
  └── URGENT_FINDINGS.md # 23 actionable items surfaced from the corpus
74
74
  ```
75
75
 
76
- **वर्तमान आंकड़े (v1.1.0 के अनुसार):** 44 उत्पाद / 1,186 रिलीज़ फ़ाइलें / 6,042 परिवर्तन / 1,225 इकाइयां / 12 तालमेल / 508 परीक्षण / 11 एमसीपी उपकरण / 17 सीएलआई कमांड।
76
+ **वर्तमान आंकड़े (v1.2.0 के अनुसार):** 44 उत्पाद / 1,171 रिलीज़ फ़ाइलें / 6,573 परिवर्तन / 1,260 इकाइयां / 12 तालमेल / 517 परीक्षण / 13 एमसीपी उपकरण / 17 सीएलआई कमांड। (डेटाबेस को `sync_now` के माध्यम से 2026-05-24 को अपडेट किया गया।)
77
77
 
78
78
  ---
79
79
 
@@ -90,6 +90,7 @@ claude-synergy/
90
90
  | **4c — टर्नडाउन एचटीएमएल→मार्कडाउन इनजेस्ट** | ✅ जारी किया गया | एचटीएमएल बॉडी (कोपायलट/वीएस कोड/कर्सर) अब एफटीएस5 (FTS5) + एंटिटी एक्सट्रैक्शन के लिए प्रति-बुलेट पंक्तियाँ उत्पन्न करते हैं। |
91
91
  | **4d — प्लेराइट + एमसीपी रजिस्ट्री + YAML कॉन्फ़िगरेशन** | ✅ जारी किया गया | प्लेराइट के माध्यम से विंडसर्फ़; स्मिथरी + आधिकारिक एमसीपी रजिस्ट्री को चौथे स्तर के कैटलॉग के रूप में उपयोग किया जाता है; उत्पादों को `products.yaml` में समेकित किया गया है। |
92
92
  | **5 — v1.1 विंडो ब्राउज़िंग + ओपनएआई एम्बेड** | ✅ जारी किया गया | `hk diff` / `hk breaking`, सभी ब्राउज़िंग कमांड के लिए तारीख सीमा, 3 नए एमसीपी उपकरण (कुल 11), ओपनएआई एम्बेडिंग प्रदाता, कॉन्फ़िगर करने योग्य एम्बेडिंग आयाम, `claude-code` ऑटो-सिंक, सामान्य `keep-a-changelog` पार्सर। |
93
+ | **6 — v1.2 एमसीपी से सिंक** | ✅ जारी किया गया | `sync_status` (प्रत्येक उत्पाद की ताज़ा जानकारी, कभी/पुराना पता लगाना) और `sync_now` (मांग पर डेटा प्राप्त करना → संसाधित करना → `dry_run` पूर्वावलोकन के साथ एम्बेड करना + प्रक्रिया में समवर्ती लॉक)। यह उस स्थिति को समाप्त करता है जहां कोई उपयोगकर्ता डेटाबेस से जानकारी प्राप्त कर सकता था लेकिन उसे अपडेट नहीं कर सकता था। **इसके अतिरिक्त, यह निम्नलिखित समस्या को भी ठीक करता है:** "मार्कर-वाइप" बग, जिसमें `INSERT OR REPLACE INTO products` कमांड `markers` विदेशी कुंजी पर एक DELETE ऑपरेशन चलाता था, जिसके कारण प्रत्येक उत्पाद के लिए `since` कर्सर हर बार डेटा आयात करने पर रीसेट हो जाता था (प्रतिगमन §8.20)। |
93
94
 
94
95
  v0.8+ के लिए रोडमैप: [URGENT_FINDINGS.md](URGENT_FINDINGS.md) और मुद्दों में ट्रैक किया गया है।
95
96
 
@@ -253,8 +254,10 @@ GitHub Copilot के लिए `.vscode/mcp.json` फ़ाइल में, `m
253
254
  | `get_changes_since` | **नया।** एक समय विंडो में परिवर्तन, उत्पाद+संस्करण द्वारा समूहीकृत। इनपुट: `since` (आवश्यक), `until?`, `product?`, `kind?`, `limit?`. |
254
255
  | `search_breaking_changes` | **नया।** महत्वपूर्ण परिवर्तनों की एक सपाट सूची — किसी खोज शब्द की आवश्यकता नहीं। इनपुट: `product?`, `since?`, `until?`, `limit?`. |
255
256
  | `compare_versions` | **नया।** एक उत्पाद के दो संस्करणों के बीच सभी परिवर्तन। इनपुट: `product`, `from_version`, `to_version`. |
257
+ | `sync_status` | **v1.2.** प्रत्येक उत्पाद के लिए सिंक की ताज़ा जानकारी - अंतिम डेटा प्राप्त करने का समय, डेटा प्राप्त करने के बाद से घंटे, संसाधित किए गए रिलीज़ की संख्या। इनपुट: `product?`, `stale_only?`, `stale_hours?`. `latest_releases` का उपयोग करने से पहले, यह जांचना महत्वपूर्ण है कि डेटाबेस ताज़ा है या नहीं। |
258
+ | `sync_now` | **v1.2.** मांग पर डेटा ताज़ा करना (यह `hk sync` के समान है)। इनपुट: `product?`, `dry_run?`, `include_ingest?`, `include_embed?`, `timeout_ms?`. यदि कोई अन्य `sync_now` प्रक्रिया चल रही है, तो यह `InvalidParams` त्रुटि प्रदर्शित करता है। यह परिवर्तन सीधे git में नहीं किए जाते हैं। |
256
259
 
257
- ये तीन नए उपकरण `hk diff` / `hk breaking` और संस्करण-तुलना वर्कफ़्लो को प्रतिबिंबित करते हैं, जिसके लिए पहले स्क्रिप्टिंग की आवश्यकता होती थी। पूर्ण इनपुट स्कीमा के लिए [हैंडबुक → एमसीपी सर्वर](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/mcp-server/) देखें।
260
+ v1.1 उपकरण `hk diff` / `hk breaking` और संस्करण तुलना प्रक्रिया को प्रतिबिंबित करते हैं, जिसके लिए पहले स्क्रिप्टिंग की आवश्यकता होती थी। v1.2 सिंक उपकरण उस स्थिति को समाप्त करते हैं जहां कोई सत्र डेटाबेस से जानकारी प्राप्त कर सकता था लेकिन उसे ताज़ा नहीं कर सकता था - `sync_status` डेटाबेस की पुरानी स्थिति की रिपोर्ट करता है, और `sync_now` प्रक्रिया को चलाता है। पूर्ण इनपुट स्कीमा के लिए, [मैनुअल → एमसीपी सर्वर](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/mcp-server/) देखें।
258
261
 
259
262
  ---
260
263
 
@@ -291,7 +294,7 @@ GitHub Copilot के लिए `.vscode/mcp.json` फ़ाइल में, `m
291
294
  विटेस्ट (Vitest) में यूनिट, इंटीग्रेशन, रिग्रेशन और स्मोक परीक्षण शामिल हैं। v0.7.0 के अनुसार, "[test-spec-3.md](test-spec-3.md)" वर्तमान में आधिकारिक दस्तावेज है; [test-spec.md](test-spec.md) (v1) और [test-spec-2.md](test-spec-2.md) (v2) डिज़ाइन के ऐतिहासिक रिकॉर्ड के रूप में रिपॉजिटरी में मौजूद हैं।
292
295
 
293
296
  ```bash
294
- pnpm test # unit + integration + regression (~18s, 508 tests)
297
+ pnpm test # unit + integration + regression (~36s, 517 tests)
295
298
  pnpm test:watch # interactive
296
299
  pnpm test:coverage # generate coverage/index.html (thresholds: 78/75/85/78)
297
300
  pnpm test:smoke # opt-in full-corpus smoke (RUN_SMOKE=1)
@@ -302,7 +305,7 @@ pnpm test:smoke # opt-in full-corpus smoke (RUN_SMOKE=1)
302
305
  | मुझे खेद है, लेकिन मैं इस अनुरोध को पूरा करने में असमर्थ हूं क्योंकि यह अपूर्ण है। कृपया पूरा वाक्य या पाठ प्रदान करें जिसका आप अनुवाद करवाना चाहते हैं। | यह क्या शामिल करता है। |
303
306
  |-----|----------------|
304
307
  | `test/unit/` | प्रति-मॉड्यूल — निकालें, इनजेस्ट करें, क्वेरी करें (शामिल `until` / ब्राउज़ / since / तुलना), डेटाबेस (शामिल dim-config v3 माइग्रेशन), एम्बेड, हाइब्रिड, फेच + प्रत्येक प्रदाता (Ollama / Voyage / **OpenAI**) + फेच-rss/changelog (शामिल **keep-a-changelog** पार्सर)/html + फेच-mcp-registry + फेच-playwright + उत्पादों-कॉन्फ़िग + सि synergy इनजेस्ट/क्वेरी |
305
- | `test/integration/` | एंड-टू-एंड — पाइपलाइन, सिंक, एमसीपी सर्वर (stdio JSON-RPC, 11 उपकरण), सीएलआई (शामिल `hk diff`, `hk breaking`) |
308
+ | `test/integration/` | एंड-टू-एंड — पाइपलाइन, सिंक, एमसीपी सर्वर (मानक इनपुट/आउटपुट JSON-RPC, 13 उपकरण, जिनमें `sync_status` / `sync_now` शामिल हैं), सीएलआई (जिनमें `hk diff`, `hk breaking` शामिल हैं) |
306
309
  | `test/regression/` | §8.1–§8.19 — प्रत्येक एक वास्तविक बग से बचाता है जिसे विकास के दौरान ठीक किया गया था (§8.19: ghReleases शुरुआती-निकास पेजिंग विंडो में आइटम को संरक्षित करता है) |
307
310
  | `test/smoke/` | पूर्ण डेटासेट, वास्तविक `products/` (1,143 फ़ाइलें) के लिए। |
308
311
  | `test/fixtures/` | 3 नकली उत्पाद + मॉक एचटीटीपी प्रतिक्रियाएं (RSS / GH / Voyage / Cohere / Ollama / Anthropic / Smithery / आधिकारिक MCP रजिस्ट्री)। |
package/README.it.md CHANGED
@@ -73,7 +73,7 @@ claude-synergy/
73
73
  └── URGENT_FINDINGS.md # 23 actionable items surfaced from the corpus
74
74
  ```
75
75
 
76
- **Dati aggiornati (alla versione v1.1.0):** 44 prodotti / 1.186 file di rilascio / 6.042 modifiche / 1.225 entità / 12 sinergie / 508 test / 11 strumenti MCP / 17 comandi CLI.
76
+ **Dati aggiornati (alla versione v1.2.0):** 44 prodotti / 1.171 file di rilascio / 6.573 modifiche / 1.260 entità / 12 sinergie / 517 test / 13 strumenti MCP / 17 comandi CLI. (Il database è stato aggiornato tramite `sync_now` il 24 maggio 2026.)
77
77
 
78
78
  ---
79
79
 
@@ -84,12 +84,13 @@ claude-synergy/
84
84
  | **1 — corpus in formato Markdown (bootstrap)** | ✅ implementato | Study-swarm ha inserito 706 file di rilascio da gennaio a maggio 2026; ampliato a 1.186 con il livello 4. |
85
85
  | **2a — SQLite + FTS5 + CLI** | ✅ implementato | CLI `hk`; 15 sottocomandi; ingestione inferiore a 300ms. |
86
86
  | **2b — sqlite-vec + Recupero contestuale** | ✅ implementato | Provider pluggable (nessuno/strutturato/ollama/claude-haiku contesto × ollama/voyage embed × nessuno/ollama-judge/voyage/cohere rerank). |
87
- | **3 — sincronizzazione + server MCP** | ✅ implementato | `hk fetch / sync / seed-markers`; `claude-synergy-mcp` espone 11 strumenti tramite stdio (8 nella versione originale Tier-3, 3 aggiunti nella v1.1). |
87
+ | **3 — sincronizzazione + server MCP** | ✅ implementato | `hk fetch / sync / seed-markers`; `claude-synergy-mcp` espone 13 strumenti tramite stdio (8 nella versione originale, 3 aggiunti nella v1.1, 2 aggiunti nella v1.2). |
88
88
  | **4a — estensione oltre Anthropic** | ✅ implementato | +15 SDK MCP, Cursor (RSS), Aider (HISTORY.md), Continue.dev, Cody Enterprise (RSS filtrato). |
89
89
  | **4b — fetcher per l'estrazione da HTML** | ✅ implementato | GitHub Copilot + VS Code Chat (Windsurf richiede Playwright — v0.7). |
90
90
  | **4c — ingestione da HTML a Markdown con turndown** | ✅ implementato | I corpi HTML (Copilot/VS Code/Cursor) ora generano righe separate per ogni elemento per FTS5 + estrazione di entità. |
91
91
  | **4d — Playwright + registro MCP + configurazione YAML** | ✅ implementato | Windsurf tramite Playwright; Smithery + registro ufficiale MCP come cataloghi del livello 4; prodotti consolidati in `products.yaml`. |
92
- | **5 — v1.1: navigazione con finestra + integrazione OpenAI** | ✅ implementato | `hk diff` / `hk breaking`, limiti di data per tutti i comandi di navigazione, 3 nuovi strumenti MCP (totale 11), provider di embedding OpenAI, dimensione di embedding configurabile, sincronizzazione automatica di `claude-code`, parser generico `keep-a-changelog`. |
92
+ | **5 — v1.1: navigazione con finestre + integrazione OpenAI** | ✅ implementato | `hk diff` / `hk breaking`, limiti di data per tutti i comandi di navigazione, 3 nuovi strumenti MCP (totale di 11), provider di embedding OpenAI, dimensione dell'embedding configurabile, sincronizzazione automatica di `claude-code`, parser generico `keep-a-changelog`. |
93
+ | **6 — v1.2: sincronizzazione da MCP** | ✅ implementato | `sync_status` (freschezza per prodotto, rilevamento di dati obsoleti) e `sync_now` (recupero su richiesta → ingestione → embedding con anteprima `dry_run` + blocco di concorrenza in-process). Risolve il problema in cui un'applicazione poteva interrogare il database ma non aggiornarlo. **Corregge anche:** un bug che causava la cancellazione di tutti i marker quando `INSERT OR REPLACE INTO products` propagava una cancellazione sulla chiave esterna `markers`, reimpostando silenziosamente il cursore `since` di ogni prodotto ad ogni ingestione (regressione §8.20). |
93
94
 
94
95
  Roadmap per la versione 0.8+: disponibile in [URGENT_FINDINGS.md](URGENT_FINDINGS.md) e nella sezione issues.
95
96
 
@@ -205,7 +206,7 @@ claude-code@2.1.146 2026-05-19 (1 change)
205
206
  [fixed] Restored `--debug` flag accidentally removed in 2.1.144.
206
207
  ```
207
208
 
208
- **Esplora le modifiche rilevanti in tutto il corpus:**
209
+ **Esplora le modifiche che interrompono il funzionamento in tutto il database:**
209
210
  ```
210
211
  $ hk breaking --since 30d --limit 5
211
212
  2026-05-15 claude-agent-sdk-python@0.2.82 Headless and SDK sessions now use Task tools by default.
@@ -215,7 +216,7 @@ $ hk breaking --since 30d --limit 5
215
216
  2026-04-22 windsurf@1.10.0 Removed `cascade.run` JSON-RPC method.
216
217
  ```
217
218
 
218
- Non è necessario un termine di ricerca — `hk breaking` è la risposta alla domanda "è cambiata qualcosa di importante di recente?".
219
+ Non è necessario un termine di ricerca — `hk breaking` è la risposta alla domanda "è cambiato qualcosa di importante di recente?".
219
220
 
220
221
  ---
221
222
 
@@ -242,19 +243,21 @@ Strumenti esposti:
242
243
 
243
244
  | Strumento | Scopo |
244
245
  |---|---|
245
- | `search` | FTS5 + vettoriale; opzionale reranking. Modalità predefinita per query in linguaggio naturale. (+ limite superiore di data `until`) |
246
+ | `search` | FTS5 + vettoriale; opzionale riordinamento. Modalità predefinita per le query in linguaggio naturale. (+ limite superiore di data `until`) |
246
247
  | `lookup_entity` | Cronologia esatta delle entità: variabili d'ambiente, comandi, ID dei modelli, CVE, ecc. |
247
- | `latest_releases` | Rilasci recenti in tutti i prodotti (o in uno). (+ limite inferiore di data `since`) |
248
+ | `latest_releases` | Rilasci recenti per prodotto (o per uno specifico). (+ limite inferiore di data `since`) |
248
249
  | `get_release` | Contenuto completo di un rilascio. |
249
250
  | `list_products` | Elenco con conteggi + ultima versione. |
250
251
  | `top_entities` | Entità più menzionate per tipo. |
251
- | `list_synergies` | Flussi di lavoro trasversali tra prodotti. (+ filtro opzionale `product`) |
252
+ | `list_synergies` | Flussi di lavoro curati tra prodotti. (+ filtro opzionale per `prodotto`) |
252
253
  | `read_synergy` | Testo completo di un file di sinergia. |
253
254
  | `get_changes_since` | **Nuovo.** Modifiche in un intervallo di tempo, raggruppate per prodotto+versione. Input: `since` (obbligatorio), `until?`, `product?`, `kind?`, `limit?`. |
254
- | `search_breaking_changes` | **Nuovo.** Elenco piatto delle modifiche rilevanti — non è necessario un termine di ricerca. Input: `product?`, `since?`, `until?`, `limit?`. |
255
- | `compare_versions` | **Nuovo.** Tutte le modifiche tra due versioni di un prodotto. Input: `product`, `from_version`, `to_version`. |
255
+ | `search_breaking_changes` | **Nuovo.** Elenco piatto delle modifiche che interrompono il funzionamento — non è necessario un termine di ricerca. Input: `product?`, `since?`, `until?`, `limit?`. |
256
+ | `compare_versions` | **v1.1.** Tutte le modifiche tra due versioni dello stesso prodotto. Input: `product`, `from_version`, `to_version`. |
257
+ | `sync_status` | **v1.2.** Freschezza della sincronizzazione per prodotto — ultimo timestamp di recupero, ore dall'ultimo recupero, numero di rilasci ingeriti. Input: `product?`, `stale_only?`, `stale_hours?`. Utilizzare PRIMA di fidarsi di `latest_releases` per sapere se il database è obsoleto. |
258
+ | `sync_now` | **v1.2.** Aggiornamento su richiesta (simile a `hk sync`). Input: `product?`, `dry_run?`, `include_ingest?`, `include_embed?`, `timeout_ms?`. Rifiuta con `InvalidParams` se un altro `sync_now` è già in corso. NON commette le modifiche nel repository git. |
256
259
 
257
- I tre nuovi strumenti replicano `hk diff` / `hk breaking` e il flusso di lavoro di confronto delle versioni che in precedenza richiedeva script. Consultare [manuale → server MCP](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/mcp-server/) per gli schemi di input completi.
260
+ Gli strumenti della v1.1 replicano `hk diff` / `hk breaking` e il flusso di lavoro di confronto delle versioni che in precedenza richiedeva script. Gli strumenti di sincronizzazione della v1.2 colmano la lacuna in cui una sessione poteva interrogare il database ma non aggiornarlo — `sync_status` segnala l'obsolescenza, `sync_now` esegue la pipeline. Consultare [handbook → server MCP](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/mcp-server/) per gli schemi di input completi.
258
261
 
259
262
  ---
260
263
 
@@ -262,11 +265,11 @@ I tre nuovi strumenti replicano `hk diff` / `hk breaking` e il flusso di lavoro
262
265
 
263
266
  Panoramica completa in [SOURCES.md](SOURCES.md).
264
267
 
265
- - **Livello 1 (GitHub Releases)** — `gh api repos/<owner>/<repo>/releases` per 23 prodotti, inclusi gli SDK di Anthropic (7 linguaggi), gli SDK per agenti (2), l'interfaccia a riga di comando ant, **claude-code** (ora sincronizzato automaticamente tramite gh-releases dalla versione v1.1 precedentemente configurato manualmente), claude-code-action, claude-code-security-review e 15 SDK dell'ecosistema MCP.
266
- - **Livello 2 (markdown grezzo)** — `Aider-AI/aider/HISTORY.md`. Il parser generico `keep-a-changelog` (v1.1+) è disponibile anche per qualsiasi prodotto il cui sorgente è un file CHANGELOG.md in formato Keep-a-Changelog configurabile tramite una voce in `products.yaml`.
268
+ - **Livello 1 (GitHub Releases)** — `gh api repos/<owner>/<repo>/releases` per 23 prodotti, tra cui gli SDK di Anthropic (7 lingue), gli SDK per agenti (2), l'interfaccia a riga di comando di ant, **claude-code** (ora sincronizzato automaticamente tramite gh-releases dalla versione 1.1 precedentemente configurato manualmente), claude-code-action, claude-code-security-review e 15 SDK dell'ecosistema MCP.
269
+ - **Livello 2 (markdown grezzo)** — `Aider-AI/aider/HISTORY.md`. È disponibile anche il parser generico `keep-a-changelog` (versione 1.1+) per qualsiasi prodotto il cui sorgente sia un file CHANGELOG.md nel formato Keep-a-Changelog; la configurazione avviene tramite una voce in `products.yaml`.
267
270
  - **Livello 3 (HTML / RSS)** — `platform.claude.com/docs/release-notes`, `support.claude.com/articles/12138966`, `cursor.com/changelog/rss.xml`, `sourcegraph.com/changelog/featured.rss` (filtrato), `github.blog/changelog/label/copilot/`, `code.visualstudio.com/updates/v1_NNN`.
268
271
  - **Livello 4 (catalogo)** — `anthropics/skills`, `claude-plugins-{official,community}`, `knowledge-work-plugins`.
269
- - **Livello 5 (consigli)** — Account X `@ClaudeCodeLog`; mirror del changelog di marckrenn.
272
+ - **Livello 5 (informativo)** — Account X `@ClaudeCodeLog`; mirror del changelog di marckrenn.
270
273
 
271
274
  Strategie di acquisizione: `gh-releases | rss | raw-changelog | html-scrape | catalog | playwright`. Nuovo prodotto = una voce in `products.yaml`.
272
275
 
@@ -291,7 +294,7 @@ Indice completo in [synergies/INDEX.md](synergies/INDEX.md).
291
294
  La suite di test Vitest copre i livelli di unità, integrazione, regressione e test preliminari. **[test-spec-3.md](test-spec-3.md) è la documentazione di riferimento corrente** a partire dalla versione 0.7.0; [test-spec.md](test-spec.md) (versione 1) e [test-spec-2.md](test-spec-2.md) (versione 2) rimangono nel repository come documentazione storica della progettazione.
292
295
 
293
296
  ```bash
294
- pnpm test # unit + integration + regression (~18s, 508 tests)
297
+ pnpm test # unit + integration + regression (~36s, 517 tests)
295
298
  pnpm test:watch # interactive
296
299
  pnpm test:coverage # generate coverage/index.html (thresholds: 78/75/85/78)
297
300
  pnpm test:smoke # opt-in full-corpus smoke (RUN_SMOKE=1)
@@ -301,9 +304,9 @@ Layout:
301
304
 
302
305
  | Directory | Cosa copre |
303
306
  |-----|----------------|
304
- | `test/unit/` | per-modulo estrazione, ingestione, query (incl. `until` / navigazione / since / confronto), database (incl. migrazione della configurazione della dimensione v3), embedding, ibrido, fetch + tutti i provider (Ollama / Voyage / **OpenAI**) + fetch-rss/changelog (incl. parser **keep-a-changelog**)/html + fetch-mcp-registry + fetch-playwright + configurazione dei prodotti + ingestione/query delle sinergie. |
305
- | `test/integration/` | end-to-end pipeline, sincronizzazione, server MCP (JSON-RPC stdio, 11 strumenti), CLI (incl. `hk diff`, `hk breaking`). |
306
- | `test/regression/` | §8.1–§8.19 — ciascuno protegge da un bug reale corretto durante lo sviluppo (§8.19: la paginazione early-exit di ghReleases preserva gli elementi all'interno dell'intervallo). |
307
+ | `test/unit/` | per modulo: estrazione, acquisizione, interrogazione (inclusi `until` / navigazione / da / confronto), database (inclusa la migrazione della configurazione dimensionale v3), incorporamento, ibrido, acquisizione + ogni provider (Ollama / Voyage / **OpenAI**) + acquisizione-RSS/changelog (incluso il parser **keep-a-changelog**) / HTML + acquisizione-registro-MCP + acquisizione-playwright + configurazione-prodotti + acquisizione/interrogazione sinergica. |
308
+ | `test/integration/` | end-to-end: pipeline, sincronizzazione, server MCP (JSON-RPC standard input/output, 13 strumenti inclusi `sync_status` / `sync_now`), interfaccia a riga di comando (inclusi `hk diff`, `hk breaking`). |
309
+ | `test/regression/` | §8.1–§8.19 — ciascuno protegge da un reale bug corretto durante lo sviluppo (§8.19: la paginazione early-exit di ghReleases preserva gli elementi all'interno dell'intervallo). |
307
310
  | `test/smoke/` | Test completo con l'intero corpus rispetto alla directory `products/` (1.143 file). |
308
311
  | `test/fixtures/` | 3 prodotti fittizi + risposte HTTP simulate (RSS / GH / Voyage / Cohere / Ollama / Anthropic / Smithery / Registro MCP ufficiale). |
309
312
  | `test/helpers/` | `temp-db.ts`, `fetch-mock.ts`, `mcp-client.ts`, `seed-corpus.ts`, `golden-vectors.ts`, `playwright-mock.ts`, `yaml-fixtures.ts` |
@@ -344,13 +347,13 @@ La sincronizzazione è idempotente: è sicuro rieseguirla anche in caso di un er
344
347
 
345
348
  Il comando `hk embed` chiama un servizio esterno di embedding:
346
349
 
347
- - **Ollama (predefinito, 768 dimensioni)**: assicurarsi che Ollama sia in esecuzione (`ollama serve`) e che il modello di embedding sia stato scaricato (`ollama pull nomic-embed-text`).
348
- - **Voyage (1024 dimensioni)**: impostare la variabile d'ambiente `VOYAGE_API_KEY`. Verificare la propria chiave API su [dash.voyageai.com](https://dash.voyageai.com).
349
- - **OpenAI (1536 dimensioni predefinite, configurabili)**: impostare la variabile `OPENAI_API_KEY`. Il modello predefinito è `text-embedding-3-small`; è possibile sovrascriverlo utilizzando `OPENAI_EMBED_MODEL` (ad esempio, `text-embedding-3-large` per 3072 dimensioni). Utilizzare tramite `hk hybrid --embed openai` oppure `hk embed --embed openai`.
350
+ - **Ollama (predefinito, 768 dimensioni)** assicurarsi che Ollama sia in esecuzione (`ollama serve`) e che il modello di incorporamento sia stato scaricato (`ollama pull nomic-embed-text`).
351
+ - **Voyage (1024 dimensioni)** impostare `VOYAGE_API_KEY` nell'ambiente. Controllare la chiave API su [dash.voyageai.com](https://dash.voyageai.com).
352
+ - **OpenAI (1536 dimensioni predefinite, configurabili)** impostare `OPENAI_API_KEY`. Il modello predefinito è `text-embedding-3-small`; sovrascriverlo con `OPENAI_EMBED_MODEL` (ad esempio, `text-embedding-3-large` per 3072 dimensioni). Utilizzare tramite `hk hybrid --embed openai` o `hk embed --embed openai`.
350
353
 
351
- **Incompatibilità delle dimensioni degli embedding durante il cambio di provider.**
354
+ **Incompatibilità della dimensione dell'incorporamento durante la modifica del provider**
352
355
 
353
- Ogni provider produce vettori di una dimensione fissa (Ollama 768, Voyage 1024, OpenAI 1536 per impostazione predefinita; OpenAI supporta dimensioni configurabili all'interno delle dimensioni native del modello). Il database memorizza la dimensione attiva in `schema_meta.embedding_dim`. Il cambio di provider tra dimensioni diverse, quando esistono già frammenti di dati, genera un errore `EMBEDDING_DIM_MISMATCH` (`AppError`) anziché corrompere silenziosamente la tabella dei vettori. Per cambiare provider:
356
+ Ogni provider produce vettori di una dimensione fissa (Ollama 768, Voyage 1024, OpenAI 1536 per impostazione predefinita; OpenAI supporta dimensioni configurabili all'interno delle dimensioni native del modello). Il database memorizza la dimensione attiva in `schema_meta.embedding_dim`. La modifica del provider con dimensioni diverse mentre esistono chunk genera un errore `EMBEDDING_DIM_MISMATCH` (`AppError`) anziché corrompere silenziosamente la tabella dei vettori. Per cambiare provider:
354
357
 
355
358
  ```bash
356
359
  rm data/claude-synergy.db data/claude-synergy.db-wal data/claude-synergy.db-shm
@@ -359,7 +362,7 @@ hk ingest
359
362
  hk embed --embed openai # new provider, new dim, fresh chunks_vec
360
363
  ```
361
364
 
362
- Per la troncatura di Matryoshka di OpenAI (dimensioni inferiori a quelle native), impostare `OPENAI_EMBED_MODEL` e specificare la dimensione desiderata durante la configurazione del provider in `hk embed` consultare la [sezione relativa agli embedding nel manuale](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/cli-reference/#embedding-providers-and-dimensions) per maggiori dettagli.
365
+ Per la troncatura Matryoshka di OpenAI (dimensione inferiore a quella nativa), impostare `OPENAI_EMBED_MODEL` e passare la dimensione desiderata tramite la costruzione del provider in `hk embed`; consultare la [sezione sull'incorporamento della guida](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/cli-reference/#embedding-providers-and-dimensions) per i dettagli.
363
366
 
364
367
  **Incompatibilità di versione dello schema / database corrotto**
365
368
 
package/README.ja.md CHANGED
@@ -73,7 +73,7 @@ claude-synergy/
73
73
  └── URGENT_FINDINGS.md # 23 actionable items surfaced from the corpus
74
74
  ```
75
75
 
76
- **現在の数値 (v1.1.0 時点):** 44製品 / 1,186リリースファイル / 6,042変更点 / 1,225エンティティ / 12の連携 / 508テスト / 11のMCPツール / 17のCLIコマンド。
76
+ **現在の数値 (v1.2.0時点):** 44製品 / 1,171リリースファイル / 6,573変更 / 1,260エンティティ / 12の相乗効果 / 517テスト / 13のMCPツール / 17のCLIコマンド。 (コーパスは2026年5月24日に`sync_now`で更新されました。)
77
77
 
78
78
  ---
79
79
 
@@ -90,6 +90,7 @@ claude-synergy/
90
90
  | **4c — turndown HTML→Markdownインジェスト** | ✅ リリース済み | HTMLの本文(Copilot/VS Code/Cursor)が、FTS5とエンティティ抽出のための、行ごとのリストを生成 |
91
91
  | **4d — Playwright + MCPレジストリ + YAML設定** | ✅ リリース済み | WindsurfはPlaywright経由; Smitheryと公式MCPレジストリをTier-4カタログとして使用; 製品は`products.yaml`に統合 |
92
92
  | **5 — v1.1:ウィンドウ表示機能 + OpenAIの埋め込み機能** | ✅ リリース済み | `hk diff` / `hk breaking`:すべての閲覧コマンドで日付範囲を指定可能。3つの新しいMCPツール(合計11個)、OpenAIの埋め込み機能、設定可能な埋め込み次元、`claude-code`の自動同期、汎用的な`keep-a-changelog`パーサー。 |
93
+ | **6 — v1.2 MCPからの同期** | ✅ リリース済み | `sync_status`(製品ごとの鮮度、古くなったものの検出)と`sync_now`(オンデマンドでの取得→取り込み→埋め込み。`dry_run`によるプレビュー機能付き。取り込み処理中の同時実行を制限)。コーパスを問い合わせることはできるが、更新できないという問題を解決します。**また、以下の問題を修正:** `INSERT OR REPLACE INTO products`によって`markers`の外部キーにDELETEが連鎖し、各製品の`since`カーソルが取り込みのたびにリセットされていたバグ(回帰 §8.20)。 |
93
94
 
94
95
  v0.8以降のロードマップ:[URGENT_FINDINGS.md](URGENT_FINDINGS.md)およびissueで追跡中。
95
96
 
@@ -253,8 +254,10 @@ GitHub Copilotの`.vscode/mcp.json`ファイルでは、`mcpServers`ではなく
253
254
  | `get_changes_since` | **新規。** 製品とバージョンごとにグループ化された、時間範囲内の変更点。入力:`since`(必須)、`until?`、`product?`、`kind?`、`limit?`。 |
254
255
  | `search_breaking_changes` | **新規。** 検索語句不要の、変更点のフラットリスト。入力:`product?`、`since?`、`until?`、`limit?`。 |
255
256
  | `compare_versions` | **新規。** 単一の製品の2つのバージョン間のすべての変更点。入力:`product`、`from_version`、`to_version`。 |
257
+ | `sync_status` | **v1.2.** 製品ごとの同期鮮度:最終取得日時、取得からの経過時間、取り込んだリリース数。入力パラメータ:`product?`, `stale_only?`, `stale_hours?`。`latest_releases`を使用する前に、コーパスが最新の状態かどうかを確認するために使用してください。 |
258
+ | `sync_now` | **v1.2.** オンデマンドでの更新(`hk sync`と同様)。入力パラメータ:`product?`, `dry_run?`, `include_ingest?`, `include_embed?`, `timeout_ms?`。別の`sync_now`が実行中の場合、`InvalidParams`エラーで拒否されます。Gitへのコミットは行いません。 |
256
259
 
257
- これらの3つの新しいツールは、`hk diff` / `hk breaking`と、以前はスクリプトが必要だったバージョン比較のワークフローを反映しています。入力スキーマの詳細については、[マニュアル → MCPサーバー](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/mcp-server/)を参照してください。
260
+ v1.1のツールは、`hk diff` / `hk breaking`および、以前はスクリプトが必要だったバージョン比較のワークフローを模倣しています。v1.2の同期ツールは、セッションがコーパスを問い合わせることはできるが、更新できないという問題を解決します。`sync_status`は鮮度を報告し、`sync_now`はパイプラインを実行します。完全な入力スキーマについては、[マニュアル → MCPサーバー](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/mcp-server/)を参照してください。
258
261
 
259
262
  ---
260
263
 
@@ -291,7 +294,7 @@ GitHub Copilotの`.vscode/mcp.json`ファイルでは、`mcpServers`ではなく
291
294
  Vitestスイートは、ユニットテスト、統合テスト、回帰テスト、および初期動作確認(smoke)の各レベルをカバーします。**[test-spec-3.md](test-spec-3.md)が現在の仕様**です(v0.7.0時点)。[test-spec.md](test-spec.md)(v1)および[test-spec-2.md](test-spec-2.md)(v2)は、設計の経緯を示すための履歴として、リポジトリに残っています。
292
295
 
293
296
  ```bash
294
- pnpm test # unit + integration + regression (~18s, 508 tests)
297
+ pnpm test # unit + integration + regression (~36s, 517 tests)
295
298
  pnpm test:watch # interactive
296
299
  pnpm test:coverage # generate coverage/index.html (thresholds: 78/75/85/78)
297
300
  pnpm test:smoke # opt-in full-corpus smoke (RUN_SMOKE=1)
@@ -302,7 +305,7 @@ pnpm test:smoke # opt-in full-corpus smoke (RUN_SMOKE=1)
302
305
  | ディレクトリ | 内容 |
303
306
  |-----|----------------|
304
307
  | `test/unit/` | モジュールごと — 抽出、取り込み、クエリ(`until` / 閲覧 / `since` / 比較を含む)、データベース(次元設定v3移行を含む)、埋め込み、ハイブリッド、取り込み + すべてのプロバイダー(Ollama / Voyage / **OpenAI**)+ RSS/変更ログの取り込み(**keep-a-changelog**パーサーを含む)/HTML + MCPレジストリの取り込み + Playwrightの取り込み + 製品設定 + 連携の取り込み/クエリ |
305
- | `test/integration/` | エンドツーエンド — パイプライン、同期、MCPサーバー(標準入出力JSON-RPC、11のツール)、CLI(`hk diff`、`hk breaking`を含む) |
308
+ | `test/integration/` | エンドツーエンド:パイプライン、同期、MCPサーバー(stdio JSON-RPC、13のツールを含む。`sync_status` / `sync_now`など)、CLI(`hk diff`、`hk breaking`など)。 |
306
309
  | `test/regression/` | §8.1–§8.19 — それぞれが、開発中に修正された実際のバグに対する対策。(§8.19:ghReleasesの早期終了ページネーションは、指定範囲内のアイテムを保持します) |
307
310
  | `test/smoke/` | 実際の`products/`ディレクトリ(1,143個のファイル)に対するフルコーパスのテスト。 |
308
311
  | `test/fixtures/` | 3つのダミー製品と、モックHTTPレスポンス(RSS / GH / Voyage / Cohere / Ollama / Anthropic / Smithery / 公式MCPレジストリ)。 |
package/README.md CHANGED
@@ -73,7 +73,7 @@ claude-synergy/
73
73
  └── URGENT_FINDINGS.md # 23 actionable items surfaced from the corpus
74
74
  ```
75
75
 
76
- **Live numbers (as of v1.1.0):** 44 products / 1,186 release files / 6,042 changes / 1,225 entities / 12 synergies / 508 tests / 11 MCP tools / 17 CLI commands.
76
+ **Live numbers (as of v1.2.0):** 44 products / 1,171 release files / 6,573 changes / 1,260 entities / 12 synergies / 517 tests / 13 MCP tools / 17 CLI commands. (Corpus refreshed via `sync_now` on 2026-05-24.)
77
77
 
78
78
  ---
79
79
 
@@ -84,14 +84,15 @@ claude-synergy/
84
84
  | **1 — bootstrap (markdown corpus)** | ✅ shipped | Study-swarm seeded 706 release files Jan→May 2026; extended to 1,186 by Tier 4d |
85
85
  | **2a — SQLite + FTS5 + CLI** | ✅ shipped | `hk` CLI; 15 subcommands; sub-300ms ingest |
86
86
  | **2b — sqlite-vec + Contextual Retrieval** | ✅ shipped | Provider-pluggable (none/structured/ollama/claude-haiku context × ollama/voyage embed × none/ollama-judge/voyage/cohere rerank) |
87
- | **3 — sync + MCP server** | ✅ shipped | `hk fetch / sync / seed-markers`; `claude-synergy-mcp` exposes 11 tools over stdio (8 at original Tier-3 ship, 3 added in v1.1) |
87
+ | **3 — sync + MCP server** | ✅ shipped | `hk fetch / sync / seed-markers`; `claude-synergy-mcp` exposes 13 tools over stdio (8 at original Tier-3 ship, 3 added in v1.1, 2 added in v1.2) |
88
88
  | **4a — extend beyond Anthropic** | ✅ shipped | +15 MCP SDKs, Cursor (RSS), Aider (HISTORY.md), Continue.dev, Cody Enterprise (RSS filtered) |
89
89
  | **4b — HTML-scrape fetcher** | ✅ shipped | GitHub Copilot + VS Code Chat (Windsurf needs Playwright — v0.7) |
90
90
  | **4c — turndown HTML→markdown ingest** | ✅ shipped | HTML bodies (Copilot/VS Code/Cursor) now produce per-bullet rows for FTS5 + entity extraction |
91
91
  | **4d — Playwright + MCP registry + YAML config** | ✅ shipped | Windsurf via Playwright; Smithery + official MCP Registry as Tier-4 catalogs; products consolidated into `products.yaml` |
92
92
  | **5 — v1.1 windowed browsing + OpenAI embed** | ✅ shipped | `hk diff` / `hk breaking`, date bounds across all browsing commands, 3 new MCP tools (11 total), OpenAI embedding provider, configurable embedding dimension, `claude-code` auto-sync, generic `keep-a-changelog` parser |
93
+ | **6 — v1.2 sync-from-MCP** | ✅ shipped | `sync_status` (per-product freshness, never/stale detection) and `sync_now` (on-demand fetch → ingest → embed with `dry_run` preview + in-process concurrency lock). Closes the seam where a calling agent could query the corpus but not refresh it. **Also fixes:** marker-wipe bug where `INSERT OR REPLACE INTO products` cascaded a DELETE on the `markers` FK, silently resetting every product's `since` cursor on each ingest (regression §8.20). |
93
94
 
94
- Roadmap beyond v1.1: tracked in [URGENT_FINDINGS.md](URGENT_FINDINGS.md) and issues.
95
+ Roadmap beyond v1.2: tracked in [URGENT_FINDINGS.md](URGENT_FINDINGS.md) and issues.
95
96
 
96
97
  ---
97
98
 
@@ -221,7 +222,7 @@ No search term needed — `hk breaking` is the answer to "did anything load-bear
221
222
 
222
223
  ## MCP server — give your agents access to this corpus
223
224
 
224
- `claude-synergy-mcp` exposes 11 tools over stdio. Wire into Claude Code (or any MCP host) via `~/.claude/.mcp.json` or your project's `.mcp.json`:
225
+ `claude-synergy-mcp` exposes 13 tools over stdio. Wire into Claude Code (or any MCP host) via `~/.claude/.mcp.json` or your project's `.mcp.json`:
225
226
 
226
227
  ```json
227
228
  {
@@ -252,9 +253,11 @@ Tools exposed:
252
253
  | `read_synergy` | Full text of one synergy file |
253
254
  | `get_changes_since` | **New.** Changes in a time window, grouped by product+version. Inputs: `since` (required), `until?`, `product?`, `kind?`, `limit?`. |
254
255
  | `search_breaking_changes` | **New.** Flat list of breaking changes — no search term needed. Inputs: `product?`, `since?`, `until?`, `limit?`. |
255
- | `compare_versions` | **New.** All changes between two versions of one product. Inputs: `product`, `from_version`, `to_version`. |
256
+ | `compare_versions` | **v1.1.** All changes between two versions of one product. Inputs: `product`, `from_version`, `to_version`. |
257
+ | `sync_status` | **v1.2.** Per-product sync freshness — last fetch timestamp, hours since fetch, ingested release count. Inputs: `product?`, `stale_only?`, `stale_hours?`. Use BEFORE trusting `latest_releases` to know if the corpus is stale. |
258
+ | `sync_now` | **v1.2.** On-demand refresh (mirrors `hk sync`). Inputs: `product?`, `dry_run?`, `include_ingest?`, `include_embed?`, `timeout_ms?`. Rejects with `InvalidParams` if another `sync_now` is already in flight. Does NOT commit to git. |
256
259
 
257
- The three new tools mirror `hk diff` / `hk breaking` and the version-comparison workflow that previously required scripting. See [handbook → MCP server](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/mcp-server/) for full input schemas.
260
+ The v1.1 tools mirror `hk diff` / `hk breaking` and the version-comparison workflow that previously required scripting. The v1.2 sync tools close the seam where a session could query the corpus but not refresh it — `sync_status` reports staleness, `sync_now` runs the pipeline. See [handbook → MCP server](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/mcp-server/) for full input schemas.
258
261
 
259
262
  ---
260
263
 
@@ -291,7 +294,7 @@ Full index in [synergies/INDEX.md](synergies/INDEX.md).
291
294
  Vitest suite covers unit / integration / regression / smoke tiers. **[test-spec-3.md](test-spec-3.md) is the current authority** as of v0.7.0; [test-spec.md](test-spec.md) (v1) and [test-spec-2.md](test-spec-2.md) (v2) remain in the repo as historical record of the design lineage.
292
295
 
293
296
  ```bash
294
- pnpm test # unit + integration + regression (~18s, 508 tests)
297
+ pnpm test # unit + integration + regression (~36s, 517 tests)
295
298
  pnpm test:watch # interactive
296
299
  pnpm test:coverage # generate coverage/index.html (thresholds: 78/75/85/78)
297
300
  pnpm test:smoke # opt-in full-corpus smoke (RUN_SMOKE=1)
@@ -302,7 +305,7 @@ Layout:
302
305
  | Dir | What it covers |
303
306
  |-----|----------------|
304
307
  | `test/unit/` | per-module — extract, ingest, query (incl. `until` / browse / since / compare), db (incl. dim-config v3 migration), embed, hybrid, fetch + every provider (Ollama / Voyage / **OpenAI**) + fetch-rss/changelog (incl. **keep-a-changelog** parser)/html + fetch-mcp-registry + fetch-playwright + products-config + synergy ingest/query |
305
- | `test/integration/` | end-to-end — pipeline, sync, MCP server (stdio JSON-RPC, 11 tools), CLI (incl. `hk diff`, `hk breaking`) |
308
+ | `test/integration/` | end-to-end — pipeline, sync, MCP server (stdio JSON-RPC, 13 tools incl. `sync_status` / `sync_now`), CLI (incl. `hk diff`, `hk breaking`) |
306
309
  | `test/regression/` | §8.1–§8.19 — each protects against a real bug fixed during development (§8.19: ghReleases early-exit pagination preserves in-window items) |
307
310
  | `test/smoke/` | opt-in full-corpus against real `products/` (1,143 files) |
308
311
  | `test/fixtures/` | 3 fake products + mock HTTP responses (RSS / GH / Voyage / Cohere / Ollama / Anthropic / Smithery / Official MCP Registry) |
package/README.pt-BR.md CHANGED
@@ -73,7 +73,7 @@ claude-synergy/
73
73
  └── URGENT_FINDINGS.md # 23 actionable items surfaced from the corpus
74
74
  ```
75
75
 
76
- **Números atuais (versão v1.1.0):** 44 produtos / 1.186 arquivos de lançamento / 6.042 alterações / 1.225 entidades / 12 sinergias / 508 testes / 11 ferramentas MCP / 17 comandos de linha de comando.
76
+ **Números atualizados (versão 1.2.0):** 44 produtos / 1.171 arquivos de lançamento / 6.573 alterações / 1.260 entidades / 12 sinergias / 517 testes / 13 ferramentas MCP / 17 comandos de linha de comando. (O corpus foi atualizado via `sync_now` em 24 de maio de 2026.)
77
77
 
78
78
  ---
79
79
 
@@ -90,6 +90,7 @@ claude-synergy/
90
90
  | **4c — ingestão de HTML para Markdown (turndown)** | ✅ implementado | Corpos de HTML (Copilot/VS Code/Cursor) agora geram linhas individuais para o FTS5 e extração de entidades. |
91
91
  | **4d — Playwright + registro MCP + configuração YAML** | ✅ implementado | Windsurf via Playwright; Smithery + registro oficial MCP como catálogos da etapa 4; produtos consolidados em `products.yaml`. |
92
92
  | **5 — Navegação com janelas (v1.1) + incorporação da OpenAI** | ✅ implementado | `hk diff` / `hk breaking`, limites de data em todos os comandos de navegação, 3 novas ferramentas MCP (total de 11), provedor de incorporação da OpenAI, dimensão de incorporação configurável, sincronização automática do `claude-code`, analisador genérico `keep-a-changelog`. |
93
+ | **6 — v1.2 sync-from-MCP** | ✅ implementado | `sync_status` (frescor por produto, detecção de "obsoleto") e `sync_now` (busca sob demanda → ingestão → incorporação com visualização "dry_run" + bloqueio de concorrência em processo). Elimina a lacuna onde um agente poderia consultar o corpus, mas não atualizá-lo. **Corrige também:** um erro em que a exclusão de marcadores, ao usar `INSERT OR REPLACE INTO products`, causava uma exclusão em cascata na chave estrangeira `markers`, reiniciando silenciosamente o cursor "since" de cada produto a cada ingestão (regressão §8.20). |
93
94
 
94
95
  Roteiro para a versão 0.8+: acompanhado em [URGENT_FINDINGS.md](URGENT_FINDINGS.md) e nas issues.
95
96
 
@@ -253,8 +254,10 @@ Ferramentas disponíveis:
253
254
  | `get_changes_since` | **Novo.** Alterações em uma janela de tempo, agrupadas por produto+versão. Entradas: `since` (obrigatório), `until?`, `product?`, `kind?`, `limit?`. |
254
255
  | `search_breaking_changes` | **Novo.** Lista simples de alterações significativas — não é necessário um termo de pesquisa. Entradas: `product?`, `since?`, `until?`, `limit?`. |
255
256
  | `compare_versions` | **Novo.** Todas as alterações entre duas versões de um produto. Entradas: `product`, `from_version`, `to_version`. |
257
+ | `sync_status` | **v1.2.** Frescor da sincronização por produto: última data de busca, horas desde a última busca, número de lançamentos ingeridos. Entradas: `product?`, `stale_only?`, `stale_hours?`. Use ANTES de confiar em `latest_releases` para saber se o corpus está desatualizado. |
258
+ | `sync_now` | **v1.2.** Atualização sob demanda (espelha `hk sync`). Entradas: `product?`, `dry_run?`, `include_ingest?`, `include_embed?`, `timeout_ms?`. Rejeita com `InvalidParams` se outro `sync_now` já estiver em execução. NÃO faz commit no Git. |
256
259
 
257
- As três novas ferramentas espelham `hk diff` / `hk breaking` e o fluxo de trabalho de comparação de versões que anteriormente exigia scripts. Consulte [manual → servidor MCP](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/mcp-server/) para obter os esquemas de entrada completos.
260
+ As ferramentas da versão 1.1 espelham `hk diff` / `hk breaking` e o fluxo de trabalho de comparação de versões que anteriormente exigia scripts. As ferramentas de sincronização da versão 1.2 eliminam a lacuna onde uma sessão poderia consultar o corpus, mas não atualizá-lo: `sync_status` informa sobre a obsolescência, `sync_now` executa o pipeline. Consulte [manual → servidor MCP](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/mcp-server/) para os esquemas de entrada completos.
258
261
 
259
262
  ---
260
263
 
@@ -291,7 +294,7 @@ Estratégias de busca: `gh-releases | rss | raw-changelog | html-scrape | catalo
291
294
  O conjunto de testes Vitest cobre os níveis de unidade / integração / regressão / teste rápido. **[test-spec-3.md](test-spec-3.md) é a documentação atual** a partir da versão v0.7.0; [test-spec.md](test-spec.md) (v1) e [test-spec-2.md](test-spec-2.md) (v2) permanecem no repositório como registro histórico da linhagem do design.
292
295
 
293
296
  ```bash
294
- pnpm test # unit + integration + regression (~18s, 508 tests)
297
+ pnpm test # unit + integration + regression (~36s, 517 tests)
295
298
  pnpm test:watch # interactive
296
299
  pnpm test:coverage # generate coverage/index.html (thresholds: 78/75/85/78)
297
300
  pnpm test:smoke # opt-in full-corpus smoke (RUN_SMOKE=1)
@@ -302,7 +305,7 @@ Estrutura:
302
305
  | Diretório | O que ele cobre |
303
306
  |-----|----------------|
304
307
  | `test/unit/` | por módulo — extração, ingestão, consulta (incl. `until` / navegação / desde / comparação), banco de dados (incl. migração da configuração de dimensão v3), incorporação, híbrido, busca + todos os provedores (Ollama / Voyage / **OpenAI**) + busca-rss/changelog (incl. analisador **keep-a-changelog**)/html + busca-mcp-registry + busca-playwright + configuração de produtos + ingestão/consulta de sinergia. |
305
- | `test/integration/` | de ponta a ponta — pipeline, sincronização, servidor MCP (JSON-RPC stdio, 11 ferramentas), CLI (incl. `hk diff`, `hk breaking`). |
308
+ | `test/integration/` | fim a fim — pipeline, sincronização, servidor MCP (JSON-RPC padrão, 13 ferramentas, incluindo `sync_status` / `sync_now`), linha de comando (incluindo `hk diff`, `hk breaking`). |
306
309
  | `test/regression/` | §8.1–§8.19 — cada um protege contra um bug real corrigido durante o desenvolvimento (§8.19: ghReleases preserva os itens dentro da janela durante a paginação inicial). |
307
310
  | `test/smoke/` | Teste completo com um conjunto de dados simulado, representando os arquivos reais do diretório `products/` (1.143 arquivos). |
308
311
  | `test/fixtures/` | 3 produtos simulados + respostas HTTP simuladas (RSS / GH / Voyage / Cohere / Ollama / Anthropic / Smithery / Registro oficial do MCP). |