Video/Image panel, agent interrupt, minimap & smart panel colors#25
Merged
Conversation
Five independent fixes from this session: 1. Video panel: real AVI/MKV/WMV/… support via on-demand ffmpeg transcode to MP4 (H.264/AAC), cached per source file, with a progress/cancel UI. Native MP4/WebM/Ogg play directly; MKV/MOV try native then fall back. resolveFfmpeg() prefers bundled ffmpeg-static, then system PATH. 2. Agent interrupt: a "Stop" button in the Chat panel cooperatively aborts the agent's current task WITHOUT killing the session. An SSE interrupt event arms the MCP server, whose next non-exempt tool call returns a STOP instruction so the agent acknowledges and returns to logan_wait_for_message. 3. Minimap black-tail fix: density buckets were keyed by a UTF-16 char counter (capped at MAX_LINE_LENGTH, plus CRLF/multi-byte drift) that only reached ~77% of file size on big logs, leaving the tail uncolored. Now keyed by the true byte offset interpolated from actual chunk bytes. 4. Image/video file open: double-clicking a media file used toggleBottomTab, which closed the panel when its tab was already active. Switched to openBottomTab so opening a file always shows the panel. 5. Smart panel colors: replaced the binary light/dark text flip with continuous WCAG-contrast tokens (computePanelTokens) set as CSS custom properties, so labels, buttons and borders stay legible on ANY chosen panel color. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Five independent, build-green fixes from this session.
1. Video panel — real AVI support
On-demand ffmpeg transcode of AVI/MKV/WMV/FLV/MPG → MP4 (H.264/AAC), cached per source file, with a progress bar + Cancel. Native MP4/WebM/Ogg play directly; MKV/MOV try native then fall back to transcode on decode error.
resolveFfmpeg()prefers bundledffmpeg-static, then common system paths / PATH. Verified end-to-end on a real Xvid+MP3 AVI.2. Agent interrupt — "Stop" button
Cooperatively aborts the agent's current task without killing the session. The renderer pushes an SSE
interruptevent; the MCP server either wakes a parkedlogan_wait_for_messageor arms a flag so the next non-exempt tool call returns a STOP instruction (agent acknowledges, returns to waiting). Oneserver.tool()wrapper covers all tools.3. Minimap black-tail on large logs
Density buckets were keyed by a UTF-16 char counter (capped at
MAX_LINE_LENGTH, plus CRLF/multi-byte drift) that reached only ~77% of file size, leaving the minimap tail uncolored. Now keyed by the true byte offset interpolated from actual chunk bytes. (Re-run Analyze to regenerate density.)4. Image/video panel toggle bug
Double-clicking a media file used
toggleBottomTab, which closed the panel when its tab was already active. Switched toopenBottomTabso opening a file always shows the panel.5. Smart panel colors
Replaced the binary light/dark text flip with continuous WCAG-contrast tokens (
computePanelTokens) set as CSS custom properties — labels, buttons and borders stay legible on any chosen panel color. Verified contrast ≥ AA across 9 sample colors.🤖 Generated with Claude Code