- Added session management for stateful execution in `sessions.py`, including session creation, state documentation, and cleanup of idle sessions.
- Introduced `SecureContainerManager` in `containers.py` for managing container lifecycle with security enforcement, including creation, starting, stopping, and removal of containers.
- Updated server initialization to use the new session manager.
- Enhanced container configuration to skip resource limits for very high values, indicating no enforcement.
- Improved logging capabilities for container operations in the audit logger.
- Refactored Jupyter backend to integrate with the new session management and resource limits handling.
- Created tests/pod_executor/ with adapted tests from old locations
- tests/pod_executor/simple/test_executor.py: 17/17 tests passing
- tests/pod_executor/security/test_resource_limits.py: 22/23 tests passing
- Removed old test locations (will be deleted with mcp_forge cleanup)
- Fixed all corrupted files from sed/quote issues using Python scripts
- Removed mcp_forge dependencies from pod_executor:
- Removed ForgeConfig from backend.py (explicit parameters)
- Removed SessionConfig from sessions.py (explicit parameters)
- Fixed all audit logger calls to use string-based events
- Updated mcp_forge/security/__init__.py:
- Removed resource_limits imports (now in pod_executor)
- Added comment directing to pod_executor.security.resource_limits
- Deleted from mcp_forge:
- src/mcp_forge/execution/ (simple and jupyter backends)
- src/mcp_forge/podman/ (container management)
- src/mcp_forge/security/resource_limits.py
Total: 39/40 tests passing in pod_executor package
- start_kernel() now accepts injection_code and bridge_socket_path
- Bridge Unix domain socket mounted as volume in container
- Injection code executed once on kernel startup (silent, no history)
- New _execute_injection_code() helper method with error handling
- Parameters passed through SessionManager.create_session()
- Parameters passed through JupyterBackend.execute()
- Updated JUPYTER_IMPLEMENTATION_STATUS.md
This mirrors the MCP injection pattern from the simple executor,
allowing MCP tools to be available in Jupyter sessions.