docs(plan): add Fase 16 — loading spinner (MVP2 reopened to 8 fases)

Adds a tiny planned-phase doc for visual feedback during async operations.

- Single SVG-circle Spinner.svelte component, three sizes (sm/md/lg = 16
  / 24 / 40 px), color via currentColor (theme-aware), motion-reduce-aware,
  role="status" + sr-only m.loading() for a11y.
- Integration at 5 existing sites that already render m.loading() text or
  own a `loading` flag: auth splash, /search, /notes/archive,
  CreateCollectiveModal "creating" state, /collective/manage sub-sections.
- 5 unit + 3 e2e tests planned. No DB migration. No new Paraglide strings.

Rebrand: MVP2 reopens from 7/7  to in-progress 7/8 . Headers in fases
9–15 bump "·N/7" + "fases 9 → 15" to "·N/8" + "fases 9 → 16". README +
CLAUDE.md updated.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-18 13:34:58 +02:00
parent 3c60e5a026
commit 51e62ecba3
10 changed files with 135 additions and 9 deletions

View File

@@ -19,7 +19,7 @@
| Fase 6 — Deploy readiness | ✅ Completa (PWA generateSW + manifest + iconos placeholder + Kong rate-limit en invitaciones + rotación JWT dev + rotate-jwt.sh + `.env.erosi.example` + rls-audit.sh + `just lighthouse`). Rate-limit auth retirado — Keycloak brute-force nativa cubre el caso. Push notifications y iconos finales fuera de scope. |
| Fase 7 — Collective-flow E2E tests | ✅ Completa (12 Playwright nuevos O-01..MC-05; 3 bugs latentes corregidos: RPC atómica `create_collective`, restore de `pendingInvitationToken` tras login, hidratación tardía de `$currentCollective` en manage; migración 013 trigger `role/aud` default). |
| Fase 8 — Prod auth hardening | ✅ Completa (migración 014 extiende `role/aud` guard a UPDATE; `logout()` RP-initiated Keycloak end-session + ruta pública `/logged-out`). |
| **MVP2** — Fase 9 → 15 | ✅ Completa (rama `mvp2`, 2026-05-18) |
| **MVP2** — Fase 9 → 16 | 🔄 7/8 (fases 915 ✅ 2026-05-18; Fase 16 📋) |
| ↳ Fase 9 — Polish + Dark Mode | ✅ |
| ↳ Fase 10 — Spec completion | ✅ |
| ↳ Fase 11 — Item tags + importance UX | ✅ |
@@ -27,6 +27,7 @@
| ↳ Fase 13 — Server administration | ✅ |
| ↳ Fase 14 — PWA hardening | ✅ |
| ↳ Fase 15 — Common items management | ✅ |
| ↳ Fase 16 — Loading spinner | 📋 |
| Suite de tests (pgTAP + Vitest + Playwright) | ✅ **497 tests verdes** (177 pgTAP + 179 integración + 47 unit + 93 E2E) + 1 rate-limit gated (`just test-rate-limit`). 3 skipped en `just test-all` (2 Realtime presence — upstream `handle_out/3` bug; 1 rate-limit — gated). |
---
@@ -61,6 +62,7 @@ Las fases ya cerradas (0, 1, 2a) reflejan este patrón retroactivamente: la secc
| **MVP2 — Fase 13** | [fase-13-server-admin.md](plan/fase-13-server-admin.md) | 23 semanas |
| **MVP2 — Fase 14** | [fase-14-pwa-hardening.md](plan/fase-14-pwa-hardening.md) | 35 días |
| **MVP2 — Fase 15** | [fase-15-common-items.md](plan/fase-15-common-items.md) | 35 días |
| **MVP2 — Fase 16** | [fase-16-spinner.md](plan/fase-16-spinner.md) | 1 día |
**Total estimado MVP (Fase 06): 1116 semanas. MVP2 (Fase 914, rama `mvp2`): 1014 semanas. Fase 7+8 entre MVP y MVP2 como cleanup post-launch.**