Skip to content

feat: standalone chat, LLM responses, and persistent graph#1

Open
oxoxDev wants to merge 8 commits intotinyhumansai:mainfrom
oxoxDev:feat/standalone-chat-persistent-graph
Open

feat: standalone chat, LLM responses, and persistent graph#1
oxoxDev wants to merge 8 commits intotinyhumansai:mainfrom
oxoxDev:feat/standalone-chat-persistent-graph

Conversation

@oxoxDev
Copy link

@oxoxDev oxoxDev commented Mar 20, 2026

Summary

  • Backend pipeline: Express backend with Gemini 2.5 Flash video analysis, SSE-based processing stream, and neocortex memory insert/query/recall/delete endpoints with llmQuery for natural language responses
  • Standalone chat panel: Always-visible full-width chat panel independent of processing stage, with video selector dropdown and localStorage-backed history (up to 50 videos)
  • Persistent graph: Graph data saved per-video in localStorage, restored on page reload and when switching between videos in the dropdown
  • Re-upload support: "Upload New Video" button appears after processing completes so users can process multiple videos in one session
  • Responsive design: Proper tablet (2-col side stack), mobile (touch-friendly inputs, wrapped selectors), and small mobile breakpoints

Test plan

  • Fresh load with no history: chat panel shows placeholder, graph shows master node
  • Process a video: thought stream + graph animate, on completion video auto-selected in chat with recall summary
  • Ask a question in chat: get natural language answer (not raw JSON)
  • Reload page: video appears in dropdown, graph restores from localStorage
  • Process another video: both appear in dropdown, switching swaps graph + chat context
  • Click "Upload New Video" after completion: file picker opens, new processing starts
  • Resize browser to tablet/mobile: layout adapts properly

🤖 Generated with Claude Code

oxoxDev and others added 8 commits March 20, 2026 22:15
Sets up Express backend with multer video upload, SSE-based processing
pipeline, and memory query/recall/delete endpoints via neocortex SDK.
Adds vite proxy config and gitignore entries for backend env/uploads.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
VideoPanel now supports drag-and-drop and click-to-upload with processing
overlay. Adds "Upload New Video" button after completion so users aren't
stuck viewing the first video with no way to upload another.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds types for video history tracking and chat messages. Creates API
client with upload, SSE processing stream, recall, query, and delete
functions for communicating with the backend.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Manages full processing lifecycle (upload, analyze, build memories,
ingest, complete) with live graph construction, thought stream, and
surprise tracking via SSE events from the backend.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…stence

MemoryChatPanel is now independent of processing stage with video selector
dropdown, auto-recall on video switch, and proper LLM response extraction.
useVideoHistory hook persists video metadata and graph data in localStorage.
ThoughtStreamPanel reverted to pure thought stream without chat logic.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
App now manages chatVideoId state, saves video history on processing
completion, restores saved graphs from localStorage on load and video
switch. Graph display switches between live processor graph during
active processing and saved graph when idle/complete.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… button styles

Dashboard grid now has two rows (main + chat). Adds full-width panel-chat
with overflow visible for dropdown, video selector styling, chat message
styles, upload-new-btn overlay, and responsive breakpoints.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Chat panel min/max height bumped to 250/400px with larger input font.
Added proper tablet breakpoint (side-stack goes 2-col grid), mobile
breakpoint (2-col metrics, touch-friendly inputs, wrapped selectors),
and small mobile breakpoint (full-width send button, tighter spacing).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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