[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.
This commit is contained in:
s1to 2026-08-06 16:38:36 +02:00
parent 745c340917
commit e938c8bb42
19 changed files with 592 additions and 8 deletions

View file

@ -3511,6 +3511,7 @@ module.exports = {
modulesMapLabel: "خرائط",
modulesMapDescription: "وحدة لإدارة ومشاركة الخرائط غير المتصلة.",
padsTitle: "الوسادات",
karvanTitle: "Karvan",
padTitle: "وسادة",
modulesPadsLabel: "الوسادات",
modulesPadsDescription: "وحدة لإدارة محررات النصوص التعاونية.",

View file

@ -3509,6 +3509,7 @@ module.exports = {
modulesMapLabel: "Karten",
modulesMapDescription: "Modul zum Verwalten und Teilen von Offline-Karten.",
padsTitle: "Pads",
karvanTitle: "Karvan",
padTitle: "Pad",
modulesPadsLabel: "Pads",
modulesPadsDescription: "Modul zur Verwaltung kollaborativer Texteditoren.",

View file

@ -3794,6 +3794,7 @@ module.exports = {
modulesMapLabel: "Maps",
modulesMapDescription: "Module to manage and share offline maps.",
padsTitle: "Pads",
karvanTitle: "Karvan",
padTitle: "Pad",
modulesPadsLabel: "Pads",
modulesPadsDescription: "Module to manage collaborative text editors.",

View file

@ -3511,6 +3511,7 @@ module.exports = {
modulesMapLabel: "Mapas",
modulesMapDescription: "Módulo para gestionar y compartir mapas offline.",
padsTitle: "Pads",
karvanTitle: "Karvan",
padTitle: "Pad",
modulesPadsLabel: "Pads",
modulesPadsDescription: "Módulo para gestionar editores de texto colaborativos.",

View file

@ -3507,6 +3507,7 @@ module.exports = {
modulesMapLabel: "Mapak",
modulesMapDescription: "Lineaz kanpoko mapak kudeatzeko eta partekatzeko modulua.",
padsTitle: "Padak",
karvanTitle: "Karvan",
padTitle: "Pad",
modulesPadsLabel: "Padak",
modulesPadsDescription: "Testu editoreak lankidetzan kudeatzeko modulua.",

View file

@ -3501,6 +3501,7 @@ module.exports = {
modulesMapLabel: "Cartes",
modulesMapDescription: "Module pour gérer et partager des cartes hors ligne.",
padsTitle: "Pads",
karvanTitle: "Karvan",
padTitle: "Pad",
modulesPadsLabel: "Pads",
modulesPadsDescription: "Module pour gérer les éditeurs de texte collaboratifs.",

View file

@ -3511,6 +3511,7 @@ module.exports = {
modulesMapLabel: "मानचित्र",
modulesMapDescription: "ऑफ़लाइन मानचित्रों को प्रबंधित और साझा करने का मॉड्यूल।",
padsTitle: "पैड्स",
karvanTitle: "Karvan",
padTitle: "पैड",
modulesPadsLabel: "पैड्स",
modulesPadsDescription: "सहयोगी पाठ संपादकों को प्रबंधित करने का मॉड्यूल।",

View file

@ -3510,6 +3510,7 @@ module.exports = {
modulesMapLabel: "Mappe",
modulesMapDescription: "Modulo per gestire e condividere mappe offline.",
padsTitle: "Pad",
karvanTitle: "Karvan",
padTitle: "Pad",
modulesPadsLabel: "Pad",
modulesPadsDescription: "Modulo per gestire editor di testo collaborativi.",

View file

@ -3510,6 +3510,7 @@ module.exports = {
modulesMapLabel: "Mapas",
modulesMapDescription: "Módulo para gerenciar e compartilhar mapas offline.",
padsTitle: "Pads",
karvanTitle: "Karvan",
padTitle: "Pad",
modulesPadsLabel: "Pads",
modulesPadsDescription: "Módulo para gerir editores de texto colaborativos.",

View file

@ -3511,6 +3511,7 @@ module.exports = {
modulesMapLabel: "Карты",
modulesMapDescription: "Модуль для управления и обмена офлайн-картами.",
padsTitle: "Пады",
karvanTitle: "Karvan",
padTitle: "Пад",
modulesPadsLabel: "Пады",
modulesPadsDescription: "Модуль для управления совместными текстовыми редакторами.",

View file

@ -3512,6 +3512,7 @@ module.exports = {
modulesMapLabel: "地图",
modulesMapDescription: "管理和分享离线地图的模块。",
padsTitle: "协作板",
karvanTitle: "Karvan",
padTitle: "协作板",
modulesPadsLabel: "协作板",
modulesPadsDescription: "管理协作文本编辑器的模块。",