From 62b7c4903b25600859c6e2b532f00cb8c26fd419 Mon Sep 17 00:00:00 2001 From: Ark0N Date: Mon, 8 Jun 2026 06:04:17 +0200 Subject: [PATCH] docs(claude): note the gesture + multi-monitor button App-Settings toggles MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Document that both header features are now opt-in (default OFF) via App Settings → Display (Input / Header Displays), how each is gated (renderIndexHtml reveal + async settings read), and that the notification bell stays hidden. Co-Authored-By: Claude Opus 4.8 (1M context) --- CLAUDE.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CLAUDE.md b/CLAUDE.md index 56aa9fda..7a717a48 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -159,7 +159,9 @@ Frontend JS modules have `@fileoverview` with `@dependency`/`@loadorder` tags. L **Z-index layers**: subagent windows (1000), plan agents (1100), log viewers (2000), image popups (3000), local echo overlay (7). -**Multi-monitor button** (header, top-right; replaces the notification bell, which is hidden by default but still reachable via Settings → Notifications). `app.launchMultiMonitor()` (in `panels-ui.js`) POSTs `/api/system/span-displays`, which spawns `scripts/span-codeman.sh` — a fresh, maximized browser `--app` window sized to the union of all displays (macOS; needs "Displays have separate Spaces" OFF). Supports the gesture layer's in-page floating session panels dragging across the physical monitor seam. +**Multi-monitor button** (header, top-right; the notification bell it sits beside stays hidden — notifications live in Settings → Notifications). `app.launchMultiMonitor()` (in `panels-ui.js`) POSTs `/api/system/span-displays`, which spawns `scripts/span-codeman.sh` — a fresh, maximized browser `--app` window sized to the union of all displays (macOS; needs "Displays have separate Spaces" OFF). Supports the gesture layer's in-page floating session panels dragging across the physical monitor seam. **Opt-in:** hidden by default; enable under App Settings → Display → **Header Displays** ("Multi-monitor Button", `showMultiMonitorButton`). The button is `display:none` in the template; `renderIndexHtml` reveals it at render when the setting is on, and `applyHeaderVisibilitySettings()` toggles it live on save. + +**Gesture control** (the camera hand-tracking overlay) is **opt-in, default OFF**, under App Settings → Display → **Input** (`gestureControlEnabled`). `CODEMAN_GESTURE=1` makes the feature *available* on the instance (CSP widening + `/gesture/` assets) and sets `window.__codemanGestureAvailable` (the Input section only shows when set); the overlay bundle is injected by `renderIndexHtml` **only when the setting is enabled**, so that method is `async` and reads `settings.json` (`readSettings()`). Toggling the setting reloads the page (the bundle is render-injected). **Respawn presets**: `solo-work` (3s/60min), `subagent-workflow` (45s/240min), `team-lead` (90s/480min), `ralph-todo` (8s/480min), `overnight-autonomous` (10s/480min).