feat: merge Oasis 0.7.6 upstream — Graphos, E2E, peers/stats, AUTOMATIZACION

Cambios aplicados desde epsylon/oasis 3d46340 (0.7.6):

NUEVO MÓDULO Graphos (mapa interactivo de la red):
- src/views/graphos_view.js (nuevo)

LÓGICA:
- src/backend/nameCache.js (nuevo) — NameAuthor resolver
- src/models/chats_model.js — encriptación E2E
- src/models/calendars_model.js — E2E + calendar invites con códigos
- src/models/maps_model.js — E2E + CLOSED enforcement
- src/models/tribes_model.js — sub-tribe access control (PRESERVA nuestro inviteLog)
- src/models/tribe_crypto.js — soporte E2E
- src/models/main_models.js — refactor (PRESERVA nuestro pub-invite SSB msg)
- src/models/{activity,banking,pads,search,stats,tags,tribes_content}_model.js
- src/backend/backend.js — searchModel constructor + new helpers (errorView, safeRefererRedirect)
- src/backend/blobHandler.js, renderTextWithStyles.js
- src/views/main_views.js — añadido userLink/userLinkLabel + nameCache import (mantiene nuestro hamburger menu)

VISUAL:
- 31 views actualizadas con refactor a userLink helper
- src/views/peers_view.js — tabla con keys clicables
- src/views/stats_view.js — dashboard avanzado
- src/client/assets/styles/style.css — merge (preserva nuestras adiciones QR/mobile)
- Temas desktop: Clear, Dark, Matrix, Purple
- Translations 11 idiomas (ar, de, en, es, eu, fr, hi, it, pt, ru, zh)
- src/configs/{config-manager,oasis-config}, server/SSB_server.js, oasis_client.js

SKIPS (intencionalmente):
- OasisMobile.css del upstream (mantenemos NUESTRO mobile.css y theme)
- main_views.js menu reorganization (mantenemos hamburger nav)
- @xenova/transformers (LLM, no viable mobile)
- node-llama-cpp (build nativo no soportado en arm64 mobile)
- pdfjs-dist (pendiente probar luego)
- AI/embedder.js + AI/routes_index.js (dependen de las libs LLM)

server/package.json: version 0.7.5 → 0.7.6

AUTOMATIZACIÓN:
- Nueva carpeta AUTOMATIZACION/ con 10 archivos:
  - 4 opciones (cron simple, multi-agente, GitHub Actions, webhook)
  - Setup Debian completo paso a paso
  - Scripts bash listos: scout, merger, builder, notify-telegram
  - Prompts listos para los agentes
  - Sección /testing-app para 0asis.net
  - Human-in-the-loop: archivos prohibidos para auto-merge

PENDIENTE: build APK (el bash tool tuvo timeouts; usar comandos
de CONTEXT/cambio_apk_repack.txt manualmente).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
SITO 2026-05-15 19:41:45 +02:00
parent 13161b2158
commit 3a3563f2a0
84 changed files with 5842 additions and 1621 deletions

View file

@ -0,0 +1,147 @@
===============================================================
SECCIÓN /testing-app EN 0asis.net
===============================================================
OBJETIVO
--------
Tener una URL pública (ej: 0asis.net/testing-app) donde
automáticamente se publican las APK beta generadas por la
automatización. Los usuarios beta-testers pueden descargar y
probar antes de que se libere oficialmente.
ESTRUCTURA RECOMENDADA
----------------------
https://0asis.net/ -- web principal pública
https://0asis.net/testing-app/ -- index de beta APKs
https://0asis.net/testing-app/latest -- siempre la última
https://0asis.net/testing-app/archive -- histórico
IMPLEMENTACIÓN
--------------
OPCIÓN A: Carpeta estática servida por Nginx/Caddy
--------------------------------------------------
Más simple. Cuando el builder termina de generar la APK:
cp /tmp/oasis-aligned.apk /var/www/0asis.net/testing-app/
oasis-v0.7.6-20260509-pruebas.apk
ln -sf oasis-v0.7.6-20260509-pruebas.apk
/var/www/0asis.net/testing-app/latest.apk
Caddyfile:
0asis.net {
handle /testing-app/* {
root * /var/www/0asis.net
file_server browse
@latest path /testing-app/latest.apk
header @latest Content-Disposition "attachment; filename=oasis-latest-pruebas.apk"
}
handle {
# web principal
}
}
OPCIÓN B: Index dinámico con metadatos
--------------------------------------
El index muestra una tabla con cada APK, fecha, changelog,
link de descarga. Más útil para usuarios.
Generar /var/www/0asis.net/testing-app/index.html
automáticamente al final de builder.sh:
<h1>Oasis Mobile - Testing builds</h1>
<table>
<tr><th>Versión</th><th>Fecha</th><th>Cambios</th><th>Download</th></tr>
<tr>
<td>v0.7.6</td>
<td>2026-05-09</td>
<td>Graphos, encriptación E2E, peers...</td>
<td><a href="oasis-v0.7.6-20260509-pruebas.apk">APK</a></td>
</tr>
...
</table>
OPCIÓN C: Página dinámica con Caddy + tag de release
----------------------------------------------------
Más profesional: una página que lee el último JSON generado
por builder y renderiza UI bonita con changelog.
CHANGELOG AUTOMÁTICO
--------------------
El scout puede generar un changelog.md amigable. Por ejemplo:
## v0.7.6 — 2026-05-09 (beta)
### Nuevas funcionalidades
- Graphos: visualización interactiva de la red
- AINav (deshabilitado en móvil, requiere LLM)
- Encriptación E2E para chats / calendarios / mapas
- Cascada al borrar tribes
### Bugfixes
- Resolución de carreras en updates concurrentes
### Cambios visuales
- Tabla de peers mejorada
- Dashboard de estadísticas
[Descargar APK](oasis-v0.7.6-20260509-pruebas.apk)
Este markdown puede renderizarse a HTML con `pandoc` o
incluirse tal cual en una página estática.
SEGURIDAD DE LA SECCIÓN /testing-app
------------------------------------
- Considera proteger /testing-app con HTTP basic auth
para que solo beta-testers tengan acceso:
Caddyfile:
basicauth /testing-app/* {
tester $2a$14$<bcrypt-hash>
}
- O usar tokens en URL: /testing-app/{token}/latest.apk
- La APK lleva tu firma — cualquiera con ella puede
instalar. Si te preocupa el leak, mantén privado.
INTEGRACIÓN CON TELEGRAM
------------------------
Al final del builder, además de subir la APK al servidor:
bash oasis-notify-telegram.sh \
"Nueva APK lista para test: \
https://0asis.net/testing-app/oasis-v0.7.6-20260509-pruebas.apk \
[Cambios](https://0asis.net/testing-app/v0.7.6-changelog.html)"
Los beta-testers en el canal de Telegram reciben el aviso al
instante y pueden instalar sin abrir email ni nada.
MIGRACIÓN A "RELEASE OFICIAL"
-----------------------------
Cuando una versión beta pasa el período de prueba (ej: 1 semana
sin reportes), tú manualmente la copias a /release/:
cp /var/www/0asis.net/testing-app/oasis-v0.7.6-20260509-pruebas.apk
/var/www/0asis.net/release/oasis-v0.7.6.apk
ln -sf oasis-v0.7.6.apk /var/www/0asis.net/release/latest.apk
Y publicas en redes / Telegram canal release.
ARCHIVO DE BUILDS HISTÓRICAS
-----------------------------
Configura una limpieza para no llenar el disco:
/etc/cron.daily/oasis-cleanup:
find /var/www/0asis.net/testing-app -name "oasis-*.apk" \
-mtime +60 -delete
Mantiene los últimos 60 días de builds beta.