diff --git a/.agente/ideas.md b/.agente/ideas.md index 1d9e13c..d9b2502 100644 --- a/.agente/ideas.md +++ b/.agente/ideas.md @@ -8,14 +8,22 @@ ## Ideas pendientes -- **Protección con PIN o contraseña opcional:** Permitir que quien comparte un archivo pueda agregar un PIN de 4 dígitos o contraseña opcional para mayor privacidad al compartir enlaces sensibles. -- **Descargas comprimidas ZIP multi-archivo:** Si un usuario sube un lote de varios archivos a la vez, empaquetarlos en un solo enlace con opción "Descargar todo como ZIP". -- **Límite de un solo uso (Burn after reading):** Opción para que un archivo o secreto en texto se auto-elimine inmediatamente después de la primera visualización o descarga. -- **Integración con bot del ecosistema (sigma-robot):** Enviar alerta o notificación opcional a un canal cuando un archivo clave haya sido descargado o abierto. +- **Mini editor de texto con syntax highlighting enriquecido:** Editor embebido ligero (CodeMirror o Monaco Editor minificado) para edición o visualización avanzada de código con resaltado de sintaxis antes de compartir. +- **Previsualización de modelos 3D / audio spectrum:** Visualizador simple para archivos GLTF/OBJ o visualizador de espectro interactivo para pistas de audio. + +--- + +## Ideas promovidas a objetivos.md + +- [x] **Descargas comprimidas ZIP multi-archivo** → [Objetivo #1](objetivos.md#pendientes) +- [x] **Notificación por bot o webhook al compartir** → [Objetivo #2](objetivos.md#pendientes) +- [x] **Modo P2P / WebRTC para transferir archivos pesados** → [Objetivo #3](objetivos.md#detalle-de-objetivos-pendientes) +- [x] **Widget publicitario del ecosistema (ads.sigmac.app)** → [Objetivo #4](objetivos.md#detalle-de-objetivos-pendientes) +- [x] **Protección con PIN o contraseña opcional** → [Objetivo #5](objetivos.md#detalle-de-objetivos-pendientes) +- [x] **Límite de un solo uso (Burn after reading)** → [Objetivo #6](objetivos.md#detalle-de-objetivos-pendientes) --- ## Ideas en borrador -- Modo P2P / WebRTC para transferir archivos pesados gigabytes directamente entre navegadores en la misma red local sin almacenarlos en el servidor. -- Mini editor de texto con syntax highlighting enriquecido (Monaco Editor o CodeMirror ligero). +- Sincronización de portapapeles en tiempo real entre dispositivos autorizados mediante WebSockets. diff --git a/.agente/objetivos.md b/.agente/objetivos.md index 60c0f17..e2619b2 100644 --- a/.agente/objetivos.md +++ b/.agente/objetivos.md @@ -13,6 +13,43 @@ |---|----------|--------|-----------| | 1 | Soporte para compresión zip en descargas multi-archivo | pablinux | Media | | 2 | Notificación opcional por bot o webhook al compartir | pablinux | Baja | +| 3 | Transferencia directa P2P navegador a navegador (WebRTC) | pablinux | Media | +| 4 | Widget publicitario del ecosistema (ads.sigmac.app) en vistas de invitados | pablinux | Baja | +| 5 | Protección por PIN / Contraseña opcional en enlaces compartidos | pablinux | Media | +| 6 | Modo de un solo uso (Burn after reading) con autodestrucción inmediata | pablinux | Media | + +--- + +### Detalle de Objetivos Pendientes + +#### 🎯 Objetivo 3: Transferencia directa P2P navegador a navegador (WebRTC) +- **Qué debe cumplirse:** + 1. Permitir la transferencia directa de archivos de gran volumen (cientos de MB o varios GB) directamente entre dispositivos sin almacenar el archivo en el disco del servidor. + 2. Implementar un servidor de señalización WebRTC ultraligero en Go (vía WebSocket o SSE/HTTP POST) para el intercambio de ofertas, respuestas y candidatos ICE entre emisor y receptor. + 3. Transmisión de datos mediante `RTCDataChannel` cifrado punto a punto en el navegador. + 4. Integración fluida con el flujo actual: el emisor abre la sala, se genera un enlace/QR dinámico, el receptor lo abre en su navegador y comienza la transferencia directa. + 5. Interfaz con barra de progreso bidireccional, velocidad de transferencia y estado de conexión (esperando receptor, conectado, transfiriendo, completado). + 6. Si no hay conexión P2P directa (NAT simétrico estricto), informar claramente al usuario o requerir conexión en la misma red local / STUN básico. + +#### 🎯 Objetivo 4: Widget publicitario del ecosistema (ads.sigmac.app) +- **Qué debe cumplirse:** + 1. Integrar banners o anuncios contextuales no intrusivos provenientes de `ads.sigmac.app` exclusivamente en las vistas públicas de usuarios invitados (Guest): página principal, visor `/v/{id}` y página de descarga. + 2. Los usuarios autenticados (WebControl / Google OAuth) en `/mis-archivos` y sus visores estarán 100% libres de publicidad. + 3. Carga asíncrona desacoplada: el widget no debe demorar la carga de la página, la previsualización ni la descarga del archivo. Si el servicio de anuncios no responde o falla, el contenedor se oculta limpiamente sin alterar la UI. + 4. Respetar las políticas de seguridad estrictas vigentes (CSP, sandbox, aislamiento contra XSS). + 5. Diseño integrado al tema oscuro (dark mode) del proyecto, sin popups ni redirecciones invasivas. + +#### 🎯 Objetivo 5: Protección por PIN / Contraseña opcional +- **Qué debe cumplirse:** + 1. Permitir al creador del share definir un PIN numérico (4-6 dígitos) o contraseña alocada al subir archivo o texto. + 2. El visor `/v/{id}`, descarga `/d/{id}` y raw `/raw/{id}` deben solicitar el PIN antes de entregar o previsualizar el contenido. + 3. Almacenamiento seguro del hash del PIN en SQLite (bcrypt / argon2) sin almacenar texto claro. + +#### 🎯 Objetivo 6: Modo de un solo uso (Burn after reading) +- **Qué debe cumplirse:** + 1. Opción al subir para marcar el contenido como "Auto-destrucción tras lectura / descarga". + 2. Tras la primera visualización exitosa o descarga completa, el archivo físico se purga de inmediato del disco y el registro se marca como destruido o eliminado en SQLite. + 3. Intentos posteriores de acceso redirigen a una vista informativa indicando que el archivo ya fue destruido. --- diff --git a/.agente/tareas.md b/.agente/tareas.md index e55c8a5..7fcb62d 100644 --- a/.agente/tareas.md +++ b/.agente/tareas.md @@ -49,6 +49,8 @@ ### Fase 2: Experiencia y Utilidades - [ ] **Descarga Multi-archivo Comprimida (.zip):** - Empaquetar múltiples archivos en un único archivo zip descargable al vuelo. +- [ ] **Transferencia Directa P2P (WebRTC):** + - Tráfico directo punto a punto navegador a navegador para archivos de gran volumen sin persistencia en disco del servidor. - [ ] **Protección por PIN / Contraseña opcional:** - Permitir a quien comparte proteger el visor con una clave de 4-6 dígitos. - [ ] **Modo de un solo uso (Burn after reading):**