When terminal is not ready after max attempts, go directly to fallback
dimensions instead of falling through to call proposeDimensions() which
throws 'viewport.scrollBarWidth' TypeError.
Root cause: FitAddon.proposeDimensions() checks _renderService.dimensions
before accessing viewport.scrollBarWidth, but dimensions can be valid
while viewport is still undefined during terminal initialization.
Add isTerminalReady() check before calling fitAddon.proposeDimensions()
in the initial fit loop to prevent 'viewport.scrollBarWidth' TypeError
when terminal is not fully initialized.
- Wrapped initial fit logic in comprehensive try-catch with multiple fallback strategies
- Added timeout-based fallback (2 seconds) to ensure terminal always gets initialized
- Enhanced error handling to prevent blank terminal on initialization failure
- Added cleanup of fallback timeout when WebSocket connects successfully
- Maintains all existing functionality and improves reliability
Bump version to 0.3.30
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
- Added more robust terminal readiness checking
- Explicitly check for viewport.scrollBarWidth being defined
- Added FitAddon function type checking before calling fit()
- Improved error handling for FitAddon initialization issues
- Prevents 'undefined is not an object' errors during terminal setup
- Maintains all existing functionality and test compatibility
Bump version to 0.3.29
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
- Added isTerminalReady() method to check if terminal components are initialized
- Enhanced fit() method to check terminal readiness before attempting fit operations
- Improved initial fit logic with better error handling for viewport initialization
- Prevents 'undefined is not an object' errors when viewport.scrollBarWidth is accessed too early
- Maintains all existing functionality and backward compatibility
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>