Skip to content

Video/Image panel, agent interrupt, minimap & smart panel colors#25

Merged
ozgesolidkey merged 1 commit into
mainfrom
feat/panel-ux-video-agent-fixes
Jun 30, 2026
Merged

Video/Image panel, agent interrupt, minimap & smart panel colors#25
ozgesolidkey merged 1 commit into
mainfrom
feat/panel-ux-video-agent-fixes

Conversation

@ozgesolidkey

Copy link
Copy Markdown
Contributor

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 bundled ffmpeg-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 interrupt event; the MCP server either wakes a parked logan_wait_for_message or arms a flag so the next non-exempt tool call returns a STOP instruction (agent acknowledges, returns to waiting). One server.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 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 — labels, buttons and borders stay legible on any chosen panel color. Verified contrast ≥ AA across 9 sample colors.

🤖 Generated with Claude Code

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>
@ozgesolidkey
ozgesolidkey merged commit 03ed6ed into main Jun 30, 2026
3 checks passed
@ozgesolidkey
ozgesolidkey deleted the feat/panel-ux-video-agent-fixes branch June 30, 2026 10:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant