10 Commits (422747c1777d73602b488b42d296b305a3473a02)

Author SHA1 Message Date
borja 422747c177 feat: add access control for task completion
Users can only complete tasks if they are:
- Assigned to the task, OR
- An active member of the task's group, OR
- An admin (ADMIN_USERS env var)

Changes:
- TaskService.completeTask() now checks assignment, group membership,
  and admin status before allowing completion
- Returns 'forbidden' status when unauthorized
- completar command handler shows appropriate error message
- Web path (loadTaskAndGating) gets admin override for consistency
- AdminService.isAdmin() made public for reuse
- Updated tests to respect new access control + 12 new test cases
1 month ago
borja b7ed1ad013 refactor: webhook handler, group sync, command handlers, tests
- Refactor webhook handler with improved error handling and auto-ensure
- Break group-sync into modular services (changes, deactivation, membership, scheduler)
- Add startup.ts bootstrap with health checks and metrics
- Refactor command handlers (nueva, completar, tomar, soltar, ver) for gating/resilience
- Remove unused Svelte UI components (Badge, Skeleton, GroupCard, etc.)
- Add ICS helpers, task helpers, preferences helpers to web lib
- Remove legacy help.ts message service
- Restructure tests: split monolithic server.test.ts into focused files
- Add server test harness and coverage/conformance tests
- Update docs (commands inventory, user guide, operational docs)
- Command trigger simplified to 't' and task name (no slash)
- Add .gitignore entries for fallow, sift, sq artifacts
1 month ago
brobert ecc0cc6fd8 refactor: usar locator para inyectar DB en tests
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
7 months ago
brobert 226e1bc01f test: usar display_code en /t y validar no encontrada tras completar
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
8 months ago
brobert fb7cc90b77 fix: usar display_code activo en comandos y DMs; eliminar fallback al PK
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
8 months ago
brobert 542e1f03a4 feat: impedir soltar tarea personal sin asignatarios; backend+UI
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
8 months ago
borja fe5a8d29cb feat: aplicar codeId y monoespacio en listados, ayudas y mensajes
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
9 months ago
borja 05952efbf3 feat: añadir formatting.ts para IDs 4 dígitos y fechas
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
9 months ago
borja 3b41c01360 fix: cambiar 'dueño' a 'responsable' y quitar comillas en descripciones
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
9 months ago
borja 9fb4a0d03a test: añade pruebas de claim/unassign para TaskService y CommandService
Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
9 months ago