From b8cb4670ddecdb95d0da7d192ceb1f3484269a70 Mon Sep 17 00:00:00 2001 From: arkon Date: Wed, 10 Jun 2026 21:37:44 +0200 Subject: [PATCH] fix(mobile,respawn-ui): unbury the session-options modal on phones; regroup the Respawn tab MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mobile fixes (user-reported: stuck in Session Options with no way to close): - Modals now stack at z-index 1300, above the fixed mobile/tablet header (z-index 1200) that was burying the modal header and its close button — the full-screen modal was undismissable on phones - Duration presets collapse to one compact 24px row (was a 3-row grid) - Hide the tab detach (open-in-new-window) button on viewports <=768px Respawn tab regrouped so its two features read as separate options: - New green-tinted "Respawn loop" box wraps duration, presets, cycle steps, and the status/Enable row — a visual sibling of the blue auto-resume box; includes a short explanation of the loop - Enable/status row moved from the top of the tab to the bottom of the box, so it no longer reads as a modal-level confirm button - Font sizes unified: feature titles match; step checkboxes (2./3.) match the step labels (1./4.); "Respawn Cycle" renamed "Cycle Steps" CLAUDE.md: add usage-limit-patterns.ts to the Session row; app.js ~3.7K Co-Authored-By: Claude Fable 5 --- CLAUDE.md | 2 +- src/web/public/index.html | 29 +++++++++++-------- src/web/public/mobile.css | 60 +++++++++++++++++++++++++++------------ src/web/public/styles.css | 42 ++++++++++++++++++++++++--- 4 files changed, 98 insertions(+), 35 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 19523d04..758bb65d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -129,7 +129,7 @@ Codeman is a Claude Code session manager with web interface and autonomous Ralph | **Infra** | `src/hooks-config.ts`, `src/push-store.ts`, `src/tunnel-manager.ts`, `src/image-watcher.ts`, `src/file-stream-manager.ts` | | | **Plan** | `src/plan-orchestrator.ts`, `src/prompts/*.ts`, `src/templates/` (`claude-md.ts` + `case-template.md`, the CLAUDE.md scaffold generated into new cases) | | | **Web** | `src/web/server.ts` ★, `src/web/sse-events.ts`, `src/web/routes/*.ts` (15 route modules + barrel; `session-routes.ts` ★), `src/web/route-helpers.ts`, `src/web/ports/*.ts`, `src/web/middleware/auth.ts`, `src/web/schemas.ts`, `src/web/self-update.ts` | | -| **Frontend** | `src/web/public/app.js` (~3.6K lines, core) + 5 infra modules (`constants.js`, `mobile-handlers.js`, `voice-input.js`, `notification-manager.js`, `keyboard-accessory.js`) + 7 domain modules (`terminal-ui.js`, `respawn-ui.js`, `ralph-panel.js`, `orchestrator-panel.js`, `settings-ui.js`, `panels-ui.js`, `session-ui.js`) + 5 feature modules (`ralph-wizard.js`, `api-client.js`, `subagent-windows.js`, `input-cjk.js`, `image-input.js`) + `sw.js` | | +| **Frontend** | `src/web/public/app.js` (~3.7K lines, core) + 5 infra modules (`constants.js`, `mobile-handlers.js`, `voice-input.js`, `notification-manager.js`, `keyboard-accessory.js`) + 7 domain modules (`terminal-ui.js`, `respawn-ui.js`, `ralph-panel.js`, `orchestrator-panel.js`, `settings-ui.js`, `panels-ui.js`, `session-ui.js`) + 5 feature modules (`ralph-wizard.js`, `api-client.js`, `subagent-windows.js`, `input-cjk.js`, `image-input.js`) + `sw.js` | | | **Types** | `src/types/index.ts` (barrel) → 15 domain files; also `src/types.ts` root re-export | See `@fileoverview` in index.ts | ★ = Large, central file (>50KB) — read its `@fileoverview` first. All files have `@fileoverview` JSDoc — read that before diving in. Discovery aid: `grep -l '@fileoverview' src/web/routes/*.ts` lists all route modules; same grep works for `src/types/`, `src/web/public/*.js`. diff --git a/src/web/public/index.html b/src/web/public/index.html index 6abd82ab..420d64b3 100644 --- a/src/web/public/index.html +++ b/src/web/public/index.html @@ -604,17 +604,6 @@