Commit graph

18 commits

Author SHA1 Message Date
oasis-bot
0baf85faa9 skins: elegir el aspecto en el movil con tarjetas de un toque
En Ajustes del movil, Tema y Flujos de trabajo dejan de ser desplegables:
cada skin es una tarjeta con su miniatura y cada workflow un boton grande,
y se aplican al tocarlos. Solo se ofrecen los skins que tienen maqueta de
movil (Acampada y Oasis Mobile); el servidor rechaza un tema de escritorio,
que dejaba la app sin maqueta. La bienvenida tambien ofrece elegir skin.

Aplicar un workflow ya no cambia el skin: se queda el que haya elegido cada
cual.

OasisMobile.css se carga con su propio <link> versionado antes de
Acampada.css, en vez de con @import: el @import sin ?v= se quedaba en la
cache del WebView y tras actualizar se veia la maqueta vieja.
2026-10-19 02:17:12 +02:00
oasis-bot
5f5c1d6d0a interfaz: filtros en fichas y tarjetas sin cajas de mas
- Los filtros de chats, feed, foros, pads... heredaban el estilo de boton
  grande (48px, ancho completo): en el foro las categorias llenaban la
  pantalla. Ahora van en fila como los de Actividad; Crear sigue grande.
- La regla de tarjetas ([class*=-card]) pillaba tambien -card-header y
  -card-hero-image, que salian como cajas con fondo y borde. Se limita a
  las clases acabadas en -card.
- Acciones de la tarjeta (borrar, fijar, enlace, abrir) en una sola fila
  de iconos redondos; '.main-column form' las ponia a ancho completo.
- Se ocultan las cajas de filtros vacias del foro.
2026-10-19 00:44:06 +02:00
oasis-bot
948b6460d9 upstream: integrar Oasis 1.3.3
Diferencia 1.3.1 -> 1.3.3 del codigo de la APK oficial aplicada a tres
bandas encima de la rama: karma en el perfil, salas con directo, fotos
selladas, visibilidad de menciones, telefono por stream en Android y
las traducciones nuevas. Sin dependencias nuevas.

OasisMobile.css sigue siendo el del fork; del oficial solo se traen al
final las reglas de las piezas nuevas (karma, directo a pantalla
completa, salas en vivo, graphos).
2026-10-19 00:30:25 +02:00
oasis-bot
ab9bfab09a activistas: workflow por defecto, lanzador compacto y barra de 4 atajos
Con el workflow activistas caben todos los modulos en una pantalla: se
quitan el filtro Personal/Social y los accesos de usuario avanzado
(menciones, habitantes, perfil, CV, estadisticas, blockexplorer,
modulos). Peers y la edicion de la barra pasan a Herramientas; la barra
inferior se queda en los 4 atajos. La config de serie arranca ya con
los modulos de activistas.
2026-10-18 23:54:54 +02:00
oasis-bot
5a04113330 interfaz: lanzador de modulos en lugar de los hexagonos
La portada ordena los modulos por secciones en una rejilla de iconos, como el
cajon de apps del movil. Solo salen los modulos activos y las secciones que
tienen alguno; Personal y Social de la topbar parten el lanzador en dos.

Fuera los enlaces que ya no existen en 1.3.1 (/legacy, /public/latest/*) y
dentro los modulos nuevos: wiki, rooms, emergencias, mailing, campanas...

1.3.1 trae en mobile.css su propio chrome movil (cabecera fija y cajones); se
apaga desde el tema para que no se monte encima del de la rama.
2026-10-18 02:52:17 +02:00
s1to
2c2c8f241d [0.9.1] FORK_IA_UX: review pass — remove dead code + Karvan security hardening
Dead code (from the abandoned thumb-zone/Explore-sheet nav experiment):
- OasisMobile.css: removed ~90 lines of orphaned CSS (.oasis-bottombar-fork/.bb-fab-*,
  .hive-sheet*/.fork-sheet*/.hsq-*, .omt-spacer, .hive-sheet-seg/.hs-seg, dead
  .oasis-bottombar-fixed) — no element emits any of them.
- main_views.js: removed renderHiveSheet() (never called; sole emitter of that CSS).
- karvan_view.js: dropped dead export karvanShortId + unused karvanView param.
- Added a style for .karvan-msg-live (client emitted it with no rule).

Karvan security (from the review):
- GET /karvan/:id only adopts a mirror room on a real navigation (sec-fetch-dest
  document / Accept text/html), not on <img>/subresources → fixes a CSRF that could
  spam/evict the user's ephemeral rooms.
- Cap room.members at 50 (was unbounded; each poll echoed it back).
- Reject signal payloads >16KB (SDP/ICE are tiny) — anti memory-DoS.
- karvan.js: guard malformed {kind:desc} signals so one bad signal can't abort a poll batch.
Tests: 15/15 (added members-cap + oversized-payload). Verified: CSRF fix (nav=200,
subresource=302), pages unchanged after CSS removal, boot clean.
2026-08-07 20:42:53 +02:00
s1to
af160dbd26 [0.9.1] FORK_IA_UX: Fase 2 (invite) — invite a contact to a Karvan room by feed id over SSB
Reuses Oasis's own private-message invite pattern (like the industry module:
pmModel.sendMessage([feed], 'KARVAN_INVITE', '... -> /karvan/<id>')), so the invite
lands in the contact's inbox with a link — no new SSB code, no touching the SSB
startup. Joining a room by link adopts a local mirror (karvanModel.adoptRoom, the
id is the capability). Real-time cross-device signaling (media/text sync between
the two mirrors) is the remaining Fase 2 piece (muxrpc ephemeral), deferred.
Verified single-node: invite publishes to the inbox, validation, adopt, form; 13/13
model tests (added adoptRoom).
2026-08-07 20:27:45 +02:00
s1to
e2598ab747 [0.9.1] FORK_IA_UX v7: Karvan calls Fase 1 — video/mic UI + media over the existing WebRTC
Adds a call panel to the Karvan room (local video + remote gallery + call/mic/cam/hang-up
buttons) and grafts getUserMedia + addTrack + ontrack onto the peer connections we already
use for the text data-channel (perfect negotiation handles the renegotiation). No backend,
no new !important. Verified: getUserMedia path attaches audio+video tracks to the local
video and activates the panel (chromium fake device). getUserMedia will fail gracefully on
the current wrapper (no camera/mic permission) with a clear message — the chat keeps working.
Fases 2 (SSB cross-device signaling) and 3 (wrapper permissions) pending.
2026-08-07 19:44:37 +02:00
s1to
634625d134 [0.9.1] FORK_IA_UX v5: drop 29 !important by replacing the CSS (no visual change)
Per feedback (avoid !important, substitute the CSS). Verified with computed-style
diffs on the real forum/chat DOM — layout is byte-identical.
- OasisMobile.css: 45 -> 23 !important. Removed the ones that only fought epsylon's
  NARROW rules; win by load-order/specificity instead (e.g. .forum-score-box
  .forum-score-form, .main-column .new-message-form). Kept the truly load-bearing
  ones (inline-style overrides [style*=...], round buttons vs the broad
  button{min-height:44px!important}, and comment-body-row vs mobile.css:164).
- mobile.css (FORK ONLY, user-authorized): removed !important from 7 narrow
  forum/chat rules (.forum-comment margin/padding, .comment-body-row flex-dir,
  .comment-vote/text-col width, .forum-score-* flex, .comment-textarea width) so
  our theme wins without !important. Not touched on UX_OASIS.
2026-08-06 17:27:43 +02:00
s1to
b31b8cbfbd [0.9.1] FORK_IA_UX v4: restore the customizable bottom bar (pins + edit pencil + fixed Peers/Invites), drop the + FAB
Per feedback: bring the bottom bar back to the design that was liked several
versions ago — user-pinned modules, an edit pencil to /settings/bottombar, and a
fixed Peers/Invites pair on the right. The central + FAB is removed. The hive
returns to the header (top) so Personal/Community filter the visible hexagons; the
Explore bottom-sheet is retired. Karvan module kept.
2026-08-06 16:55:40 +02:00
s1to
e938c8bb42 [0.9.1] FORK_IA_UX v2: fix top-bar (visibility sheet) + Karvan module (ephemeral messages + WebRTC)
Navigation fixes:
- The bottom "Explore" sheet no longer blocks the top bar: closed state is
  visibility:hidden (out of hit-testing), so the top identity buttons and page
  content always receive taps (fixes "top buttons don't work").
- Top bar is now identity only (logo, avatar). The Personal/Community filter
  moved into the Explore sheet, next to the hive, as a segmented control.

New module "Karvan" (self-contained; inspired by karvan-protocol ephemeral rooms):
- Ephemeral/temporary chat rooms held only in RAM, self-destructing on idle
  (30 min) / absolute (2 h) TTL — nothing is written to disk.
- Server relay chat (RAM + polling) as the reliable path, plus a WebRTC
  data-channel layer (perfect negotiation, HTTP signaling mailbox) for instant
  P2P delivery; degrades to the relay if WebRTC is unavailable. Data-channel
  only (no camera/mic) so no wrapper permission changes are needed.
- Files: models/karvan_model.js, views/karvan_view.js, client/public/js/karvan.js;
  routes /karvan* + karvanMod config + nav entry (network) + karvanTitle i18n (11 langs).

Additive and gated by OASIS_MOBILE / karvanMod; Linux and the UX_OASIS branch untouched.
2026-08-06 16:38:36 +02:00
s1to
745c340917 [0.9.1] FORK_IA_UX: thumb-zone navigation — hive bottom-sheet + publish FAB + reordered bar
Mobile-usability experiment grounded in real studies (Hoober 2013,
Bergstrom-Lehtovirta CHI 2011, Parhi 2006 target size, NN/g 2016 visible nav):
- The hive (categories + modules) opens from the bottom bar as a thumb-reachable
  bottom-sheet (checkbox-hack, no JS), freeing the top for content.
- Bottom bar reordered: Explore, PM, (+) publish FAB, Search, Inbox; the central
  FAB is the distinct, elevated primary action.
- Network/status quick row (Peers, Graphos, Inbox, Settings) inside the sheet.
- Tap targets >=48px. Additive and gated by OASIS_MOBILE (Linux untouched).
2026-08-06 12:00:18 +02:00
s1to
ed9f01e8e6 [0.9.1] Mobile: fixed topbar, global hive, per-message chat reply/switcher, forum subtopics, square module grid
- Topbar: single fixed line [logo][Personal][Community][avatar] in one dark
  tone (#121212) with gold accents only; the hive hexagons scroll below it.
- Hive: Personal/Community filter the home hive from any page; opening a
  category shows its modules as a 2x2 grid of square buttons (a lone odd
  button is centered instead of left-aligned).
- Chats: per-message reply (?replyTo=), chat switcher strip and quote banner;
  the message rate limit is lifted on mobile.
- Forums: optional subtopics (?topic=) with threaded rendering.
- Bottombar: fixed Inbox - PM - Write - Search - Graphos - Peers.
2026-08-05 23:36:18 +02:00
s1to
2b2c65fc7a [0.9.1] Mobile: Signal-style chats + compact threaded forums + circular reply
- Chats/PM: message bubbles (own messages right with accent, others left),
  compact meta, all via the existing .chat-message-self hooks — no view changes.
- Forums: shrink the oversized vote widget to a small horizontal bar, flatten
  the nested boxes into one clean comment block, indent replies by depth so
  threads read as threads, tone down the highlighted-reply frame.
- Reply/compose: Signal-style row — a growing text box plus a round send
  button with a ↩ / ➤ glyph (CSS ::before), instead of the full-width bar.
- All in the OasisMobile theme (loads after mobile.css so it wins by cascade);
  where epsylon forces !important on the forum layout we match it, scoped to
  the forum/chat widgets. No client JS, no changes to any feature view.
2026-08-04 14:02:12 +02:00
s1to
7f85389a88 [0.9.1] Mobile: Personal/Community filter the home hive from any page
- Turn the header Personal/Community tabs into links to
  /activity?hive=personal|community, so they work on every page (they take
  you to the home and filter the hexagons), not only while already on
  /activity — no more dead buttons off the home.
- Drop the "All" tab: entering shows all 10 categories; clicking a filter
  that is already active toggles it off and shows all again.
- Filter the hive server-side (renderHiveNav reads the request filter set
  by the middleware) instead of the CSS radio-hack, and drop the now-dead
  half-filter CSS. Active tab is highlighted via the .active class.
2026-08-04 11:46:19 +02:00
s1to
c088d176c1 [0.9.1] Mobile usability: filter hexagons by tab, collapse activity filters
- Personal/Community/All header tabs now filter the home hexagon nav (default
  All shows the 10; Personal/Community show their 5) via the CSS radio-hack.
  Removed the square-accordion sidebars (.sidebar-left/.sidebar-right) they
  replaced.
- Wrap the dense activity filter strip (RECENT/ALL/MINE/…) in a collapsible
  FILTER dropdown, hidden by default, keeping the hexagons visible above.
- Add the missing English i18n keys (menuCommunity, menuAll, filter, bb*).
2026-08-04 11:07:48 +02:00
s1to
0d26562450 [0.9.0] Fold the mobile UX theme into OasisMobile.css (no separate file)
Move the theme content into epsylon's existing OasisMobile.css and drop
the separate OasisMobileUX.css, so there is no new theme file: his mobile
theme just carries the UX styles now. Set themes.current back to
OasisMobile. Same visual result; on mobile builds the theme still loads
after mobile.css so it wins by cascade without !important.
2026-08-01 21:02:02 +02:00
s1to
e563b86ede Oasis 0.8.7 mobile (nodejs-project baseline) 2026-07-09 09:56:30 +02:00