feat(prove): draggable, remembered chat width - #466
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a draggable splitter to make the /prove chat column user-resizable (instead of a fixed width) and persists the chosen width across the Derive workspace and opened-proof chats via localStorage.
Changes:
- Updated
/provelayout to include a visible vertical resizer between proof content and chat, hidden on narrow layouts. - Added JS wiring to drag-resize the chat column (CSS
--chat-w) and persist/restore the width across sessions and tabs.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| static/prove.js | Creates/wires the splitter for both Derive and opened-proof panels; persists/restores chat width. |
| static/prove.html | Updates CSS grid columns and adds the resizer element + styling for the Derive workspace. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
ibenian
added a commit
that referenced
this pull request
Jul 15, 2026
…ard a11y Address Copilot review on #466: - applyStoredChatW wraps localStorage.getItem in try/catch — a SecurityError in blocked-storage / privacy modes no longer aborts /prove init (matches the write guard, factored into _storeChatW). - Drag listens for pointercancel too (mirrors pointerup), so a canceled gesture / mid-drag interruption can't leave the splitter stuck dragging with dangling document listeners. - The resizer is now keyboard-accessible: focusable (tabindex=0) with ←/↑ widen, →/↓ narrow, Home/End to limits, and aria-valuemin/max/now — verified live. 🤖 Co-Authored-By: Claude <81847+claude@users.noreply.github.com>
The chat column was fixed at 360px. Add a draggable splitter between the proof box and the chat: drag left/right to resize (clamped 300–680px), and the width persists in localStorage so it's shared across the Derive workspace and every opened-proof chat. Pure pointer-events; hidden on narrow (single-column) layouts. 🤖 Co-Authored-By: Claude <81847+claude@users.noreply.github.com>
…ard a11y Address Copilot review on #466: - applyStoredChatW wraps localStorage.getItem in try/catch — a SecurityError in blocked-storage / privacy modes no longer aborts /prove init (matches the write guard, factored into _storeChatW). - Drag listens for pointercancel too (mirrors pointerup), so a canceled gesture / mid-drag interruption can't leave the splitter stuck dragging with dangling document listeners. - The resizer is now keyboard-accessible: focusable (tabindex=0) with ←/↑ widen, →/↓ narrow, Home/End to limits, and aria-valuemin/max/now — verified live. 🤖 Co-Authored-By: Claude <81847+claude@users.noreply.github.com>
ibenian
force-pushed
the
feat/prove-chat-resize
branch
from
July 15, 2026 01:29
49b9c1a to
be69645
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a draggable splitter between the proof box and the chat on
/prove, so the chat column is width-resizable instead of fixed at 360px.localStorage, so it's shared across the Derive workspace and every opened-proof chat.Verified live: dragged 360→606px (proof box shrank, chat grew), persisted across reload, and an opened proof inherited the width with its own working splitter. No console errors.
Stacked on #465 (base =
feat/prove-proof-store) since it only touchesstatic/prove.html/static/prove.js, which are introduced there. GitHub will retarget this tomainonce #465 merges.🤖 Generated with Claude Code