pumuki 6.3.92 → 6.3.94
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.
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
## 2026-04-20 (v6.3.94)
|
|
2
|
+
- **Subtitle de bloqueo 100% en español**: la causa primaria visible de notificaciones ya traduce explícitamente los mensajes exactos de `console.log usage is not allowed in frontend code.` y `...backend code.` antes de construir el `subtitle`, evitando el último escape de copy inglés en bloqueos reales de frontend/backend.
|
|
3
|
+
- **Rollout recomendado**: publicar `pumuki@6.3.94`, repin inmediato en `Flux_training` y repetir un rojo real de frontend con `PUMUKI_SKIP_CHAINED_PRE_WRITE=1 pnpm exec pumuki-pre-commit`, confirmando que el `subtitle` contiene `Se detectó uso de "console.log" en frontend.` y no la frase inglesa raw.
|
|
4
|
+
|
|
5
|
+
## 2026-04-20 (v6.3.93)
|
|
6
|
+
- **Tracking terminal 100% en español**: las violaciones de repo policy `TRACKING_CANONICAL_SOURCE_CONFLICT`, `TRACKING_CANONICAL_FILE_MISSING` y `TRACKING_CANONICAL_IN_PROGRESS_INVALID` traducen ya la línea `[ERROR]` del gate en terminal, no solo el banner/modal.
|
|
7
|
+
- **Rollout recomendado**: publicar `pumuki@6.3.93`, repin inmediato en `Flux_training` y repetir el bloqueo con doble `🚧` para confirmar que desaparece la frase inglesa `Tracking canonical file must contain exactly one in-progress task`.
|
|
8
|
+
|
|
1
9
|
## 2026-04-20 (v6.3.92)
|
|
2
10
|
- **Purge real de uninstall**: `pumuki uninstall --purge-artifacts` elimina ya los artefactos bootstrap locales `.pumuki/adapter.json` y `.pumuki/bootstrap-manifest.json` cuando no están trackeados, en vez de dejar una instalación “medio desinstalada”.
|
|
3
11
|
- **Rollout recomendado**: publicar `pumuki@6.3.92`, repin inmediato en `Flux_training` y repetir `install -> uninstall --purge-artifacts` comprobando `adapter=no` y `manifest=no` al final.
|
|
@@ -1334,7 +1334,7 @@ const collectTrackingViolations = (repoState: RepoState): AiGateViolation[] => {
|
|
|
1334
1334
|
return [
|
|
1335
1335
|
toErrorViolation(
|
|
1336
1336
|
'TRACKING_CANONICAL_SOURCE_CONFLICT',
|
|
1337
|
-
`
|
|
1337
|
+
`Se ha detectado un conflicto entre fuentes canónicas de tracking (${declaredPaths}).`
|
|
1338
1338
|
),
|
|
1339
1339
|
];
|
|
1340
1340
|
}
|
|
@@ -1343,7 +1343,7 @@ const collectTrackingViolations = (repoState: RepoState): AiGateViolation[] => {
|
|
|
1343
1343
|
return [
|
|
1344
1344
|
toErrorViolation(
|
|
1345
1345
|
'TRACKING_CANONICAL_FILE_MISSING',
|
|
1346
|
-
`
|
|
1346
|
+
`Falta el archivo canónico de tracking (${tracking.canonical_path ?? 'sin-declarar'}).`
|
|
1347
1347
|
),
|
|
1348
1348
|
];
|
|
1349
1349
|
}
|
|
@@ -1352,7 +1352,7 @@ const collectTrackingViolations = (repoState: RepoState): AiGateViolation[] => {
|
|
|
1352
1352
|
return [
|
|
1353
1353
|
toErrorViolation(
|
|
1354
1354
|
'TRACKING_CANONICAL_IN_PROGRESS_INVALID',
|
|
1355
|
-
`
|
|
1355
|
+
`El archivo canónico de tracking debe contener exactamente una tarea o fase en construcción (conteo=${tracking.in_progress_count ?? 'n/d'}).`
|
|
1356
1356
|
),
|
|
1357
1357
|
];
|
|
1358
1358
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pumuki",
|
|
3
|
-
"version": "6.3.
|
|
3
|
+
"version": "6.3.94",
|
|
4
4
|
"description": "Enterprise-grade AST Intelligence System with multi-platform support (iOS, Android, Backend, Frontend) and Feature-First + DDD + Clean Architecture enforcement. Includes dynamic violations API for intelligent querying.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
@@ -19,6 +19,8 @@ const BLOCKED_CAUSE_SUMMARY_BY_CODE: Readonly<Record<string, string>> = {
|
|
|
19
19
|
OPENSPEC_MISSING: 'OpenSpec no está instalado en este repositorio.',
|
|
20
20
|
MCP_ENTERPRISE_RECEIPT_MISSING: 'Falta el recibo enterprise de MCP.',
|
|
21
21
|
BACKEND_AVOID_EXPLICIT_ANY: 'Se detectó uso de "any" explícito en backend.',
|
|
22
|
+
FRONTEND_NO_CONSOLE_LOG: 'Se detectó uso de "console.log" en frontend.',
|
|
23
|
+
BACKEND_NO_CONSOLE_LOG: 'Se detectó uso de "console.log" en backend.',
|
|
22
24
|
GIT_ATOMICITY_TOO_MANY_SCOPES: 'Se han cambiado demasiados scopes en el mismo commit.',
|
|
23
25
|
SOLID_HEURISTIC: 'Se detectó una violación estructural en el cambio actual.',
|
|
24
26
|
TRACKING_CANONICAL_SOURCE_CONFLICT:
|
|
@@ -63,6 +65,12 @@ const toKnownSpanishCauseFromMessage = (message: string): string | null => {
|
|
|
63
65
|
if (normalized.includes('avoid explicit any')) {
|
|
64
66
|
return BLOCKED_CAUSE_SUMMARY_BY_CODE.BACKEND_AVOID_EXPLICIT_ANY;
|
|
65
67
|
}
|
|
68
|
+
if (normalized.includes('console.log usage is not allowed in frontend code')) {
|
|
69
|
+
return BLOCKED_CAUSE_SUMMARY_BY_CODE.FRONTEND_NO_CONSOLE_LOG;
|
|
70
|
+
}
|
|
71
|
+
if (normalized.includes('console.log usage is not allowed in backend code')) {
|
|
72
|
+
return BLOCKED_CAUSE_SUMMARY_BY_CODE.BACKEND_NO_CONSOLE_LOG;
|
|
73
|
+
}
|
|
66
74
|
if (normalized.includes('evidence is stale')) {
|
|
67
75
|
return BLOCKED_CAUSE_SUMMARY_BY_CODE.EVIDENCE_STALE;
|
|
68
76
|
}
|