Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.1.4] - 2025-12-26
Added
- Zero-Configuration Launcher: New
deepagent-labcommand that automatically configures Jupyter server settings- Auto-detects available ports using socket programming
- Generates secure authentication tokens with
secrets.token_urlsafe(32) - Sets
DEEPAGENT_JUPYTER_SERVER_URLandDEEPAGENT_JUPYTER_TOKENenvironment variables automatically - Supports all
jupyter labarguments (e.g.,--no-browser,--port) - See JUPYTER_AUTO_CONFIG.md for details
- Dynamic Agent Name Display: Chat interface now displays custom agent names
- Reads the
nameattribute from agent objects - Updates dynamically when agents are switched via
DEEPAGENT_AGENT_SPEC - Falls back to “Deep Agents” if no name is set
- Reads the
- Custom Logo Integration: Extension now uses custom DeepAgent Lab logo
- Theme-aware SVG icon in sidebar and command palette
- Centralized icon definitions in
src/icons.ts - Professional branding throughout the interface
Changed
- Improved README: Completely restructured documentation
- Launcher command featured as recommended approach
- Manual configuration shown as alternative method
- Dedicated “Using Custom Agents” section with clear examples
- Simplified Quick Start instructions
- Enhanced environment variables reference table
- Icon-Only Sidebar Tab: Cleaner sidebar appearance
- Removed label text from sidebar tab (icon only)
- Moved extension to bottom of sidebar for better organization
- Agent name still displayed in chat window header
- Tooltip shows “Deep Agents” on hover
Technical Details
- Added
[project.scripts]entry point inpyproject.tomlfor launcher command - Created
deepagent_lab/launcher.pywith port detection and token generation - Modified health check endpoint to return agent name when available
- Updated chat widget to display dynamic agent names
- Removed obsolete auto-configuration code from extension initialization
[0.1.3] - 2025-12-14
Added
- LangGraph Utilities Module: New
langgraph_utils.pyproviding helper functions for LangGraph integration- Utility functions for agent state management and graph operations
- Enhanced agent execution framework with better LangGraph support
Changed
- Improved Chat Message Styling: Enhanced message content styling for better readability
- Clearer visual hierarchy and structure
- More responsive and polished UI design
- Better spacing and typography for message content
- Refactored Interrupt Handling: Improved interrupt mechanism for human-in-the-loop interactions
- More reliable interrupt processing
- Better clarity in interrupt flow
- Enhanced responsiveness during agent execution
- Enhanced Notebook Cell Operations: Updated to use Jupyter Server API for saving changes
- Direct integration with Jupyter Server API for cell modifications
- More reliable cell save operations
- Better notebook state management
- Agent Execution Refactoring: Streamlined agent execution logic in
agent_wrapper.py- Cleaner execution flow leveraging LangGraph utilities
- Improved error handling and state management
- Better integration with LangGraph graph structures
Fixed
- Improved stability and reliability of notebook cell operations
[0.1.2] - 2025-11-29
Added
- Centralized Configuration System: New
config.pymodule withget_config()function for hierarchical environment variable support- All configuration now uses
DEEPAGENT_prefix (notDEEPAGENT_LAB_) - Full compatibility with deepagent-dash
- Agents can be shared between deepagent-lab and deepagent-dash seamlessly
- All configuration now uses
- File Path Agent Loading: Enhanced agent loading to support both module paths and file paths
DEEPAGENT_AGENT_SPECenvironment variable in format"module_or_file:variable"- Support for relative paths (
./my_agent.py:agent) - Support for absolute paths (
/path/to/agent.py:graph) - Automatic detection of file vs module paths
- Dynamic Workspace Configuration: Workspace root now configurable via
DEEPAGENT_WORKSPACE_ROOT- Automatic workspace discovery for agents
- Environment variable set by extension for agent access
- Dynamic workspace path resolution
Changed
- Standardized Environment Variables: All variables now use
DEEPAGENT_prefix for cross-library compatibilityDEEPAGENT_AGENT_SPECreplaces previous agent configurationDEEPAGENT_JUPYTER_SERVER_URLfor Jupyter server connectionDEEPAGENT_JUPYTER_TOKENfor authenticationDEEPAGENT_MODEL_NAMEandDEEPAGENT_MODEL_TEMPERATUREfor model configurationDEEPAGENT_VIRTUAL_MODEfor FilesystemBackend safetyDEEPAGENT_WORKSPACE_ROOTfor dynamic workspace paths
- Enhanced Security: Updated default Jupyter token from
"12345"to cryptographically secure random value.env.exampleincludes command to generate secure tokens:python3 -c "import secrets; print(secrets.token_hex(16))"- Default token:
8e2121e58cd3f9e13fc05fc020955c6e
- Streamlined Documentation: Updated README.md with clearer, more concise instructions
- Emphasized critical Jupyter server configuration requirements
- Added environment variables reference table
- Highlighted agent portability between deepagent-lab and deepagent-dash
- Removed verbose sections to focus on essential information
- Agent Initialization: Updated
agent_wrapper.pywith improved loading mechanisms- Smart detection of file paths vs module paths
- Support for
importlib.utilfor file-based loading - Workspace root environment variable propagation
Removed
- Unused Environment Variables: Removed
MODEL_MAX_TOKENSandLOG_LEVEL(were defined but never used)
Fixed
- Jupyter Configuration: Corrected Quick Start documentation to use hardcoded values matching
.env.example- Fixed incorrect reference to non-existent
DEEPAGENT_JUPYTER_PORTvariable - Updated jupyter lab command with correct port and token values
- Fixed incorrect reference to non-existent
[0.1.1] - 2025-11-19
Added
- Stop Execution Button: Added ability to cancel ongoing agent execution with a red stop button that replaces the send button during processing
- Backend cancellation endpoint (
/cancel) with thread-safe execution tracking - Graceful cancellation between streaming chunks
- User feedback when execution is cancelled
- Backend cancellation endpoint (
- Multi-line Input Support: Input box now supports multiple lines for longer messages
- Enter key sends message
- Shift+Enter creates new line
- Manual vertical resizing with drag handle
- Auto-constrained between 40px and 200px height
- Non-blocking Execution: Agent operations now run in thread pool to keep Jupyter responsive
- Notebooks remain interactive while agent is working
- No UI freezing during long-running operations
- Thread pool with 4 max workers for concurrent operations
Changed
- Professional UI redesign with light color palette
- Blue gradient send button with hover effects
- Red gradient stop button with professional styling
- Refined shadows, borders, and spacing throughout
- System messages now left-aligned with subtle gray styling
- Improved markdown rendering with compact spacing
- Reduced paragraph padding to 0.1em vertical
- Tighter line height for efficient reading
- Better typography consistency
Fixed
- Fixed raw tool call dictionaries appearing in chat output
- Fixed todo list parsing to handle Python-style single quotes using
ast.literal_eval() - Fixed todo list display issues after content filtering
[0.1.0] - 2025-11-17
Added
- Initial release
- JupyterLab extension with chat interface
- DeepAgents integration
- Real-time streaming responses
- Tool call visualization
- Todo list tracking
- Human-in-the-loop interrupts
- Context awareness (current directory and focused widget)