mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-10-03 05:59:43 +02:00
Blocker from Ark0N's second PR #453 pass: moving showSplitButton into settings-ui.js's per-device displayKeys set was only half of making it per-device. saveAppSettings() still put it in the object PUT to /api/settings, SettingsUpdateSchema (.strict()) does not declare it, the server answered 400 INVALID_INPUT, and because the call site never checked res.ok the UI still reported "Settings saved" while NOTHING persisted — workspaceHooksEnabled, agentSkillEnabled, tunnelEnabled, claudeModel, every toggle, on every save, on every device. Strip it out via the same destructure every other per-device key goes through (`showSplitButton: _ssp,`), drop the stray mention from a schemas.ts comment (a mention there reads as "this is a real field" to the next grep), and add a static guard test mirroring test/terminal-auto-copy.test.ts's three-way rule. Also finishes the desktop gate the first pass only did in CSS at 599px: SPLIT_PANE_MIN_WIDTH (1180, matching HOME_SESSIONS_MIN_WIDTH) now backs an actual JS width check in _applySplitButtonVisibility, with a matchMedia listener so a live window resize hides/shows the button without a reload — the CSS backstop in styles.css is the reverse-direction guarantee for when JS hasn't run. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>