pumuki 6.3.334 → 6.3.336
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,5 +1,9 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [6.3.335] - 2026-05-21
|
|
4
|
+
|
|
5
|
+
- `R_GO`: `skills.ios.no-wait-for-expectations` no longer reports domain helper calls such as `await waiter.wait(for:)` as XCTest legacy waits. The detector still reports free `wait(for:)`, `self.wait(for:)`, `waitForExpectations`, `XCTWaiter.wait(for:)` and `waitForExistence`.
|
|
6
|
+
|
|
3
7
|
## [6.3.308] - 2026-05-20
|
|
4
8
|
|
|
5
9
|
- `R_GO`: PRE_WRITE deja de exigir `skills.ios.critical-test-quality` cuando no hay cambios efectivos de test iOS en el scope actual aunque la evidencia previa arrastre `platforms.ios`. Evita el bloqueo falso `EVIDENCE_PLATFORM_CRITICAL_SKILLS_RULES_MISSING` sobre `.ai_evidence.json` en repos limpios/no-code.
|
|
@@ -3517,6 +3517,27 @@ final class BuyerCommerceUISmokeTests: XCTestCase {
|
|
|
3517
3517
|
assert.deepEqual(collectSwiftWaitForExpectationsLines(uiWait), []);
|
|
3518
3518
|
});
|
|
3519
3519
|
|
|
3520
|
+
test('hasSwiftWaitForExpectationsUsage no confunde metodos de dominio llamados wait', () => {
|
|
3521
|
+
const domainWait = `
|
|
3522
|
+
import Presentation
|
|
3523
|
+
import XCTest
|
|
3524
|
+
|
|
3525
|
+
@MainActor
|
|
3526
|
+
final class SplashDelayWaiterTests: XCTestCase {
|
|
3527
|
+
func test_wait_returns() async {
|
|
3528
|
+
let waiter = SplashDelayWaiter()
|
|
3529
|
+
|
|
3530
|
+
await waiter.wait(for: .milliseconds(1))
|
|
3531
|
+
|
|
3532
|
+
XCTAssertTrue(true)
|
|
3533
|
+
}
|
|
3534
|
+
}
|
|
3535
|
+
`;
|
|
3536
|
+
|
|
3537
|
+
assert.equal(hasSwiftWaitForExpectationsUsage(domainWait), false);
|
|
3538
|
+
assert.deepEqual(collectSwiftWaitForExpectationsLines(domainWait), []);
|
|
3539
|
+
});
|
|
3540
|
+
|
|
3520
3541
|
test('hasSwiftLegacyExpectationDescriptionUsage detecta expectation(description:) sin flujo moderno', () => {
|
|
3521
3542
|
const legacyExpectation = `
|
|
3522
3543
|
let expectation = expectation(description: "Done")
|
|
@@ -3143,7 +3143,8 @@ export const collectSwiftWaitForExpectationsLines = (source: string): readonly n
|
|
|
3143
3143
|
}
|
|
3144
3144
|
|
|
3145
3145
|
return sortedUniqueLines([
|
|
3146
|
-
...collectSwiftRegexLines(source, /\
|
|
3146
|
+
...collectSwiftRegexLines(source, /\bself\s*\.\s*wait\s*\(\s*for\s*:/),
|
|
3147
|
+
...collectSwiftRegexLines(source, /(?<![.\w])wait\s*\(\s*for\s*:/),
|
|
3147
3148
|
...collectSwiftRegexLines(source, /\bwaitForExpectations\s*\(/),
|
|
3148
3149
|
...collectSwiftRegexLines(source, /\bXCTWaiter\s*\.\s*wait\s*\(\s*for\s*:/),
|
|
3149
3150
|
...collectSwiftRegexLines(source, /\bwaitForExistence\s*\(/),
|
|
@@ -4,6 +4,10 @@ This file tracks the active deterministic framework line used in this repository
|
|
|
4
4
|
Canonical release chronology lives in `CHANGELOG.md`.
|
|
5
5
|
This file keeps only the operational highlights and rollout notes that matter while running the framework.
|
|
6
6
|
|
|
7
|
+
### 2026-05-21 (v6.3.335)
|
|
8
|
+
|
|
9
|
+
- `R_GO`: `skills.ios.no-wait-for-expectations` deja de marcar llamadas de dominio como `await waiter.wait(for:)`. La regla conserva bloqueo para `wait(for:)` XCTest libre, `self.wait(for:)`, `waitForExpectations`, `XCTWaiter.wait(for:)` y `waitForExistence`, pero no confunde helpers propios de la app con APIs legacy de XCTest.
|
|
10
|
+
|
|
7
11
|
### 2026-05-18 (v6.3.277)
|
|
8
12
|
|
|
9
13
|
- `PUMUKI-INC-146`: PRE_WRITE uses staged paths as the effective slice for `skills.ios.critical-test-quality` when staged files exist. Unstaged Swift tests no longer contaminate a staged production-only iOS commit, but staged Swift tests still require the critical test-quality rule and remain fail-closed.
|
|
@@ -648,7 +648,7 @@ const collectIosTestFileContents = (
|
|
|
648
648
|
};
|
|
649
649
|
|
|
650
650
|
const isXCTestSource = (content: string): boolean => {
|
|
651
|
-
return /\
|
|
651
|
+
return /\bclass\s+\w+\s*:\s*XCTestCase\b/.test(content);
|
|
652
652
|
};
|
|
653
653
|
|
|
654
654
|
const hasMakeSUTPattern = (content: string): boolean => /\bmakeSUT\s*\(/.test(content);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pumuki",
|
|
3
|
-
"version": "6.3.
|
|
3
|
+
"version": "6.3.336",
|
|
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": {
|