Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
ca9a3ca
chore(deps): bump the npm-runtime-patch-minor group with 2 updates (#…
dependabot[bot] Aug 10, 2026
251114c
chore(deps): bump fast-uri from 3.1.4 to 3.1.5 (#138)
dependabot[bot] Aug 10, 2026
299b95d
chore(deps): bump undici from 6.27.0 to 6.28.0 (#137)
dependabot[bot] Aug 10, 2026
239575d
chore(security): tighten Dependabot and add SECURITY.md
Japegomez Aug 10, 2026
b6c8df0
fix(security): patch transitive advisories and audit allowlist
Japegomez Aug 10, 2026
4f1b12f
feat(profile): add native contact creation from player phone (#139)
Japegomez Aug 10, 2026
bd14623
feat(stats): player statistics, ELO ranking, H2H insights and unified…
Japegomez Aug 10, 2026
31c0405
fix(ci): restrict GITHUB_TOKEN permissions in workflows
Japegomez Aug 10, 2026
ba75453
feat(leagues): ligas, stats de perfil y acceso admin a privados (#143)
Japegomez Aug 10, 2026
5bd6809
Merge branch 'main' into develop
Japegomez Aug 10, 2026
06ae20b
chore(deps): integrate Dependabot #140 and #141 (#145)
Japegomez Aug 10, 2026
3bf9c05
merge: sync main into develop
Japegomez Aug 11, 2026
5a1daba
fix(security): lock down league lifecycle and gate stats refresh
Japegomez Aug 11, 2026
f32c580
fix(security): harden migration ACL revokes for anon and helpers
Japegomez Aug 11, 2026
ecdeab1
docs: document leagues, stats and account-delete for v1.7
Japegomez Aug 11, 2026
592aad2
feat: friend system + match invitations (v1.8.0) (#157)
Japegomez Aug 12, 2026
218fa5f
fix(friends): harden invites UX and follow-up migrations
Japegomez Aug 12, 2026
bc7b0e1
fix(auth): extend background session timeout to 6h
Japegomez Aug 12, 2026
10751f6
merge: sync main hotfix v1.7.1 into develop
Japegomez Aug 12, 2026
99f8e25
fix(deps): pin react-test-renderer for npm ci
Japegomez Aug 12, 2026
536cb57
test: cover friends/invites hooks to restore coverage gates
Japegomez Aug 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,11 @@ El alcance se estructuró en **seis fases incrementales**, cada una con objetivo

```text
Fase 1 ──► Core Autenticación · Perfil · Partidas · Descubrir
Fase 2 ──► Resultados Notificaciones · Validación de marcadores · Reportes
Fase 3 ──► Administración Panel de moderación · Analíticas · Auditoría
Fase 4 ──► Torneos Cuadros eliminatorios · Parejas · Sincronización en tiempo real
Fase 5 ──► Marcador Conteo en vivo local · Acceso sin registro
Fase 6 ──► Ligas y stats Ligas round-robin / Elo · Estadísticas · Logros · Clasificación
Fase 2 ──► Resultados Notificaciones · Validación de marcadores · Reportes
Fase 3 ──► Administración Panel de moderación · Analíticas · Auditoría
Fase 4 ──► Torneos Cuadros eliminatorios · Parejas · Sincronización en tiempo real
Fase 5 ──► Marcador Conteo en vivo local · Acceso sin registro
Fase 6 ──► Ligas y stats Ligas round-robin / Elo · Estadísticas · Logros · Clasificación
```

---
Expand Down Expand Up @@ -185,7 +185,7 @@ La aplicación sigue una **arquitectura cliente-servidor** con separación clara

### 🔍 Descubrir

- Listado de partidas, torneos y **ligas** públicas con ordenación por proximidad temporal
- Listado de partidas, torneos y **ligas** públicas y **privadas con contraseña** (aparecen en Descubrir; la contraseña desbloquea la vista)
- Filtros por tipo, ciudad, fecha, plazas libres, visibilidad y estado
- Búsqueda por texto y paginación eficiente
- Actualización en tiempo real sin recarga manual
Expand Down
62 changes: 38 additions & 24 deletions REQUIREMENTS.md

Large diffs are not rendered by default.

25 changes: 24 additions & 1 deletion TASKS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Tareas - jugaMUS

> Actualizado: 11/08/2026 (hotfix v1.7.1: suite TDD + coverage gates)
> Actualizado: 12/08/2026 (merge main hotfix v1.7.1; timeout sesión 6 h; invites `117`)
> Metodología: Kanban personal. Actualizar al inicio y al final de cada sesión de trabajo.

---
Expand All @@ -26,6 +26,7 @@
| Minor partidas pasadas | Completada | Crear partida con resultado si `start_at` pasado; orden parejas; locales; v1.5.0 |
| Release 1.7 | Completada | Contactos, stats/ELO/badges, ligas, CI permissions, deps; v1.7.0 |
| Hotfix tests TDD | Completada | Characterization tests + coverage gates + docs; v1.7.1 |
| Release 1.8 | Completada | Amigos, invitaciones a partidas, prefs notif. friend/invite; v1.8.0 |

---

Expand Down Expand Up @@ -440,6 +441,7 @@ Las notificaciones push **no** funcionan en Expo Go; hace falta un build con cre
### Sesión, torneos, analytics y hotfix (v1.2.1) — 23/07/2026

- [x] Sesión caducada tras días sin abrir: `validateAuthSession` + `ensureSessionValid`; logout automático y mensaje en login; harden HMR
- [x] Timeout al volver de segundo plano: **6 h** (`BACKGROUND_SESSION_TIMEOUT_MS`; antes 10 min)
- [x] Torneos: auto-cancel en `start_at` sin cuadro organizado (migraciones `070`/`071`); título/ciudad/lugar opcionales; aviso al guardar; «Organizar cuadro» deshabilitado con menos de 2 parejas completas
- [x] Partidas: aviso post-crear si plantilla incompleta (auto-cancel al `start_at`)
- [x] PostHog: eventos funnels 1–2 + idempotencia `match_completed` + tests
Expand Down Expand Up @@ -544,6 +546,27 @@ Las notificaciones push **no** funcionan en Expo Go; hace falta un build con cre
- [x] Versión app → **1.7.1** (`app.json`, `package.json`)
- [x] Commit + PR `hotfix/v1.7.1` → `main` (revisor/asignado Japegomez)

### Release 1.8 — amigos e invitaciones a partidas (ago. 2026)

- [x] Sistema de amigos: solicitudes con mensaje, aceptar/rechazar/cancelar, eliminar amistad — mig. `108` / `110`
- [x] Invitaciones a partidas (pareja/rival) al crear o editar equipo; pendientes ocupan plaza de roster — mig. `109`
- [x] Mis Partidas: sección Invitaciones; ficha: banner Aceptar/Rechazar + deeplink WhatsApp
- [x] Resultado `pending_validation` cuando hay rivales invitados (también en partidas pasadas); rechazo cancela partida iniciada/finalizada
- [x] Preferencias push: `notify_on_friend_request` / `notify_on_match_invitation` (perfil + `enqueue_notification` + Edge Function) — mig. `110`
- [x] PostHog: `friend_request_sent`, `friend_request_accepted`, `match_invite_sent`, `match_invite_accepted`
- [x] Versión app → **1.8.0** (`app.json`, `package.json`)
- [x] Búsqueda de usuarios por `display_name` (RPC) — mig. `111`
- [x] Listado de mis invitaciones excluye canceladas — mig. `112`
- [x] Rechazar invitación con resultado confirmado: void + cancelar partida — mig. `113`
- [x] Review follow-ups amigos/invites: cooldown tras rechazo, mensaje ≤200, capacidad al aceptar, auth en `list_match_invitations`, `match_effective_roster_filled` SECURITY DEFINER, grants `badge_showcase`, cancel invites al eliminar amigo — mig. `114`/`115`
- [x] `send_friend_request` devuelve status; `get_profile_with_phone` sin prefs/badge sensibles — mig. `116`
- [x] Review follow-ups 2: escape ILIKE + trgm, `match_status`, `friend_request_accepted`, unique_violation, slim phone RPC — mig. `117` + Edge `process-notifications`
- [x] UX create/detail: capacidad de invites, `isSubmitting` de punta a punta, modal compartir en ficha, invite tab solo en partida standalone editable
- [x] Timeout sesión en segundo plano → **6 h** (`BACKGROUND_SESSION_TIMEOUT_MS`)
- [x] Contrato Descubrir: públicas + privadas con contraseña (docs README/REQUIREMENTS); CA_CONTACT1 incluye copia en web
- [x] Documentación alineada (`REQUIREMENTS.md`, `TASKS.md`, `README.md`)
- [x] Merge `main` (hotfix v1.7.1) en `develop` para desbloquear PR #158

---

## UI — Rediseño Ultra Limpio (may. 2026)
Expand Down
2 changes: 1 addition & 1 deletion app.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"name": "jugaMUS",
"slug": "musapp",
"scheme": "jugamus",
"version": "1.7.1",
"version": "1.8.0",
"orientation": "default",
"icon": "./assets/icon.png",
"userInterfaceStyle": "light",
Expand Down
5 changes: 3 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "jugamus",
"version": "1.7.1",
"version": "1.8.0",
"main": "expo-router/entry",
"scripts": {
"start": "expo start",
Expand Down Expand Up @@ -82,12 +82,14 @@
"jest-expo": "~54.0.17",
"lint-staged": "^16.4.0",
"prettier": "^3.9.6",
"react-test-renderer": "19.1.0",
"typescript": "~5.9.2"
},
"private": true,
"overrides": {
"brace-expansion": "$brace-expansion",
"postcss": "8.5.26",
"react-test-renderer": "19.1.0",
"tar": "7.5.22",
"uuid": "11.1.1",
"undici": "6.28.0",
Expand Down
Loading
Loading