pumuki 6.3.157 → 6.3.158
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.
|
@@ -461,7 +461,7 @@ const isSkillsEnforcementRemediationDiff = (
|
|
|
461
461
|
return false;
|
|
462
462
|
}
|
|
463
463
|
|
|
464
|
-
const normalizedPaths = paths.map((path) => toNormalizedPath(path));
|
|
464
|
+
const normalizedPaths = paths.map((path) => toNormalizedPath(path).toLowerCase());
|
|
465
465
|
const touchesDetectorSurface = normalizedPaths.some((path) =>
|
|
466
466
|
path.startsWith('core/facts/') ||
|
|
467
467
|
path.startsWith('core/rules/presets/heuristics/') ||
|
|
@@ -1494,17 +1494,30 @@ export async function runPlatformGate(params: {
|
|
|
1494
1494
|
stagedCodePathSet
|
|
1495
1495
|
)
|
|
1496
1496
|
: [];
|
|
1497
|
+
const previousIosTestsQualityFinding =
|
|
1498
|
+
previousFactsForStagedPaths.length > 0 &&
|
|
1499
|
+
iosTestsQualityFinding === undefined &&
|
|
1500
|
+
isStrictEnforcementStage(params.policy.stage)
|
|
1501
|
+
? toIosTestsQualityBlockingFinding({
|
|
1502
|
+
stage: params.policy.stage,
|
|
1503
|
+
facts: previousFactsForStagedPaths,
|
|
1504
|
+
})
|
|
1505
|
+
: undefined;
|
|
1506
|
+
const previousRemediationBlockingFindings = [
|
|
1507
|
+
...previousBlockingFindingsForStagedPaths,
|
|
1508
|
+
...(previousIosTestsQualityFinding ? [previousIosTestsQualityFinding] : []),
|
|
1509
|
+
];
|
|
1497
1510
|
const remediationProgressFinding =
|
|
1498
|
-
|
|
1511
|
+
previousRemediationBlockingFindings.length > currentBlockingFindingsForStagedPaths.length &&
|
|
1499
1512
|
currentBlockingFindingsForStagedPaths.length === 0
|
|
1500
1513
|
? toRemediationProgressAllowedFinding({
|
|
1501
1514
|
stage: params.policy.stage as Exclude<GateStage, 'STAGED'>,
|
|
1502
1515
|
currentBlockingCount: currentBlockingFindingsForStagedPaths.length,
|
|
1503
|
-
previousBlockingCount:
|
|
1516
|
+
previousBlockingCount: previousRemediationBlockingFindings.length,
|
|
1504
1517
|
paths: stagedCodePaths,
|
|
1505
1518
|
ruleIds: [
|
|
1506
1519
|
...new Set(
|
|
1507
|
-
|
|
1520
|
+
previousRemediationBlockingFindings.map((finding) => finding.ruleId)
|
|
1508
1521
|
),
|
|
1509
1522
|
].sort(),
|
|
1510
1523
|
})
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pumuki",
|
|
3
|
-
"version": "6.3.
|
|
3
|
+
"version": "6.3.158",
|
|
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": {
|
|
@@ -5,3 +5,11 @@ export const isTruthyEnvValue = (value?: string): boolean => {
|
|
|
5
5
|
const normalized = value.trim().toLowerCase();
|
|
6
6
|
return normalized === '1' || normalized === 'true' || normalized === 'yes' || normalized === 'on';
|
|
7
7
|
};
|
|
8
|
+
|
|
9
|
+
export const isFalsyEnvValue = (value?: string): boolean => {
|
|
10
|
+
if (!value) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
const normalized = value.trim().toLowerCase();
|
|
14
|
+
return normalized === '0' || normalized === 'false' || normalized === 'no' || normalized === 'off';
|
|
15
|
+
};
|
|
@@ -3,14 +3,21 @@ import type {
|
|
|
3
3
|
SystemNotificationEmitResult,
|
|
4
4
|
SystemNotificationsConfig,
|
|
5
5
|
} from './framework-menu-system-notifications-types';
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
isFalsyEnvValue,
|
|
8
|
+
isTruthyEnvValue,
|
|
9
|
+
} from './framework-menu-system-notifications-env';
|
|
7
10
|
|
|
8
11
|
export const resolveSystemNotificationGate = (params: {
|
|
9
12
|
config: SystemNotificationsConfig;
|
|
10
13
|
nowMs: number;
|
|
11
14
|
env?: NodeJS.ProcessEnv;
|
|
12
15
|
}): SystemNotificationEmitResult | null => {
|
|
13
|
-
if (
|
|
16
|
+
if (
|
|
17
|
+
isTruthyEnvValue(params.env?.PUMUKI_DISABLE_SYSTEM_NOTIFICATIONS) ||
|
|
18
|
+
isFalsyEnvValue(params.env?.PUMUKI_SYSTEM_NOTIFICATIONS) ||
|
|
19
|
+
isFalsyEnvValue(params.env?.PUMUKI_NOTIFICATIONS)
|
|
20
|
+
) {
|
|
14
21
|
return { delivered: false, reason: 'disabled' };
|
|
15
22
|
}
|
|
16
23
|
if (!params.config.enabled) {
|