pumuki 6.3.298 → 6.3.300

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 CHANGED
@@ -1,7 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ ## [6.3.300] - 2026-05-19
4
+
5
+ - CLI: `pumuki --version` and `pumuki -v` now return the effective package version with exit code `0` without invoking lifecycle status, audit, gates, notifications or evidence writes. This prevents consumer repin checks from mutating `.ai_evidence.json` just to read the installed version.
6
+
3
7
  ## [6.3.298] - 2026-05-19
4
8
 
9
+ ## [6.3.299] - 2026-05-19
10
+
11
+ - Release line for INC145 AST/skills actionable next actions. Block summaries now emit rule, file, line and expected fix for any unmapped AST/skills finding instead of falling back to a generic primary-blocker message, while preserving specific mappings such as console.log.
12
+
5
13
  - Release line for the merged notification/evidence/context cleanup on develop. Keeps the published package unique after 6.3.297 was already present on npm, preserving the actionable notification payloads, expanded AST detector coverage, PRE_WRITE lease/evidence cause propagation, lifecycle hook alignment, local context gate scaffold and atomic Git hygiene rules.
6
14
 
7
15
  ## [6.3.297] - 2026-05-19
package/VERSION CHANGED
@@ -1 +1 @@
1
- 6.3.298
1
+ 6.3.300
@@ -121,6 +121,16 @@ const formatLocation = (finding: Finding): string | null => {
121
121
  return `${finding.filePath.replace(/\\/g, '/')}:${anchorLine}`;
122
122
  };
123
123
 
124
+ const resolveAstSkillNextAction = (finding: Finding): string | null => {
125
+ if (!isAstSkillFinding(finding)) {
126
+ return null;
127
+ }
128
+ const location = formatLocation(finding);
129
+ const fix = finding.expected_fix?.trim() || 'corrige la violación indicada por la regla';
130
+ const locationText = location ? ` en ${location}` : '';
131
+ return `Corrige ${finding.ruleId}${locationText}: ${fix}. Vuelve a ejecutar el gate.`;
132
+ };
133
+
124
134
  const formatFinding = (finding: Finding): string => {
125
135
  const location = formatLocation(finding);
126
136
  const severity = finding.severity.toUpperCase();
@@ -138,6 +148,7 @@ export const printGateFindings = (findings: ReadonlyArray<Finding>): void => {
138
148
  const primary = resolvePrimaryFinding(orderedFindings);
139
149
  const nextAction =
140
150
  BLOCK_NEXT_ACTION_BY_CODE[primary.code]
151
+ ?? resolveAstSkillNextAction(primary)
141
152
  ?? 'Corrige el bloqueante primario y vuelve a ejecutar el mismo comando.';
142
153
  process.stdout.write(
143
154
  `[pumuki][block-summary] primary=${primary.code} severity=${primary.severity.toUpperCase()} rule=${primary.ruleId}\n`
@@ -192,6 +192,7 @@ export type ParsedArgs = {
192
192
 
193
193
  const HELP_TEXT = `
194
194
  Pumuki lifecycle commands:
195
+ pumuki --version | -v
195
196
  pumuki bootstrap [--enterprise] [--agent=<name>] [--json]
196
197
  pumuki install [--with-mcp] [--agent=<name>]
197
198
  pumuki uninstall [--purge-artifacts]
@@ -2255,6 +2256,11 @@ export const runLifecycleCli = async (
2255
2256
  dependencies: Partial<LifecycleCliDependencies> = {}
2256
2257
  ): Promise<number> => {
2257
2258
  try {
2259
+ if (argv.length === 1 && (argv[0] === '--version' || argv[0] === '-v')) {
2260
+ writeInfo(getCurrentPumukiVersion());
2261
+ return 0;
2262
+ }
2263
+
2258
2264
  const activeDependencies: LifecycleCliDependencies = {
2259
2265
  ...defaultLifecycleCliDependencies,
2260
2266
  ...dependencies,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pumuki",
3
- "version": "6.3.298",
3
+ "version": "6.3.300",
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": {