- Redesigned Dev Panel trigger from a horizontal bar at the bottom to a compact vertical tab on the right edge of the screen
- Increased error display container height from 580 to 610 to prevent content overflow
- Refactored
ErrorStackinto multiple single-responsibility classes following SOLID principles ErrorStack.init()now accepts optionalstorageanddevPanelConfigparametersErrorStackDebugWidgetnow uses constructor injection instead of accessingErrorStack.instance
A comprehensive runtime debugging tool accessible via long-press on the "Dev Panel" bar or programmatically via ErrorStack.showDevPanel(context):
- API Tab - HTTP request/response logging with timing, headers, and body data
- Logs Tab - Console logging with severity levels (debug, info, warning, error)
- Routes Tab - Navigation history tracking with route names and arguments
- Storage Tab - View local storage data (Secure Storage & Shared Preferences)
- UI Tab - Visual debugging tools:
- Grid paper overlay
- Layout bounds visualization
- Text scale adjustment (0.5-3.0x)
- Color blindness simulation (protanopia, deuteranopia, tritanopia)
- Slow animations (5x)
- Performance overlay
- Safe area visualization
ErrorStackDioInterceptor- Automatic HTTP logging for Dio requests- Separate import:
import 'package:error_stack/error_stack_dio.dart'
ErrorStackNavigatorObserver- Automatic route tracking for navigation history
ErrorStackConfig- Configuration class for level, initialRoute, themeMode, customErrorWidget, forceDebugWidgetErrorStackStorageBase- Abstract interface for storage (enables custom implementations/mocking)ErrorStackStorage- Default FlutterSecureStorage implementationErrorStackHandler- Encapsulates error handling logic, stack trace parsing, widget buildingDevPanelConfig- Configuration for dev panel features and log limitsDevPanelStore- Central data store for all debug data (ChangeNotifier)
ErrorStack.builder- Builder function for MaterialApp to add dev panel and UI overlaysErrorStack.showDevPanel(context)- Programmatically show the dev panelErrorStack.isInitialized- Check if ErrorStack has been initializedDevPanelStore.instance- Access logging APIs (debug, info, warning, error, logApi, trackRoute)
- The "Copy markdown" button in `ErrorStackDebugWidget` now copies a structured markdown report to the clipboard (instead of opening a Google search). The report includes:
* Exception message
* Full stack trace
* Source file path
* Environment info (platform, OS version, timestamp, debug mode)
- Comprehensive test suite with ~490 tests covering all components
lib/
├── error_stack.dart # Main entry point & exports
├── error_stack_dio.dart # Dio interceptor export
├── src/
│ ├── config/ # Configuration classes
│ ├── storage/ # Storage abstraction
│ ├── handler/ # Error handling logic
│ └── dev_panel/ # Dev panel components
│ ├── data/ # Store, models, collections
│ ├── widgets/ # Panel UI & tabs
│ ├── interceptors/ # Dio interceptor
│ └── observers/ # Navigator observer
└── widgets/ # Error display widgets
- fix dart analysis issues
- Update pubspec.yaml
- Update GitHub workflows
- Update pubspec.yaml
- Update the pubspec.yaml
- Update the pubspec.yaml
- Refactor as per flutter_lints suggestions
- Update copyright year
- Update the pubspec.yaml
- Update debug widget
- Merge PR from @SalihCanBinboga to allow the debug widget to be shown in release mode
- Update debug widget
- Update default height of the debug widget to 580.0
- Set maxLines to 5 for the
exceptionAsStringvalue in the debug widget - Update README.md
- Update README.md
- Update README.md
- Add extra check in
ErrorWidget.builderto get file name from the stack trace
- Fix error with Web not working
- Add new Regex to catch more
classNamesin the stack trace ErrorStackLogLevel.verbose(default)- Fix example project
- Update README.md
- Update screenshots
- Add
errorWidgetto ErrorStack init method. This allows you to set a custom error widget to be displayed when an error occurs in production.
- Update debug and release widget to support responsive design.
- Update pubspec.yaml
- Update pubspec.yaml
- Update pubspec.yaml
- Update pubspec.yaml
- Update workflow
- Update pubspec.yaml
- Update logo
- Update README.md
- Small tweak to storage key
- Update README.md
- Remove
nylodependency. - Add
flutter_secure_storagedependency. - Update debug and release widget.
- Initial release.