From 786498a57a2fd5935597ab59f792d0a529064220 Mon Sep 17 00:00:00 2001 From: archipelago Date: Mon, 15 Jun 2026 09:32:04 -0400 Subject: [PATCH] fix(kiosk): remove kiosk launcher grid, show normal app on the display MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The kiosk attached-display showed a separate app-tile launcher grid (Kiosk.vue at /kiosk) instead of the normal onboarding/login/dashboard. The grid is auth-gated, so it only surfaced once the kiosk browser held a persisted session; otherwise it bounced to login — masking the issue. Remove the grid entirely. /kiosk now just persists kiosk mode + safe-area insets and redirects to the root app. The launcher keeps pointing at /kiosk (not directly at /) so the 'kiosk' localStorage flag is still set — App.vue uses it to skip the remote relay, which would otherwise double xdotool input on the kiosk display. Route made public so the auth guard doesn't bounce it before the redirect runs. Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 6 + neode-ui/src/router/index.ts | 14 +- neode-ui/src/style.css | 1 - neode-ui/src/views/Kiosk.vue | 286 ------------------ .../src/views/settings/AccountInfoSection.vue | 12 + 5 files changed, 29 insertions(+), 290 deletions(-) delete mode 100644 neode-ui/src/views/Kiosk.vue diff --git a/CHANGELOG.md b/CHANGELOG.md index 71544142..042cc290 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## v1.7.96-alpha (2026-06-15) + +- The screen attached to your node now shows the normal Archipelago interface and your dashboard after you sign in, instead of a separate, stripped-down grid of app icons that could appear in its place. That extra screen has been removed so the attached display matches what you see everywhere else. +- On a brand-new node, the attached screen now walks through the same welcome and setup steps you'd see on a phone or laptop, and shows the normal sign-in screen once the node is set up — so the on-device display always matches the rest of the interface. +- Behind the scenes, a new automated two-node test now exercises real node-to-node features — browsing another node's shared files and handling a removed node — against live nodes before each release, so node-to-node problems are caught earlier. + ## v1.7.95-alpha (2026-06-15) - Browsing another node's shared files now works over the fast encrypted mesh. Opening a peer's cloud could fail with a generic "Operation failed" message because the request for their file list wasn't permitted over the mesh and came back as "not found" — and it never retried over Tor. The mesh now serves the file list directly, and if a peer can't answer over the mesh the node automatically falls back to Tor instead of giving up. diff --git a/neode-ui/src/router/index.ts b/neode-ui/src/router/index.ts index 6ad001e6..bc7bf681 100644 --- a/neode-ui/src/router/index.ts +++ b/neode-ui/src/router/index.ts @@ -84,12 +84,18 @@ const router = createRouter({ meta: { public: true }, }, { + // The kiosk display no longer has its own launcher screen. It runs the + // normal app (onboarding → login → dashboard) like any other client. + // This route only persists kiosk mode + safe-area insets, then redirects + // to the root app. The launcher still points Chromium here (not directly + // at `/`) so the 'kiosk' flag gets set — App.vue uses it to skip the + // remote relay, which would otherwise double xdotool input on the kiosk + // display. Public so the auth guard doesn't bounce us before beforeEnter. path: '/kiosk', name: 'kiosk', - component: () => import('../views/Kiosk.vue'), + meta: { public: true }, + component: () => import('../views/RootRedirect.vue'), beforeEnter: (to) => { - // Persist kiosk mode before redirect so App.vue can skip the remote relay - // (relay duplicates xdotool input on the kiosk display) localStorage.setItem('kiosk', 'true') const safeArea = to.query.safe_area const safeAreaPx = Array.isArray(safeArea) ? safeArea[0] : safeArea @@ -106,6 +112,8 @@ const router = createRouter({ if (safeAreaYPx && /^\d{1,3}$/.test(safeAreaYPx)) { localStorage.setItem('archipelago_kiosk_safe_area_y_px', safeAreaYPx) } + // Grid screen removed — hand off to the normal app flow. + return { path: '/' } }, }, { diff --git a/neode-ui/src/style.css b/neode-ui/src/style.css index 412ecf7d..fbc1d738 100644 --- a/neode-ui/src/style.css +++ b/neode-ui/src/style.css @@ -62,7 +62,6 @@ .glass-card:focus-visible, .sidebar-nav-item:focus-visible, .path-option-card:focus-visible, -.kiosk-app-tile:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { diff --git a/neode-ui/src/views/Kiosk.vue b/neode-ui/src/views/Kiosk.vue deleted file mode 100644 index ada7fa81..00000000 --- a/neode-ui/src/views/Kiosk.vue +++ /dev/null @@ -1,286 +0,0 @@ - - - - - diff --git a/neode-ui/src/views/settings/AccountInfoSection.vue b/neode-ui/src/views/settings/AccountInfoSection.vue index 16eade29..185ef749 100644 --- a/neode-ui/src/views/settings/AccountInfoSection.vue +++ b/neode-ui/src/views/settings/AccountInfoSection.vue @@ -188,6 +188,18 @@ init()
+ +
+
+ v1.7.96-alpha + June 15, 2026 +
+
+

The screen attached to your node now shows the normal Archipelago interface and your dashboard after you sign in, instead of a separate, stripped-down grid of app icons that could appear in its place. That extra screen has been removed so the attached display matches what you see everywhere else.

+

On a brand-new node, the attached screen now walks through the same welcome and setup steps you'd see on a phone or laptop, and shows the normal sign-in screen once the node is set up — so the on-device display always matches the rest of the interface.

+

Behind the scenes, a new automated two-node test now exercises real node-to-node features — browsing another node's shared files and handling a removed node — against live nodes before each release, so node-to-node problems are caught earlier.

+
+