refactor: quitar _membersGlobalCooldownUntil y llamar a ensureUserExists

Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
main
brobert 1 month ago
parent 2f24806a06
commit ffad59f18f

@ -89,6 +89,7 @@ Resultados esperados después del refactor: disminución drástica de duplicados
- Lote 5 completado: división de TaskItem en subcomponentes (SVGs a iconos, TaskDueBadge, TaskAssignees, TaskCompleteButton, TaskActions, TaskText, TaskMeta); sin cambios funcionales; tests verdes y typecheck web limpio.
- Lote 5.5-a completado: ResponseQueue extraído (EvolutionClient, limpieza modular, parseo de metadata); sin cambios funcionales; commits: 1b7420e, 2032712.
- Lote 5.5-c completado: TaskService extraído (display_code, reacción al completar, mapeadores); sin cambios funcionales; LOC actual en src/tasks/service.ts ≈ 621; commits: e3ec820, a72184f.
- Lote 5.5-b completado: GroupSyncService modularizado (api.ts, repo.ts, cache.ts, reconcile.ts) y desacople de Onboarding A3 (publishGroupCoveragePrompt); umbral aplicado; tests y typecheck limpios; commits: 1b0d2ec, 0ce3ecb, 2f24806.
## Estado actual (2025-11-10)
@ -100,7 +101,7 @@ Resultados esperados después del refactor: disminución drástica de duplicados
- Lote 3 — Tipos y endurecimiento suave: Completado.
- Lote 4 — ICS central y rutas homogéneas: Completado.
- Lote 5 — Svelte: dividir componentes grandes: Completado.
- Lote 5.5 — Refactor de servicios grandes (god classes): En curso (PR 5.5-a y 5.5-c completados).
- Lote 5.5 — Refactor de servicios grandes (god classes): En curso (PR 5.5-a, 5.5-b y 5.5-c completados).
- Lote 6 — DB Locator / DI ligera: Pendiente.
- Lote 7 — Cobertura en módulos flojos: Pendiente.
@ -241,7 +242,7 @@ Cada lote incluye objetivo, cambios, métricas y comprobaciones. Mantener tests
git grep -n "display_code" src
```
3) PR 5.5-b — GroupSyncService (1310 LOC)
3) PR 5.5-b — GroupSyncService (1310 LOC) — Completado
- Motivos: agrupa API (Evolution), parseos, upsert/caché, scheduling, reconciliación de miembros, allowed-groups y publicación de onboarding.
- Cambios clave:
- Extraer acceso Evolution API:

@ -80,7 +80,6 @@ export class GroupSyncService {
private static _membersSchedulerRunning = false;
private static _groupsIntervalMs: number | null = null;
private static _groupsNextTickAt: number | null = null;
private static _membersGlobalCooldownUntil: number = 0;
private static _lastChangedActive: string[] = [];
static async syncGroups(force: boolean = false): Promise<{ added: number; updated: number }> {
@ -378,6 +377,7 @@ export class GroupSyncService {
static upsertMemberSeen(groupId: string, userId: string, nowIso?: string): void {
if (!groupId || !userId) return;
const now = nowIso || toIsoSqlUTC(new Date());
try { ensureUserExists(userId, this.dbInstance); } catch {}
this.dbInstance.prepare(`
INSERT INTO group_members (group_id, user_id, is_admin, is_active, first_seen_at, last_seen_at)
VALUES (?, ?, 0, 1, ?, ?)

Loading…
Cancel
Save