fuera Karvan: se usan el Telefono y las Salas del dev

El dev ya trae Telefono (llamadas uno a uno, buzon de voz) y Salas (hasta 50,
con video, grabacion y emision). La rama quita su modulo propio de salas y
llamadas: modelo, vista, JS de cliente, CSS, rutas, credenciales TURN, pruebas
y textos.

- el router propio pasa a llamarse fork_routes.js, sin Karvan
- el audio, la camara y la emision de Android se enchufan desde main.js con
  setAudioFactory/setVideoFactory/setStreamFactory, que exporta el propio dev;
  SSB_server.js vuelve a tener su linea original
- Clear-SNH.css y modules_view.js vuelven a ser identicos a los del dev
- el workflow acampada y la config de serie cambian Karvan por Telefono y Salas
- README y guia: las llamadas son las del dev; antes de hacer un modulo propio,
  mirar si el dev ya lo tiene
This commit is contained in:
hacklab 2026-10-19 13:39:41 +02:00
parent 3937ddab1e
commit 096a7d110b
30 changed files with 266 additions and 1918 deletions

View file

@ -17,8 +17,7 @@ Los números y de dónde salen están en `docs/FRONTERA_UPSTREAM.md`.
- `src/backend/backend.js`. Cambia en 34 de cada 39 versiones. Ni rutas nuevas, ni
middleware, ni envolver funciones suyas como `checkMod`.
- La cadena de middleware del final de `backend.js`. Crece en cada versión.
- Los modelos de `src/models/`, salvo los nuestros (`karvan_model.js`,
`fork_workflows.js`). Ahí se decide qué se publica en la red y cómo se cuenta.
- Los modelos de `src/models/`, salvo el nuestro (`fork_workflows.js`). Ahí se decide qué se publica en la red y cómo se cuenta.
Si lo cambiamos, nuestro móvil cuenta distinto que el escritorio de al lado. Un
ejemplo real: quien crea una votación no puede votar en ella. No nos gusta, pero
es una regla del modelo, así que se explica en pantalla y punto.
@ -52,6 +51,17 @@ Ahora mismo hay enganches en `main_views.js`, `tribes_view.js`, `vote_view.js`,
`settings_view.js` y `welcome_view.js`. Para verlos: `grep -n mobileUi src/views/*.js`.
## Llamadas: las del dev
La rama tuvo un módulo de salas y llamadas propio (Karvan). Se quitó el 19/10/2026
porque el dev ya trae Teléfono y Salas. Lo nuestro es solo que funcionen en Android:
los permisos del envoltorio y el puente de audio y cámara. Si falta algo en las
llamadas, se arregla en ese puente o se le pide al dev, no se monta otro módulo.
Lo mismo vale para cualquier módulo: antes de hacer uno propio, mirad si el dev ya lo
tiene o lo está haciendo.
## Lo que es nuestro
Aquí se puede hacer lo que haga falta.
@ -62,16 +72,17 @@ Aquí se puede hacer lo que haga falta.
piezas nuevas. Vale para los dos skins de móvil.
- `src/client/assets/themes/Acampada.css` y `styles/hive_acampada.css`: el skin
Acampada.
- `styles/karvan.css`, `src/views/karvan_view.js`, `src/models/karvan_model.js`,
`src/client/public/js/karvan.js`: Karvan entero.
- `src/views/mobile_ui.js`: lo que se enchufa en vistas del dev.
- `src/views/mobile_modules_view.js`, `identities_view.js`: pantallas propias.
- `src/views/hive_views.js`: lanzador y barras de arriba y abajo.
- `src/views/mobile_icons.js`: los iconos.
- `src/backend/karvan_routes.js`: nuestro router. Va justo delante del del dev.
- `src/backend/fork_routes.js`: nuestro router. Va justo delante del del dev.
- `src/backend/mobile_layer.js`: lo que el móvil necesita del backend (rutas que se
cortan, módulos que no van, avatar y lanzador, retoques del HTML, descargas de la
copia de seguridad). La monta `karvan_routes.js`.
copia de seguridad). La monta `fork_routes.js`.
- `main.js`: arranca el backend en el móvil. Ahí se enchufan el audio, la cámara y la
emisión de Android (`src/server/phone_*_android.js`) en el Teléfono y las Salas del
dev, con `setAudioFactory` y compañía, sin tocar `SSB_server.js`.
- `src/models/fork_workflows.js`: nuestros workflows.
- `src/client/assets/translations/i18n_fork.js`: nuestros textos.
- `src/client/assets/images/ux-*.svg`: nuestras imágenes.
@ -98,7 +109,7 @@ antes se iban sumando y una ficha perdía 74 px por lado.
Cambiar el HTML de una pantalla del dev. Función en `mobile_ui.js` y una línea en la
vista, como arriba.
Una pantalla o una ruta nueva. En `karvan_routes.js`. Lo que no atiende nuestro
Una pantalla o una ruta nueva. En `fork_routes.js`. Lo que no atiende nuestro
router pasa al del dev con `next()`:
```js
@ -108,7 +119,7 @@ router pasa al del dev con `next()`:
})
```
Retocar lo que contesta el dev. También en `karvan_routes.js`, en `wrapUpstream`: deja
Retocar lo que contesta el dev. También en `fork_routes.js`, en `wrapUpstream`: deja
que el dev conteste y luego mira la respuesta. Así sabemos a qué sección apagada se
quería entrar (el dev solo manda a `/modules`) o añadimos `?saved=1` al guardar.
@ -130,7 +141,7 @@ nombre es el de la ruta: `/tribes` es `tribes`.
del dev, solo líneas de enganche.
- `node --check` en los `.js` que hayáis cambiado.
- Arrancar en local y ver que `/activity`, `/tribes`, `/modules`, `/settings`,
`/votes`, `/karvan` e `/inbox` cargan.
`/votes`, `/phone`, `/rooms` e `/inbox` cargan.
- Mirarlo a 412 px de ancho, y a 360 si es algo ancho.
- Los textos nuevos, en los 11 idiomas.
- Nada en línea, que la CSP lo bloquea.
@ -178,9 +189,13 @@ duele:
1. En `backend.js` quedan 9 trozos pequeños (21 líneas) que no se pueden sacar desde
fuera: tres expresiones regulares que con el Node 18 de Android tumbaban el
arranque (esto habría que contárselo al dev), no abrir el navegador al arrancar,
no repetir fotos ya limpiadas, el modo chats, Karvan en la lista de Módulos de
escritorio y la línea que monta nuestro router. Lo demás ya está en
`src/backend/mobile_layer.js`.
no repetir fotos ya limpiadas, el modo chats y la línea que monta nuestro router.
Lo demás ya está en `src/backend/mobile_layer.js`.
2. En `workflows_model.js` queda la logica de skins del movil (`themeOf`, `sameTheme`):
`settings_view.js` coge `currentWorkflow` al cargar y no se puede envolver desde
fuera sin tocar esa vista. Es poco, pero es del dev.
3. `src/server/phone_module.js` escribe el estado de la llamada en
`.phone_state.json` para que la app Android enseñe la notificación (9 líneas). El
módulo del dev no avisa hacia fuera de los cambios de estado; habría que pedírselo.
4. `src/server/SSB_server.js` quita la publicación de la dirección del banco al
arrancar. Hay que mirar por qué se quitó y si sigue haciendo falta.