Commit History
-
Unify figure store globally, enable cross-agent figure references
- Replace per-tab IMAGE_STORES with single global FIGURE_STORE shared by code and image agents - Unify naming: image_N → figure_T{tab}_N across all agents - Store values as {type, data} dicts consistently - Restore figure registry from workspace on session reload - Remove separate 'images' handling in frontend (unified under 'figures') - Add cross-agent figure reference instructions to command center prompt - Fix double-wrapping bug in image agent nudge path Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>4c24c65
-
Global image namespacing, persistent server-side image store, save_image improvements
- Namespace image/figure refs at backend level (image_T{tab}_N, figure_T{tab}_N) so frontend no longer needs to translate between local and global names - Add persistent IMAGE_STORES/IMAGE_COUNTERS dicts in main.py so image data survives agent re-entry without requiring multimodal mode - save_image tool: return base64 preview, add proper display name/description - Fix nudge condition: trigger result formatting even when image_store is empty - Add hidden assistant message for result_preview history reconstruction - Clean up image stores on session switch Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>f508f01 -
Fix welcome notice spacing and style Important in theme color
Bump CSS version to 112 to bust Space cache for all recent CSS changes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>72028e1 -
Add more spacing between start button and notice in welcome dialog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>d79b82f -
Update welcome dialog with shared space and data storage notice
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>f292364 -
Add API key warning to multi-user welcome dialog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>aafd3ca -
Rotate favicon dots to resemble a play triangle
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>11e5bdb -
Add favicon and apple-touch-icon (three-dot triangle)
Eliminates 404s for /favicon.ico and /apple-touch-icon.png requests. Icon uses the same three-dot triangle pattern as the loading spinner. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>20e6105 -
Restructure settings into collapsible groups, fix dark theme hardcoded colors
Settings panel reorganized into 5 collapsible sections: Agent Models, Models & Providers, API Keys, Agent Settings, Theme. Replace hardcoded color values (white, #666, #888, #fff, #bbb, rgba(255,...)) with CSS variables (var(--bg-primary), var(--border-primary), var(--text-muted), var(--theme-accent)) for proper dark theme support. Style checkboxes, dropdowns, number inputs, and panel headers/buttons to be theme-aware. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>b5bd59f
-
Enlarge collapse toggle hit area for easier clicking
Adds padding with negative margin to both widget and agent header collapse toggles, making the clickable zone ~34px without changing the visual arrow size. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>179f9a1 -
Fix tool message handling, parallel image refs, error display, and UX polish
- Preserve tool_call_id/tool_calls in Message model so command center history doesn't break on subsequent LLM calls (400 error fix) - Namespace image/figure refs with tab ID (image_1 -> image_T3_1) to avoid collisions between parallel sub-agents - Strip HTML error pages (e.g. HF 503) to short status messages - Show progress widget when command center auto-continues after sub-agents finish - Only reuse agent tabs when both task_id and agent type match - Nudge command center and image agent to only generate images when explicitly asked - Add GLM-5 and Qwen3.5-397B models, update default agent assignments - Update README with install/docker/env docs, add privacy notice to login Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>4da424f
-
Replace welcome SVG diagram with real timeline component, hide sidebar on welcome
- Replace static SVG workflow diagram with actual timeline widgets (agent-box, tl-dot, tl-nested, etc.) - Diagram auto-adapts to all themes via CSS vars — delete ~50 lines of dark-theme SVG overrides - Hide timeline sidebar on welcome/session-selector page, restore on session start - Add updateTimelineLines() call on init for welcome diagram line computation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>339deb5 -
Split frontend script.js (5460 lines) into 8 focused modules
- utils.js: global state, apiFetch, escapeHtml, formatDate, 3 shared helpers - timeline.js: sidebar timeline data + rendering + multi-user - sessions.js: session CRUD + panel UI - tabs.js: tab creation/switching, sendMessage - streaming.js: SSE streaming, code cells, action widgets, parseMarkdown - workspace.js: serialize/restore workspace state - settings.js: settings CRUD, themes, debug/files/sessions panels - app.js: DOMContentLoaded, initializeEventListeners Deduplication: setupInputListeners (3 copies), setupCollapseToggle (4 copies), closeAllPanels (4 verbose blocks) extracted to shared helpers in utils.js. Update README with DIRECT_TOOL_REGISTRY docs, key patterns & conventions section for agent contributors, and updated file tree. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>78f4d62 -
Refactor backend: extract async stream helper, direct tool registry, nudge_for_result via call_llm
- Add _stream_sync_generator helper in main.py, replacing 5 duplicated async queue patterns - Add DIRECT_TOOL_REGISTRY in tools.py combining schema + execute in one dict - Refactor command.py to use DIRECT_TOOL_REGISTRY instead of separate DIRECT_TOOLS set and if/elif dispatch - Make nudge_for_result use call_llm for debug panel parity (agents.py, agent.py, code.py, image.py) - Eliminate hardcoded frontend AGENT_REGISTRY, fetch from /api/agents at startup (script.js) - Debug panel fixes: base64 image placeholders, call enumeration, layout, remove refresh button - Add drag-and-drop file upload to files panel - Rewrite README for release with extension/tool/theme documentation - Reduce debug panel width from 600px to 450px Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>4e3db9c -
Debug panel: full LLM call parity, show_html tool, drag-drop file upload
- Centralize LLM calls into call_llm() generator in agents.py with retries and debug events - Emit debug_call_input/output SSE events for every LLM turn across all agents - Frontend accumulates debug history per tab with INPUT/OUTPUT sections - Replace base64 images with hoverable thumbnail placeholders in debug JSON - Persist debug history in workspace save/restore - Add show_html direct tool for command center (iframe srcdoc rendering) - Add drag & drop file upload to files panel (folder-aware targeting) - Remove old MESSAGE_HISTORY polling, refresh button; debug updates in real-time - Reduce debug panel width to 450px Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>0d3d041
-
Reorganize sidebar controls: separate timeline and chat collapse settings
- "Timeline view: compact" checkbox below legend (collapses agents + hides turns in timeline only) - "Chat collapse: agents / tools" checkboxes (collapse action-widgets and tool-cells in chat only) - Newly created widgets respect current collapse state - Checkboxes reset on conversation clear Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>8e4396d -
Image agent fixes: sizing, error handling, result nudge, registry filtering
- Add max-height: 400px to all image CSS rules and inline styles - Filter globalFigureRegistry to only include images/figures referenced in sub-agent <result> content (prevents command center from rendering images the sub-agent didn't explicitly include) - Extract shared nudge_for_result() utility in agents.py, replacing duplicated nudge code in agent.py, code.py, and image.py - Return actual error messages from execute_generate_image/execute_edit_image (tuple return) so the LLM can adapt its strategy on failure - Show real error messages in frontend tool cells instead of generic "Failed to process image" - Resize large input images to 1024px max before sending to HF image_to_image API (FLUX.1-Kontext-dev expects ~1024px inputs) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>583c5ee
-
Fix image agent: multimodal tool responses, read_image rename, default model
- Pass tool response content as native multimodal array (not JSON string) so VLM actually sees images instead of hallucinating - Rename read_image_url → read_image with local file path support - Update frontend to handle read_image tool name and show path + image - Set Qwen3-235B as default image agent model - Add "Presenting Results" section to command center system prompt - Collapse/expand action-widgets in main chat with checkbox Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>d86459e -
Retry /api/config up to 5 times on startup (1s apart)
Fixes race condition where page loads before server is ready, causing config fetch to fail and multi-user overlay to be skipped. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>591723f -
Add multi-user session isolation and HF bucket sync
- --multi-user flag for per-user isolation (files, sessions, settings, sandboxes) - Username prompt overlay on first visit, stored in localStorage - X-Session-ID header on all API requests via apiFetch() wrapper - Per-user directories under workspace/users/<username>/ - Default settings copied from base config for new users - User indicator in sidebar with click-to-switch - HF Storage Bucket sync in Dockerfile (HF_BUCKET + HF_BUCKET_TOKEN env vars) - Background sync loop every 60s for persistent storage on HF Spaces Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>5f63301
-
Add file explorer download/upload, path linkification, and legend
- Add download button (↓) next to files and upload button (+) next to folders in the file explorer tree - Add root-level upload button (+) in files panel header - Backend: GET /api/files/download, POST /api/files/upload, POST /api/files/check - Add python-multipart dependency for file uploads - Linkify backtick paths in messages: checks existence via /api/files/check and wraps matching inline code in clickable links to file explorer - Make download widget local paths clickable to navigate in file explorer - Add legend at bottom of files panel (click/double-click/drag) - Rename command center label from TASKS to MAIN Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>89321a6
-
Move IMAGE agent above COMPUTER in welcome page, mark as supported
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>ac24780 -
Compact sidebar timeline and theme-colored links
- Reduce vertical spacing in sidebar (widget margins, row gaps, padding) - Make agent boxes narrower with z-index to sit above timeline line - Fix white seam between agent header and border - Style all chat links with theme accent color and visible underline - Add visited link styles using muted theme color - Support dark theme link colors (terminal, noir, eclipse) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>a5aad87
-
Rename report CSS classes to result (research-report → agent-result)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>d6c1699 -
Rename Report to Result and update welcome diagram labels
- Timeline tag: REPORT → RESULT - Welcome SVG: Task Center → Main Agent, Agent → Sub-Agent, Task → Sub-Agent, Report/Report summary → Result - Status messages: "Generating report..." → "Generating result..." Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>e9d71f8 -
Add abort/stop feature and agentui CLI command
Adds cooperative abort via threading.Event so users can stop running agents. Backend abort registry tracks parent-child relationships for recursive abort. Frontend toggles SEND→STOP during generation, with AbortController on fetch. Command center STOP aborts all child agents. Aborted agents produce a result message so parent agents are aware. Also adds `agentui` CLI entry point. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>9bcfe23
-
UI design refinements: resizable sidebar, compact tabs, widget improvements
- Add resizable timeline sidebar with drag handle (persisted to localStorage) - Move widget collapse arrows to left side, show tool query in header - Add double-click on collapse arrow to toggle all widgets - Compact tab bar (25px), rename TASKS to MAIN, harmonize panel button sizes - Compact settings, sessions, debug, files panel headers and content - Add current date to all agent system prompts - Add user message background styling, fix chat panel background color - Remove session indicator from bottom right - Fix textarea scrollbar appearing before content overflow - Fix tab bar border gap next to + button - Default expand agents and show turns checkboxes to checked - Fix legend overflow with flex-wrap on narrow sidebar Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>4da7797
-
Improve web agent prompts, add chunked read_url, and UI refinements
- Rewrite web agent system prompt with metacognitive strategy (reflect before every tool call, snippets are data, adapt on failure) - Remove screenshot_url from web agent (not multimodal) - Add chunked read_url with 10k char chunks and URL content cache - Add code agent reflection step in system prompt - Add collapsible widgets for tool cells, code cells, and action widgets - Fix tab overflow with flex-shrink compression (like browser tabs) - Add active tab indicator arrow in timeline sidebar - Smart auto-scroll: only scroll to bottom if user is near bottom - Timeline turn click now scrolls to corresponding chat element Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>4f207be
-
Fix binary file download, add tool element tab persistence, and UI refinements
- Fix sandbox file download to always use bytes format, preventing corruption of binary files - Add serialization/restore for tool-call, tool-response, and tool-cell elements in tab persistence - Update code agent prompt (clarify working directory, relax savefig guideline) - Apply global scrollbar styling, add collapsed timeline padding - Clean up generated workspace test files Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>9937804
-
Add command center continuation, result nudge, input blocking, and prompt improvements
- Command center auto-continues after all sub-agents finish via continueCommandCenter() - Fix race condition with pendingAgentLaunches counter for delayed agent tab creation - Block command center input while agents are running - Nudge agents for <result> tag if they finish without one (agent.py, code.py) - Strengthen task decomposition prompt to always parallelize multi-entity queries - Improve code agent prompt: sandbox filesystem clarity, plt.show() over savefig - Suppress Python warnings in E2B sandbox on startup - Double output truncation limit (4000 chars) and keep beginning + end Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>9e3f857 -
Add tool tag widgets to timeline, fix event ordering
- Replace [tool_name] text with colored tag widgets (SEARCH, READ, CODE, REPORT, etc.) styled like mini agent headers - Fix timeline event ordering: flush accumulated assistant text before adding tool/code/report events so text appears in correct chronological position - Add hover popup for tool entries showing full description - REPORT now shows content preview instead of being empty Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>61dc919 -
Improve agent routing prompts, add timeline inline labels, drop chat agent
- Rewrite command center system prompt: default to web agent for searches, reserve research agent for deep multi-source analysis, add task decomposition for parallel execution - Sharpen web agent prompt: iterate strategy, full content in <result> tags - Remove chat agent (redundant with web agent) - Replace timeline tooltip pseudo-elements with real <span> labels that show inline text next to dots with hover popup for full content - Fix timeline row spacing and nested agent padding Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>77ed993
-
Rename notebooks→agents, Productive→AgentUI across full codebase
- Rename all notebook references to agent (~340 occurrences across 16 files) - Rename Productive branding to AgentUI (title, welcome text, README) - Add settings migration: notebooks→agents key, productive_settings→agentui_settings - Add backward-compatible localStorage and workspace fallbacks - Scope .agent-header and .agent-body CSS to avoid timeline/content collision - Hide sessions folder from file tree context - Add markdown content toggle to read_url widget - Rename run_interactive_notebook→run_stateful_code - Preserve JupyterNotebook class and .jupyter-notebook-container (actual Jupyter refs) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>a58e6a3
-
Add IMAGE agent, web tools for AGENT, and fix conversation history
- New IMAGE notebook type with HuggingFace image generation/editing tools (generate_image, edit_image, read_image_url via FLUX.1 models) - New backend/image.py streaming handler with image store and VLM context resize (512px JPEG thumbnails to avoid token overflow) - New backend/tools.py centralizing all tool definitions and execution functions - New backend/agent.py with web tools (web_search, read_url, screenshot_url) - Image model settings use dropdowns populated from configured models - Settings panel shows active settings.json file path - Fix conversation history: sub-notebook results now update the tool response DOM element so follow-up questions have full context Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>2a5ead4 -
Centralize agent type registry into single source of truth
Replace ~17 scattered type definitions across 4 files with a unified AGENT_REGISTRY on both backend (agents.py) and frontend (script.js). Adding a new agent now only requires one registry entry per side. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>d22e6fd
-
Add research sub-agents to timeline, collapse assistant turns
- Research queries appear as SEARCH agent boxes in timeline with source dots nested inside - Browse actions get BROWSE agent boxes - Consecutive assistant dots collapse into single "N turns" summary by default - Two sidebar checkboxes replace buttons: "Expand agents" and "Show turns" - Report dot connects back to main timeline when research completes Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>dcbdd12
-
Limit code cell image size, add zoom, clean output noise
- Cap code cell images at max-width 400px (matching reports) - Left-align code cell images instead of centering - Add click-to-zoom on code cell images via openImageModal - Strip [Plot/Image generated] and [Generated figures: ...] from displayed output - Fix inline figure image max-width from 100% to 400px Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>c7d7ff2 -
Add dark themes (Noir, Eclipse) and fix theming consistency
- Add Noir (black & white) and Eclipse (navy & blue) dark themes - Fix timeline return line hardcoded #ccc → var(--border-primary) - Fix action widget RESULT separator #e0e0e0 → var(--border-primary) - Fix Prism.js white text-shadow and token backgrounds on dark themes - Fix action widget pre blocks using hardcoded colors → CSS variables - Pass bgPrimary/textPrimary/textSecondary to sub-agent for plot styling - Share SVG diagram and research tree overrides across all dark themes Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>5f1190f
-
timeline
3923314
-
Add timeline sidebar with tab close/reopen functionality
- Add left sidebar showing timeline of all notebooks and messages - Timeline shows user messages (squares) and assistant messages (circles) - Nested notebooks shown as boxes with type label, title, and turn count - Hover tooltips preview message content - Clicking timeline items switches to that notebook - Save tab content on close, restore on reopen (preserves conversation) - Fix selector bugs that matched timeline elements instead of actual tabs - Add legend explaining timeline symbols Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>a9c8862 -
Fix tool call history - use existing message element for tool calls
- Add tool call data to existing thinking message instead of creating hidden duplicate - Preserve thinking content in messages with tool calls - Fixes history reconstruction for multi-turn conversations Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>17dc243
-
Fix conversation history for command center tool calls
- Create hidden DOM elements for tool calls and tool responses - Update getConversationHistory to capture tool messages - Ensures full conversation history is sent with each request Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>f7832b9 -
Always show session selector on page load
Don't auto-resume last session - let users choose which session to open or create a new one. Better for multi-user HF Space. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>43314f4 -
Make command center stateless for multi-user support
Frontend now sends full conversation history for all notebook types, removing dependency on backend-stored CONVERSATION_HISTORY dict. This fixes issues with multiple users sharing state on HF Spaces. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>102d6ec
-
update
40853c6
-
update
ff12557
-
v0.20
8350b87
-
deep research
5aae12e
-
v21.0
528426e -
v20.0
51b6e17