wiki: contar lo que esta rama hace distinto, no Oasis otra vez

Misma reforma que en la de movil: la portada abre con las novedades y una tabla
comparativa con el oficial, y remite a la wiki de epsylon para lo generico.

Chats pasa a ser "Responder citando" y se queda con lo que aporta.
SITO 2026-08-19 23:52:59 +02:00
parent d5d44d7cc9
commit f069256f9c
5 changed files with 85 additions and 108 deletions

@ -1,64 +1,60 @@
# Chats
# Responder citando
> ⚠ Rama experimental, no oficial. El Oasis oficial es
> https://github.com/epsylon/oasis · [Volver a la portada](Home)
> Lo único que esta rama cambia en los chats. Cómo funcionan los chats de Oasis está
> en [su wiki](https://wiki.solarnethub.com/socialnet/overview) ·
> [Volver a la portada](Home)
Los chats de Oasis son **salas cifradas que sí se guardan**: cada mensaje se publica
firmado en tu registro SSB y se replica a quien te siga. Son lo contrario de
[Karvan](Karvan), que no guarda nada.
En el Oasis oficial, dentro de un chat se escribe y ya. Si diez mensajes después
alguien contesta a algo de arriba, no hay forma de saber a qué.
Esta rama no cambia cómo funcionan. Le añade una cosa: **responder citando** un
mensaje anterior.
---
## La pantalla
![Chat en el escritorio](img/04-chat.png)
En escritorio el chat se abre en dos columnas: a la izquierda la ficha de la sala
—imagen, estado **OPEN**, etiqueta **E2E**, participantes, etiquetas—, y a la derecha
el hilo de mensajes con el formulario debajo.
Arriba, los filtros de siempre: ALL, MINE, RECENT, FAVORITES, OPEN, CLOSED y
**Create Chat**.
---
## Responder citando
Esta rama añade **una flecha en cada burbuja**.
![Respuesta con cita](img/05-chat-respuesta.png)
Cada burbuja tiene una **flecha ↩**. Al pulsarla, el formulario de abajo se prepara
para responder a ese mensaje: aparece una cita con el autor y el principio del texto,
y una **✕** para cancelar.
Al pulsar la **↩** de un mensaje, el formulario de abajo se prepara para responderle:
sale una cita con el autor y el principio del texto, y una **✕** para cancelar. Al
enviar, la respuesta lleva la cita dentro —la barra amarilla de la última burbuja—.
Al enviar, la respuesta sale con la cita dentro —la barra amarilla de la última
burbuja de la captura—, así que se ve a qué contesta sin tener que buscarlo.
---
### Cómo está hecho
## Cómo está hecho, que es la parte interesante
Sin JavaScript en el cliente, como el resto de Oasis:
**Sin una línea de JavaScript en el cliente.** Oasis funciona sin JS a propósito y esto
no iba a ser la excepción:
1. El botón ↩ es un enlace a `?replyTo=<id>#chat-compose`.
1. La **↩** es un enlace normal a `?replyTo=<id>#chat-compose`.
2. El backend lee ese parámetro y se lo pasa a la vista.
3. La vista pinta la cita sobre el formulario y añade un campo oculto `replyTo`.
3. La vista pinta la cita sobre el formulario y mete un campo oculto `replyTo`.
4. Al enviar, el identificador viaja con el mensaje y **se guarda dentro de él**.
5. Al pintar el hilo, la vista arma un índice de mensajes por identificador y resuelve
cada cita contra él.
Si el mensaje citado ya no está —se borró, o es más viejo que lo que se carga—, la
burbuja sale sin cita en lugar de romperse.
burbuja sale sin cita en vez de romperse.
> Este arreglo salió de probarlo, no de leer el código: el identificador **se guardaba
> pero no se pintaba**, porque el modelo no lo copiaba al construir el mensaje. La cita
> aparecía al escribir y desaparecía al enviar.
## Las imágenes suben sin metadatos
Antes de guardarlas se les quitan la ubicación GPS, la marca y el modelo de la cámara,
el número de serie y la fecha. Vale para JPEG, PNG y WebP.
Esto en el oficial depende de la biblioteca `sharp`, y **si no está, la imagen pasa
intacta sin avisar**. Aquí no depende de nada. Ver [Si algo va mal](Problemas).
---
## Cuándo usar cada cosa
## Chats o Karvan
Son dos cosas distintas y conviene no confundirlas:
| | Chats | [Karvan](Karvan) |
|---|---|---|
| Dónde viven los mensajes | En tu registro SSB, en disco | Solo en memoria |
| Cuánto duran | Para siempre | Hasta que vence la sala |
| Se replican a la red | Sí | No |
| Quién puede entrar | Miembros del chat | Quien tenga el enlace |
| Quién entra | Miembros del chat | Quien tenga el enlace |
| Llamadas | No | Sí |
| Sirve para | Lo que quieres conservar | Lo que no |
| Para qué | Lo que quieres conservar | Lo que no |

121
Home.md

@ -1,92 +1,73 @@
# Oasis para escritorio — rama de desarrollo experimental
# Oasis para escritorio — qué añade esta rama
> # ⚠ ESTO NO ES OASIS OFICIAL
>
> Esta wiki documenta una **rama de desarrollo experimental** mantenida por el
> hacklab, **sin afiliación** con el proyecto original.
>
> ## El Oasis oficial es el de epsylon: https://github.com/epsylon/oasis
>
> Si quieres **usar Oasis de verdad, instala el oficial**. Lo que se documenta aquí
> puede romperse, cambiar de forma incompatible o desaparecer sin aviso. No está
> auditado y no tiene garantía de ninguna clase.
>
> **Los fallos de esta rama se reportan aquí, nunca a epsylon.**
> **⚠ No es Oasis oficial.** Es una rama experimental del hacklab sobre
> [el Oasis de epsylon](https://github.com/epsylon/oasis), sin afiliación con él.
> Si quieres usar Oasis de verdad, **instala el oficial**. Los fallos de aquí se
> reportan aquí, nunca a epsylon. Base: **0.9.5**. Rama: `PRUEBAS`.
Versión base: **Oasis 0.9.5**. Rama: `PRUEBAS`.
![Las novedades](img/00-novedades.png)
**Esta wiki solo cuenta lo que esta rama hace distinto.** Lo demás —qué es SSB, cómo
funcionan los pubs, para qué sirve cada módulo— está en la
[wiki del proyecto oficial](https://wiki.solarnethub.com/socialnet/overview), y no
tiene sentido repetirlo peor.
La interfaz es la suya, sin tocar: el menú lateral por grupos, los mismos nombres de
categoría, los mismos módulos.
---
## Qué añade respecto al oficial
## Lo que no existe en el Oasis oficial
Dos cosas, y ninguna cambia la interfaz que ya conoces:
| | Oficial | Esta rama |
|---|---|---|
| **[Salas efímeras](Karvan)** | — | Karvan: mensajes que solo viven en memoria y se autodestruyen |
| **[Videollamadas](Llamadas)** | — | Audio y vídeo por WebRTC, probado entre dos participantes |
| **[Varias identidades](Instalar)** | Una, en `~/.ssb` | Las que quieras, con aviso si dos comparten clave |
| **[Respuesta citada](Chats)** | — | Responder a un mensaje concreto dentro de un chat |
| **Metadatos de las imágenes** | Se quitan solo si está `sharp` | Se quitan siempre, sin depender de nada |
| **Servidor STUN** | Uno de Google, por defecto | Ninguno. TURN propio si lo configuras |
- **[Karvan](Karvan)**, un módulo de salas efímeras con llamadas de audio y vídeo.
- **Responder citando** en los [chats](Chats) de Oasis.
---
El resto es Oasis 0.9.5 tal cual: el menú lateral por grupos del proyecto original, no
la rejilla de hexágonos, que es de la versión para móvil.
## Por dónde empezar
![Oasis de escritorio](img/11-portada.png)
| Página | De qué va |
| Página | Qué cuenta |
|---|---|
| **[Instalar](Instalar)** | Puesta en marcha, TURN y avisos antes de tocar tu `~/.ssb` |
| **[Karvan](Karvan)** | Salas efímeras: crearlas, entrar, invitar, qué protege y qué no |
| **[Llamadas](Llamadas)** | WebRTC sin servidores de terceros, y cómo montar un TURN propio |
| **[Chats](Chats)** | Los chats cifrados, con respuesta citada |
| **[Temas](Temas)** | Cómo se ve el módulo con los cuatro temas |
| **[Diferencias con la versión de móvil](Diferencias)** | Qué cambia y por qué |
| **[Instalar](Instalar)** | Puesta en marcha, varias identidades y avisos antes de tocar tu `~/.ssb` |
| **[Karvan](Karvan)** | Salas efímeras: crear, invitar, cuánto viven, qué protege y qué no |
| **[Llamadas](Llamadas)** | WebRTC sin terceros, la prueba entre dos participantes y el TURN |
| **[Chats](Chats)** | Lo único que cambia ahí: responder citando |
| **[Temas](Temas)** | Cómo se ve el módulo con los cuatro, y por qué el claro necesita ayuda |
| **[Diferencias con móvil](Diferencias)** | Qué cambia respecto al repositorio hermano |
| **[Estructura del código](Estructura)** | Dónde vive cada fichero y por qué ahí |
| **[Si algo va mal](Problemas)** | Los fallos que han pasado de verdad, y su arreglo |
| **[Estado](Roadmap)** | Qué funciona y qué no |
| **[Si algo va mal](Problemas)** | Los fallos que han pasado de verdad |
| **[Estado](Roadmap)** | Qué está probado y qué no |
Todas las capturas de esta wiki están tomadas de esta rama funcionando en un navegador
real. Lo que se ve es lo que sale.
Todas las capturas están tomadas de esta rama funcionando en un navegador real.
---
## Karvan, de un vistazo
## Instalar, en corto
![Sala de Karvan](img/02-karvan-sala.png)
Una sala efímera: el tiempo que le queda arriba a la derecha, los botones de llamada,
y los mensajes, que **solo viven en la memoria del proceso**. Al vencer el plazo
desaparece todo. Explicado en detalle en **[Karvan](Karvan)**.
---
## Relación con la versión para móvil
Hay un repositorio hermano,
**[OASIS_MOBILE](https://gitea.laenre.net/hacklab/OASIS_MOBILE)**, con la versión de
Android: misma base y mismo módulo Karvan, pero con una interfaz distinta pensada para
el pulgar.
El código de Karvan es el mismo en ambos. Lo que cambia es el enganche: aquí un enlace
en el menú lateral siguiendo el patrón del proyecto original, allí una rejilla de
hexágonos. Está desarrollado en **[Diferencias](Diferencias)**.
---
## Cómo está organizado el código
El código propio vive separado de los ficheros del proyecto original:
```
src/models/karvan_model.js las salas y su ciclo de vida
src/views/karvan_view.js la interfaz de la sala
src/backend/fork_routes.js las rutas del módulo
src/backend/turnCredentials.js credenciales efímeras para TURN
src/client/public/js/karvan.js el cliente WebRTC del navegador
src/client/assets/styles/karvan.css los estilos del módulo
```sh
git clone https://gitea.laenre.net/hacklab/OASIS_LINUX.git
cd OASIS_LINUX/src/server && npm install
cd ../.. && ./oasis.sh
```
Sobre los ficheros de upstream solo hay **enganches de una línea**. El motivo:
epsylon publica una versión cada dos a cuatro días, y así cada una se integra sin
arrastrar nada.
Abre `http://localhost:3000`. Los detalles, los avisos y cómo levantar una segunda
identidad están en **[Instalar](Instalar)**.
---
> ⚠ **No ejecutes esta rama y el Oasis oficial a la vez con la misma identidad.**
> Publicar desde dos sitios con el mismo `secret` **parte tu registro y lo deja
> inservible para siempre**. No es recuperable.
## Relación con la versión de móvil
**[OASIS_MOBILE](https://gitea.laenre.net/hacklab/OASIS_MOBILE)** es el repositorio
hermano: misma base, mismo Karvan, pero con una interfaz propia para el pulgar y su
propio envoltorio de Android. Está en **[Diferencias](Diferencias)**.
## Licencia

BIN
img/00-novedades.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB