pumuki 6.3.177 → 6.3.178

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/VERSION CHANGED
@@ -1 +1 @@
1
- v6.3.177
1
+ v6.3.178
@@ -18,6 +18,16 @@ test('androidRules define reglas heurísticas locked para plataforma android', (
18
18
  ]);
19
19
 
20
20
  const byId = new Map(androidRules.map((rule) => [rule.id, rule]));
21
+ const coroutineRuleIds = [
22
+ 'heuristics.android.globalscope.ast',
23
+ 'heuristics.android.run-blocking.ast',
24
+ ];
25
+
26
+ for (const ruleId of coroutineRuleIds) {
27
+ assert.equal(byId.get(ruleId)?.platform, 'android');
28
+ assert.equal(byId.get(ruleId)?.locked, true);
29
+ }
30
+
21
31
  assert.equal(
22
32
  byId.get('heuristics.android.thread-sleep.ast')?.then.code,
23
33
  'HEURISTICS_ANDROID_THREAD_SLEEP_AST'
@@ -122,6 +122,11 @@ app/
122
122
  ✅ El baseline Android debe cubrir al menos SRP en presentation, OCP por branching de discriminadores, DIP por dependencias concretas de framework, ISP por interfaces demasiado anchas y LSP por precondiciones estrechadas.
123
123
  ✅ Estos detectores son paridad parcial Android: no sustituyen una auditoría completa de arquitectura, pero sí evitan que reglas SOLID críticas queden como doctrina declarativa sin señal ejecutable.
124
124
 
125
+ ### Enforcement AST inicial de coroutines Android
126
+ ✅ `skills.android.guideline.android.coroutines-async-await-no-callbacks` debe mapear a señales ejecutables existentes de uso inseguro de coroutines, empezando por `GlobalScope` y `runBlocking`.
127
+ ✅ El baseline inicial de coroutines es parcial: cubre APIs bloqueantes o scopes no estructurados, pero no declara todavía cobertura completa de `Flow`, `viewModelScope`, `supervisorScope`, dispatchers ni cancelación cooperativa.
128
+ ✅ Si se amplía esta cobertura, cada nueva regla debe aterrizar como detector AST/textual semántico con test dirigido antes de declararse cubierta en el registry.
129
+
125
130
  ### Dependency Injection (Hilt):
126
131
  ✅ **Hilt** - DI framework (NO manual factories)
127
132
  ✅ **@HiltAndroidApp** - Application class
@@ -213,6 +213,13 @@ const registryByRuleId: Record<string, SkillsDetectorBinding> = {
213
213
  'skills.android.no-runblocking': heuristicDetector('android.run-blocking', [
214
214
  'heuristics.android.run-blocking.ast',
215
215
  ]),
216
+ 'skills.android.guideline.android.coroutines-async-await-no-callbacks': heuristicDetector(
217
+ 'android.coroutines.baseline',
218
+ [
219
+ 'heuristics.android.globalscope.ast',
220
+ 'heuristics.android.run-blocking.ast',
221
+ ]
222
+ ),
216
223
  'skills.android.no-solid-violations': heuristicDetector('android.solid', [
217
224
  'heuristics.android.solid.srp.presentation-mixed-responsibilities.ast',
218
225
  'heuristics.android.solid.ocp.discriminator-branching.ast',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pumuki",
3
- "version": "6.3.177",
3
+ "version": "6.3.178",
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": {