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:
parent
13161b2158
commit
3a3563f2a0
84 changed files with 5842 additions and 1621 deletions
162
AUTOMATIZACION/07_HUMAN_IN_THE_LOOP.txt
Normal file
162
AUTOMATIZACION/07_HUMAN_IN_THE_LOOP.txt
Normal file
|
|
@ -0,0 +1,162 @@
|
|||
===============================================================
|
||||
HUMAN-IN-THE-LOOP — Lo que NO puede automatizarse 100%
|
||||
===============================================================
|
||||
|
||||
POR QUÉ NO ES VIABLE EL FULL-AUTO
|
||||
---------------------------------
|
||||
Hay archivos donde el upstream y nuestro fork divergen
|
||||
intencionadamente. Aplicar automáticamente el upstream
|
||||
ROMPERÍA nuestra app móvil.
|
||||
|
||||
Estos archivos SIEMPRE requieren revisión humana antes de
|
||||
aplicar cualquier cambio.
|
||||
|
||||
|
||||
LISTA DE ARCHIVOS "PROHIBIDOS" PARA AUTO-MERGE
|
||||
----------------------------------------------
|
||||
|
||||
src/client/assets/themes/OasisMobile.css
|
||||
Razón: Es nuestro tema de móvil, escrito desde cero.
|
||||
El upstream lo trata como tema de escritorio.
|
||||
Aplicar el de upstream rompería: hamburger nav, QR
|
||||
lightbox, panel-quicklinks, sidebar-panel drawer.
|
||||
|
||||
src/client/assets/styles/mobile.css
|
||||
Razón: 100% nuestro. Contiene el paginador actpager,
|
||||
safe-area iOS, header móvil de 1-fila + 2-fila, todo
|
||||
el sistema mobile.
|
||||
|
||||
src/client/public/js/mobile-ui.js
|
||||
Razón: Ya no se usa (paginador pasó a CSS-only) pero
|
||||
si upstream añade un mobile-ui.js distinto, NO copiar.
|
||||
|
||||
src/views/mobile_pager.js
|
||||
Razón: Helper nuestro, no existe en upstream.
|
||||
|
||||
src/views/main_views.js
|
||||
Razón: Contiene nuestro menú hamburger CSS-only,
|
||||
sidebar-panel drawer, panel-quicklinks. El upstream
|
||||
no tiene esto. Aplicar pisaría todo nuestro layout.
|
||||
|
||||
EXCEPCIÓN: Si solo cambian textos / strings i18n,
|
||||
se puede hacer merge cuidadoso. Pero requiere mirada.
|
||||
|
||||
src/views/inhabitants_view.js
|
||||
Razón: Tiene nuestros QR codes integrados (qr-share
|
||||
con <details>/<summary>). El upstream no.
|
||||
Hay que merge manual preservando los QR.
|
||||
|
||||
src/views/invites_view.js
|
||||
Razón: Tiene nuestros QR por cada pub + IIFE async
|
||||
+ inviteLog renderInviteExtra.
|
||||
|
||||
src/views/tribes_view.js
|
||||
Razón: QR de tribe invite + nuestros campos del form
|
||||
(isAnonymous, isLARP, isSubEdit).
|
||||
|
||||
src/models/tribes_model.js
|
||||
Razón: Tiene NUESTRO inviteLog (generateInvite +
|
||||
joinByInvite). El upstream no. Si copiamos, perdemos
|
||||
la trazabilidad de invites.
|
||||
|
||||
src/models/main_models.js
|
||||
Razón: Publica SSB msg type:'pub-invite' al aceptar
|
||||
pub invite. Es nuestro.
|
||||
|
||||
src/backend/backend.js
|
||||
Razón: Tiene rutas custom (POST /settings/invite/accept,
|
||||
nuestro orden de constructores). Cualquier cambio
|
||||
upstream debe integrarse manualmente.
|
||||
|
||||
src/configs/config-manager.js
|
||||
Razón: Defaults modificados (wish, pmVisibility,
|
||||
economy modules on, etc).
|
||||
|
||||
src/server/package.json
|
||||
Razón: NO añadir las deps nuevas del upstream:
|
||||
- @xenova/transformers (60MB+)
|
||||
- node-llama-cpp (no funciona arm64 mobile)
|
||||
- pdfjs-dist (pendiente probar, anotar para luego)
|
||||
|
||||
src/client/middleware.js
|
||||
Razón: Tiene 'unsafe-inline' en CSP necesario para
|
||||
nosotros + mounts /game-assets /maptiles /mapcache
|
||||
custom + frame-src 'self'.
|
||||
|
||||
|
||||
LISTA DE ARCHIVOS "SAFE" PARA AUTO-MERGE
|
||||
----------------------------------------
|
||||
|
||||
src/client/assets/translations/*.js
|
||||
Las traducciones son aditivas. Pueden copiarse al
|
||||
100% del upstream sin riesgo.
|
||||
|
||||
src/client/assets/themes/Clear-SNH.css
|
||||
src/client/assets/themes/Dark-SNH.css
|
||||
src/client/assets/themes/Matrix-SNH.css
|
||||
src/client/assets/themes/Purple-SNH.css
|
||||
Temas de escritorio, no afectan a móvil.
|
||||
|
||||
src/views/*_view.js (NUEVOS)
|
||||
Si el archivo no existe en nuestro fork, copia auto.
|
||||
Ej: graphos_view.js, markdown.js.
|
||||
|
||||
src/views/peers_view.js
|
||||
src/views/stats_view.js
|
||||
src/views/courts_view.js
|
||||
src/views/parliament_view.js
|
||||
Vistas que no tienen nuestros customizations, safe
|
||||
para refresh completo.
|
||||
|
||||
src/models/*.js (NUEVOS)
|
||||
Si es un modelo nuevo, copia auto.
|
||||
|
||||
docs/CHANGELOG.md
|
||||
Copia auto, solo es informativo.
|
||||
|
||||
|
||||
SEÑALES DE ALARMA QUE EL AGENTE DEBE DETECTAR
|
||||
---------------------------------------------
|
||||
|
||||
Si el scout detecta cualquiera de estos patrones en el
|
||||
diff, debe marcar la sync entera como "needs human":
|
||||
|
||||
- Cambios en mobile.css / OasisMobile.css del upstream
|
||||
(no debería pasar, pero si pasa, alguien añadió tema
|
||||
móvil al upstream y hay que decidir qué hacer)
|
||||
|
||||
- Nuevas dependencias en server/package.json que no
|
||||
están en una whitelist conocida
|
||||
|
||||
- Cambios en CSP de middleware.js que reduzcan permisos
|
||||
|
||||
- Cambios en SSB_server.js que afecten al modo public
|
||||
de nuestro APK
|
||||
|
||||
- Cambios en blobHandler.js (lo modificamos a veces)
|
||||
|
||||
|
||||
DECISIÓN POR DEFECTO
|
||||
--------------------
|
||||
Cuando el scout no puede decidir con seguridad:
|
||||
|
||||
"Si tengo duda, marcar como REVIEW. Es preferible que
|
||||
el humano apruebe cinco minutos a romper la APK."
|
||||
|
||||
|
||||
PROCESO DE REVISIÓN HUMANA (5 min lunes mañana)
|
||||
------------------------------------------------
|
||||
1. Abrir scout.md generado el lunes 03:00
|
||||
2. Lectura rápida de la lista SAFE (debe verse razonable)
|
||||
3. Lectura cuidadosa de la lista REVIEW
|
||||
4. Si todo OK: curl POST /api/approve o nada (auto-approve)
|
||||
5. Si algo no OK: ejecutar manualmente claude con prompt
|
||||
específico para ese conflicto
|
||||
6. El builder corre solo a las 05:00
|
||||
|
||||
|
||||
REGLA DE ORO
|
||||
------------
|
||||
NUNCA bajar AUTO_APPROVE_THRESHOLD por debajo de 0.5.
|
||||
Mejor perder 5 min revisando que perder 2 horas
|
||||
reconstruyendo la APK porque un cambio rompió algo.
|
||||
Loading…
Add table
Add a link
Reference in a new issue