Commit graph

32 commits

Author SHA1 Message Date
SITO
3a3563f2a0 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>
2026-05-15 19:41:45 +02:00
SITO
13161b2158 feat(mobile): paginador CSS-only en agenda, logs, inhabitants,
trending, calendars, banking, blockchain

- Nuevo helper src/views/mobile_pager.js — renderMobilePager(opts)
  genera el paginador con radios + flechas + cells de 2 botones.
- activity_view: refactor para usar el helper.
- agenda_view, logs_view, inhabitants_view, trending_view,
  calendars_view, banking_views, blockchain_view: añaden el
  mobilePager y marcan el contenedor desktop con .actpager-desktop-only.
- mobile.css: .actpager-desktop-only se oculta en móvil junto al
  grid antiguo de activity.

modules_view (4 botones) y stats_view (3 modos) no necesitan
paginación: caben en una fila.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 01:35:37 +02:00
SITO
bb04d4cb64 fix(mobile): paginador compacto, solo flechas, sin bg cards
- Eliminado el contador "N / N" del activity_view, sólo flechas <
- mobile.css: rules display:none/flex para mostrar 1 celda activa
  (más fiable que translateX con flexbox y cells flex 0 0 100%)
- Override del background/border global de divs en theme dentro
  del actpager — ya no se ve cada div como tarjeta separada
- Tamaños reducidos: arrows 32x32, padding-cell 0, gap 40px

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 01:19:17 +02:00
SITO
c6acdbb692 feat(mobile): paginador CSS-only con flechas para activity filters
- activity_view.js: render adicional .actpager con N radios + cells
  (2 botones por celda) + arrow labels por página. Hidden inline en
  desktop (display:none).
- mobile.css: .activity-filter-grid display:none, .actpager block.
  Reglas .actpager-rN:checked ~ .actpager-frame ... aplican translateX
  por porcentaje y muestran solo el set de flechas correspondiente.
  18 páginas para 36 botones; reglas hasta página 30 por holgura.

CSS puro: sin JS, sin scroll del dedo, sin caché. Las flechas <
y > son labels que togglean radios escondidos via for=.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 01:01:49 +02:00
SITO
75bb97b204 fix(mobile): filtros con flex-wrap CSS puro, sin JS ni flechas
Vuelta al enfoque más simple:
- mobile.css: .activity-filter-grid, .mode-buttons y similares
  usan flex-wrap:wrap. Todos los botones visibles en varias filas,
  sin scroll del dedo, sin paginación.
- .activity-filter-col con display:contents para aplanar columnas.
- mobile-ui.js vaciado (no-op): ya no hace falta JS.
- main_views.js: quitada la inyección inline.

Razón: el JS no se ejecutaba en el WebView (cache + CSP) por
mucho que se intentaba. CSS puro es más simple y robusto.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 00:51:42 +02:00
SITO
79c58d7144 fix(csp): permitir scripts/estilos inline para que funcione mobile-ui
El CSP antes era 'script-src self http://localhost:3000/js' lo cual
bloqueaba el script inline que inyectamos para la paginación móvil
de mode-buttons. Esto explicaba por qué las flechas no aparecían
aunque la APK tuviera el código correcto.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 00:44:12 +02:00
SITO
64d3aeb0b1 fix(mobile): inyectar mobile-ui.js inline en cada página
El WebView de Android cacheaba el archivo /js/mobile-ui.js incluso
después de actualizar la APK, evitando que las flechas de paginación
aparecieran. Ahora el script se lee del filesystem y se inyecta como
<script> inline antes de </body>, eliminando cualquier caché.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 00:37:35 +02:00
SITO
10497a6307 fix(mobile): paginación 2-en-2 con flechas, sin scroll del dedo
- mobile-ui.js: el contenedor se mueve por translateX en pasos de
  ~2 botones en lugar de scrollLeft. Eliminado el botón "Ver todos".
- mobile.css: nuevo .mode-buttons-clip con overflow:hidden para
  bloquear el scroll por gesto. La fila usa width:max-content y
  transition en transform.
- Flechas más grandes (36x40, font 1.7rem) para que sean visibles
  y fáciles de pulsar.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 00:27:39 +02:00
SITO
25283c9b1a fix(mobile): mostrar flechas correctamente y scroll de 2 botones
- mobile.css: width:auto + min-width:0 en grid dentro del wrap para
  que las flechas no queden empujadas fuera del viewport
- mobile-ui.js: el step de scroll ahora se calcula dinámicamente
  como ~2 botones en lugar de 180px fijos

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 00:21:55 +02:00
SITO
e6601b19a9 fix(mobile): activity-filter-grid scrollable horizontal con flechas
- mobile.css: añadidas reglas para .activity-filter-grid en móvil
  (display:contents para activity-filter-col, flex row scrollable)
- mobile-ui.js: extendido selector para procesar también
  .activity-filter-grid con flechas y expand/collapse

Antes los 6 columnas de filtros se renderizaban como barras
naranjas verticales. Ahora se aplanan a una sola fila con
scroll horizontal y flechas < > para navegar.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 00:14:10 +02:00
SITO
9764a0c162 feat: merge oasis 0.7.5 upstream — tribes ACL, 4 new languages, model/view updates
Manual merge of epsylon/oasis 0.7.5 preserving our mobile-specific work:
- tribes_model: upstream ACL security (validMembershipDelta, structuralFieldsEqual)
  + our inviteLog feature re-applied in generateInvite/joinByInvite
- tribes_view: isSubEdit hides isAnonymous/isLARP when editing subtribes
- blockchain_view: new block types (calendarDate, calendarNote, padEntry, chatMessage),
  bd-type-* CSS classes replacing inline styles, encrypted payload filter
- style.css: removed old tribe-parent classes, added bd-type-* and stats utility classes
  (mobile.css/OasisMobile.css untouched — our mobile work)
- backend.js: calendarsModel/torrentsModel/mapsModel now receive tribeCrypto+tribesModel,
  moved after tribesModel init; ensureFollowTribeMembers call in /tribe/:tribeId route
- translations: updated de/en/es/eu/fr/it/pt + 4 new languages ar/hi/ru/zh
- models (safe copy): calendars, chats, maps, pads, parliament, torrents,
  tribe_crypto, tribes_content
- views (safe copy): chats, pads, torrents, stats
- package.json: bumped to 0.7.5

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 15:59:46 +02:00
SITO
bb2d7acfd9 fix: add game-assets, maptiles, mapcache static mounts + frame-src CSP
Without /game-assets mount the game iframes loaded 404.
Without /maptiles mount the map tiles didn't render.
frame-src 'self' CSP directive needed for iframe sandboxing.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-02 21:22:03 +02:00
SITO
56f091ac1e fix: add missing favorites kinds for new modules, remove duplicate maps dir
- media-favorites.js: added calendars, chats, maps, pads, shops, torrents
- removed src/maps/maps/ (duplicate of src/maps/tiles/, -42MB)
- all 8 new module routes now return 200

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-02 17:21:13 +02:00
SITO
07914c70d2 feat: bump version to 0.7.4 matching upstream
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-02 02:55:51 +02:00
SITO
d22cb9e81d feat: merge upstream style.css and finalize module integration
style.css updated to upstream (new shops/chats/pads/games/maps/
torrents/calendars/logs styles) with our QR, hamburger, sidebar-panel
and invite styles appended. config defaults include new modules.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-02 02:36:43 +02:00
SITO
6de67ba129 feat: integrate upstream modules (calendars, chats, games, logs, maps, pads, shops, torrents)
New views, models, routes for 8 new modules from latest upstream.
Updated existing views/models to upstream versions preserving all
local QR, hamburger menu, and mobile CSS modifications.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-02 00:52:18 +02:00
SITO
cb32d0b9ad feat: mobile mode-buttons scroll arrows and expand/collapse
Adds left/right arrow navigation to all .mode-buttons on mobile.
Sections with 7+ buttons (Activity, Stats, etc.) also get a
Ver todos / Ver menos toggle to expand the full grid.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-02 00:23:13 +02:00
SITO
1025f2789d feat: enable economy and media modules by default
Banking, market, jobs, projects, transfers, videos, docs, audios
now on by default so hamburger panel shows Economy/Media on fresh install.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-02 00:12:16 +02:00
SITO
18ed6a8e2e fix: center quick-link pills in mobile header; add APK repack docs
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-01 18:01:50 +02:00
SITO
12acd6fd20 feat: add QR share button to each pub row in invites view
- Import details, summary from hyperaxe
- renderPubTable converted to async, generates QR SVG per pub key
- Each row: details/summary collapsible QR panel below the key link
  (same pattern as profile and tribe invite QR, no JS required)
- All three renderPubTable calls updated with await
- QR falls back silently if key is missing or generation fails

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-01 02:33:02 +02:00
SITO
16f9189e61 fix: hamburger panel groups collapsed by default, styled as rounded buttons
- Remove force-expand CSS: groups now start collapsed (tap to open)
- .oasis-nav-header in panel: border-radius 12px, larger padding (11px 14px),
  bold font, no uppercase — looks like a proper tappable button
- Arrow rotates on expand (CSS accordion native behavior, no JS)
- Nav items indented with left border accent, 9px padding, 8px radius
- OasisMobile.css: #252500 background + FFD700 text for group buttons
- Separator line between sidebar-left and sidebar-right sections in panel
- Economy group absent: all economy modules (banking/market/jobs) are
  disabled in current config — this is expected behavior by design

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-01 02:29:02 +02:00
SITO
17de5109d7 feat: move quick links to header second row (inbox/PM/publish/search)
- panel-quicklinks div moved from sidebar-panel into the header,
  after top-bar-right, so it always visible on mobile without opening menu
- Displays as a horizontal scrollable pill-button strip below logo+hamburger
- header: flex-wrap:wrap so second row renders cleanly
- top-bar-left: flex:1 nowrap for logo+hamburger first row
- panel-quicklinks: flex:0 0 100% forces it to its own row, overflow-x:auto

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-01 02:24:59 +02:00
SITO
6f813b2230 fix: clean one-row mobile header, full nav panel with quick links
- Header mobile: single row — logo (flex:1) + hamburger only.
  Top-bar nav (inbox/PM/publish) and top-bar-right (tags/search) hidden.
- Add panel-quicklinks section at top of hamburger panel: Inbox, PM,
  Publicar, Búsqueda as pill buttons (accessible from panel, not header).
- sidebar-left and sidebar-right inside panel: no background/border,
  flat layout with only a separator line between sections.
- panel-quicklinks hidden on desktop (style.css), visible only in panel.
- OasisMobile.css: panel-quicklink theme colors added.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-01 02:22:07 +02:00
SITO
f7f541a451 fix: hamburger menu shows all nav tabs, header logo+hamburger on same row
- Wrap sidebar-left and sidebar-right in div.sidebar-panel so the
  hamburger panel shows ALL navigation (Personal, Content, Economy,
  Banking, Media, Network, etc.) — previously only sidebar-left was shown
- style.css: sidebar-panel uses display:contents on desktop so layout
  is preserved (left|main|right) via CSS order: 1/2/3
- mobile.css: sidebar-panel is the hidden/shown drawer instead of sidebar-left
- Header layout: logo (flex:1) + hamburger share row 1, nav links
  (inbox/PM/publish) wrap to row 2, top-bar-right (tags/search) row 3
- Nav groups auto-expand when panel opens (selector updated to sidebar-panel)
- OasisMobile.css: panel background selector updated

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-01 02:19:33 +02:00
SITO
0edf37594f fix: mobile audit — expand nav groups, responsive tables/videos/layout
- Force all .oasis-nav-list groups open when hamburger panel is visible
  so user can see all nav options without tapping each group header
- Add responsive rules for video/iframe (max-width: 100%)
- Override fixed px widths (640, 800) from hardcoded video players
- Add overflow-x: auto to info tables (block-info-table, bank-info-table, etc.)
- Fix cell word-break in info tables to prevent overflow
- Make pre/code blocks scroll horizontally instead of breaking layout
- Fix modules_view.js: replace flex-wrap:nowrap with mode-buttons class

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-01 02:10:46 +02:00
SITO
e1df914590 feat: collapsible hamburger menu for mobile — pure CSS, no JS
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-01 02:02:43 +02:00
SITO
82162830ec fix: increase header logo size and reduce nav link spacing
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-01 01:50:36 +02:00
SITO
dad3871c65 feat: add QR share button to profile and fix mobile header layout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-01 01:48:13 +02:00
SITO
9ee8fd60cd fix: flatten filter buttons layout for mobile in activity, stats and trending
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-01 01:43:26 +02:00
SITO
b48944ef57 feat: mobile visual improvements and CSS cleanup
main_views: viewport-fit=cover for notch/home-indicator support
OasisMobile.css: remove full mobile.css duplicate, fix aggressive div border/bg selector,
  add :active feedback on buttons/links, fix user-link overflow with ellipsis,
  QR colors adapted to dark theme
mobile.css: complete rewrite -
  safe-area-inset padding for notch phones
  filter buttons as horizontal scroll row (no more tall vertical stacks)
  inhabitant photos circular with object-fit cover
  post images max-height 60vh to avoid full-screen takeover
  invite-log table horizontal scroll on mobile
  QR lightbox overlay (CSS-only, no JS)
  font-size 14px base (more readable on small screens)
  :active touch feedback on all interactive elements
style.css: circular profile photos, max-height post images, button transitions,
  invite-page centered layout, user-id-qr alignment

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 01:08:05 +02:00
SITO
0fc10be24c feat: invite trazability via inviteLog and pub-invite SSB events
tribes_model: generateInvite() stores inviteLog[] entry {code, generatedBy, generatedAt, status}
              joinByInvite() updates inviteLog entry with {usedBy, usedAt, status:'used'}
main_models:  acceptInvite() publishes type:'pub-invite' SSB message after handshake
              records pubHost, pubKey, acceptedAt - first audit trail for pub invites
blockchain_model: adds 'invites' filter showing pub-invite blocks and tribes with inviteLog
blockchain_view:  renders inviteLog table on tribe blocks, renders pub-invite block details
                  adds 'invites' filter button to blockexplorer UI

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 00:58:05 +02:00
SITO
54ad8a12fc feat: add QR codes for tribe invites, pub invites and user profile sharing
- tribes_view: renderInvitePage now shows QR of the invite code
- invites_view: snhInvite box shows QR of pub invite code
- inhabitants_view: user profile shows QR of SSB ID (own card + profile view)
- style.css: add QR code styles

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 02:46:48 +02:00