pumuki 6.3.98 → 6.3.100
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 +16 -0
- package/VERSION +1 -1
- package/docs/operations/RELEASE_NOTES.md +10 -0
- package/integrations/lifecycle/policyValidationSnapshot.ts +8 -2
- package/integrations/mcp/autoExecuteAiStart.ts +2 -2
- package/integrations/policy/experimentalFeatures.ts +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,22 @@ This project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [6.3.100] - 2026-04-22
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- **`PRE_WRITE` estricto por defecto en la línea publicada:** la resolución experimental de `pre_write` deja de nacer en `off/default` en `main` y vuelve a converger con el contrato coercitivo esperado por los consumers.
|
|
14
|
+
- **Regresión explícita del default efectivo:** nuevas pruebas fijan que `resolvePreWriteExperimentalFeature`, `resolvePreWriteEnforcement` y `policyValidationSnapshot` tratan `PRE_WRITE` como estricto cuando no existe override explícito.
|
|
15
|
+
|
|
16
|
+
## [6.3.99] - 2026-04-22
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- **PRE_WRITE visible y coherente en la línea de producción:** `policyValidationSnapshot` refleja `PRE_WRITE` como estricto cuando el enforcement efectivo está activado en `strict`, evitando contradicción entre policy y runtime.
|
|
21
|
+
- **Arranque agentic sin éxito falso:** `auto_execute_ai_start` devuelve `success=false` cuando el gate bloquea y fuerza remediación explícita antes de continuar.
|
|
22
|
+
- **Contrato MCP actualizado:** la superficie HTTP del enterprise server hereda ese mismo contrato de bloqueo para `auto_execute_ai_start`.
|
|
23
|
+
- **Cobertura de regresión del hotfix:** nuevas regresiones fijan la proyección de `PRE_WRITE` y el comportamiento bloqueante del arranque agentic sobre la línea `main`.
|
|
24
|
+
|
|
9
25
|
## [6.3.98] - 2026-04-21
|
|
10
26
|
|
|
11
27
|
### Fixed
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
v6.3.
|
|
1
|
+
v6.3.100
|
|
@@ -6,6 +6,16 @@ This file keeps only the operational highlights and rollout notes that matter wh
|
|
|
6
6
|
|
|
7
7
|
## 2026-04 (CLI stability and macOS notifications)
|
|
8
8
|
|
|
9
|
+
### 2026-04-22 (v6.3.100)
|
|
10
|
+
|
|
11
|
+
- **Hotfix de activación efectiva:** la línea publicada deja de resolver `PRE_WRITE` a `off/default` en ausencia de override explícito; el default vuelve a ser coercitivo para el flujo real del agente/editor.
|
|
12
|
+
- **Rollout recomendado:** publicar `pumuki@6.3.100` y revalidar en `RuralGo` que `status`/`doctor` ya no presenten `pre_write.mode=off source=default`.
|
|
13
|
+
|
|
14
|
+
### 2026-04-22 (v6.3.99)
|
|
15
|
+
|
|
16
|
+
- **Hotfix de coerción temprana:** `PRE_WRITE` deja de parecer advisory cuando realmente está activado en `strict`, y el arranque agentic devuelve fallo real al bloquear.
|
|
17
|
+
- **Rollout recomendado:** publicar `pumuki@6.3.99` y repin inmediato en `RuralGo`, validando `pumuki:status`, `pumuki:doctor`, `pre-commit` y `pre-push` con el fix de `PUMUKI-INC-079`.
|
|
18
|
+
|
|
9
19
|
### 2026-04-11 (v6.3.72)
|
|
10
20
|
|
|
11
21
|
- **Tarball npm**: `package.json` → `files` incluye `AGENTS.md`, `CHANGELOG.md` y `docs/tracking/plan-curso-pumuki-stack-my-architecture.md` para lectura canónica vía npm / jsDelivr sin depender solo del repo Git.
|
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
resolvePolicyForStage,
|
|
4
4
|
type ResolvedStagePolicy,
|
|
5
5
|
} from '../gate/stagePolicies';
|
|
6
|
+
import { resolvePreWriteEnforcement } from '../policy/preWriteEnforcement';
|
|
6
7
|
|
|
7
8
|
export type LifecyclePolicyValidationStageSnapshot = {
|
|
8
9
|
source: ResolvedStagePolicy['trace']['source'];
|
|
@@ -23,8 +24,13 @@ export type LifecyclePolicyValidationSnapshot = {
|
|
|
23
24
|
const POLICY_STAGES: ReadonlyArray<SkillsStage> = ['PRE_WRITE', 'PRE_COMMIT', 'PRE_PUSH', 'CI'];
|
|
24
25
|
|
|
25
26
|
const toStageSnapshot = (
|
|
27
|
+
stage: SkillsStage,
|
|
26
28
|
resolved: ResolvedStagePolicy
|
|
27
29
|
): LifecyclePolicyValidationStageSnapshot => {
|
|
30
|
+
const strictFromPolicy = resolved.trace.validation?.strict ?? false;
|
|
31
|
+
const strict = stage === 'PRE_WRITE'
|
|
32
|
+
? strictFromPolicy || resolvePreWriteEnforcement().blocking
|
|
33
|
+
: strictFromPolicy;
|
|
28
34
|
return {
|
|
29
35
|
source: resolved.trace.source,
|
|
30
36
|
bundle: resolved.trace.bundle,
|
|
@@ -34,7 +40,7 @@ const toStageSnapshot = (
|
|
|
34
40
|
policySource: resolved.trace.policySource ?? null,
|
|
35
41
|
validationStatus: resolved.trace.validation?.status ?? null,
|
|
36
42
|
validationCode: resolved.trace.validation?.code ?? null,
|
|
37
|
-
strict
|
|
43
|
+
strict,
|
|
38
44
|
};
|
|
39
45
|
};
|
|
40
46
|
|
|
@@ -42,7 +48,7 @@ export const readLifecyclePolicyValidationSnapshot = (
|
|
|
42
48
|
repoRoot: string
|
|
43
49
|
): LifecyclePolicyValidationSnapshot => {
|
|
44
50
|
const resolvedByStage = Object.fromEntries(
|
|
45
|
-
POLICY_STAGES.map((stage) => [stage, toStageSnapshot(resolvePolicyForStage(stage, repoRoot))])
|
|
51
|
+
POLICY_STAGES.map((stage) => [stage, toStageSnapshot(stage, resolvePolicyForStage(stage, repoRoot))])
|
|
46
52
|
) as Record<SkillsStage, LifecyclePolicyValidationStageSnapshot>;
|
|
47
53
|
|
|
48
54
|
return {
|
|
@@ -207,13 +207,13 @@ export const runEnterpriseAutoExecuteAiStart = (params: {
|
|
|
207
207
|
message = `${message} Learning: ${learningContext.recommended_actions[0]}`;
|
|
208
208
|
instruction = `${instruction} Learning: ${learningContext.recommended_actions[0]}`;
|
|
209
209
|
}
|
|
210
|
-
const force = action === 'ask'
|
|
210
|
+
const force = action === 'ask';
|
|
211
211
|
|
|
212
212
|
return {
|
|
213
213
|
tool: 'auto_execute_ai_start',
|
|
214
214
|
dryRun: true,
|
|
215
215
|
executed: true,
|
|
216
|
-
success:
|
|
216
|
+
success: evaluation.allowed,
|
|
217
217
|
result: {
|
|
218
218
|
action,
|
|
219
219
|
phase,
|
|
@@ -40,7 +40,7 @@ type ExperimentalFeatureConfig = {
|
|
|
40
40
|
|
|
41
41
|
const EXPERIMENTAL_FEATURES: Record<ExperimentalFeatureId, ExperimentalFeatureConfig> = {
|
|
42
42
|
pre_write: {
|
|
43
|
-
defaultMode: '
|
|
43
|
+
defaultMode: 'strict',
|
|
44
44
|
activationVariable: 'PUMUKI_EXPERIMENTAL_PRE_WRITE',
|
|
45
45
|
legacyActivationVariable: 'PUMUKI_PREWRITE_ENFORCEMENT',
|
|
46
46
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pumuki",
|
|
3
|
-
"version": "6.3.
|
|
3
|
+
"version": "6.3.100",
|
|
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": {
|