-
Notifications
You must be signed in to change notification settings - Fork 0
Production Release: Comprehensive System Improvements and MATLAB Integration #7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Remove accidentally committed .DS_Store files from repository - Add .DS_Store, .AppleDouble, and .LSOverride to .gitignore - Prevent future macOS system files from being tracked 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- README.md: Added MATLAB/Octave solver support (SeDuMi, SDPT3) - README.md: Updated solver counts (11 total: 9 Python + 2 MATLAB) - README.md: Added component role definitions (loaders, runners, interfaces) - detail_design.md: Added clear separation of concerns documentation - Documented problem_name → ProblemData → SolverResult workflow 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- CLAUDE.md: Updated development status to production ready with MATLAB integration - history.md: Added Phase 6 completion with comprehensive MATLAB architecture details - tasks.md: Updated to reflect production-ready status with 11 solvers - Remove matlab_integration_design.md: Content merged into detail_design.md Phase 6 achievements: - MATLAB architecture simplification (4-file → 2-file for new solvers) - Field name consistency across Python/MATLAB interfaces - Unified solver interface design with symmetrical architecture - Complete documentation consolidation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Enhanced iteration extraction for CVXPY solvers with fallback methods - Document known limitations for CVXOPT and SDPA (no iteration info through CVXPY) - Add iteration_info_limitation field to memo for transparency - Pin all dependency versions for reproducible benchmarks - Update requirements.txt with documentation and version control strategy 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add SolverResult.create_unsupported_result() method for proper incompatibility handling - Make solve_time Optional to support UNSUPPORTED status (None when not applicable) - Update validation logic to handle None solve_time values - Implement pre-compatibility checking in Python interface - Return UNSUPPORTED instead of ERROR for unsupported problem types - Ensure accurate problem_type recording even for incompatible combinations - Update logging to handle None solve_time gracefully - Add problem_data parameter to store_error_result for better type detection Example: scipy_linprog on SOCP problems now returns UNSUPPORTED instead of ERROR, with correct problem_type=SOCP and descriptive reason in memo field. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Fix results matrix to show UNSUPPORTED status correctly - Updated get_results_matrix() to use only latest results per (problem, solver) pair - Fixed nb_L1 row showing ERROR instead of UNSUPPORTED for cvxpy_osqp and scipy_linprog - Add CSS styling for OPTIMAL (INACCURATE) status - Added .status-optimal-inaccurate class with yellow background (#fff3cd) - Applied to results matrix, raw data, and overview pages - Improve data consistency by filtering duplicate results with different timestamps - Update status distribution and solver comparison to properly handle all status types Both UNSUPPORTED and OPTIMAL (INACCURATE) statuses now display correctly with appropriate styling across all report pages. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Changed **bold** Markdown syntax to <strong> HTML tags in site_config.yaml - Fixed Project Overview section in index.html to display bold text correctly - Fixed Important Note section in results_matrix.html to display bold text correctly - Direct HTML approach chosen for stability and simplicity (no additional dependencies) The HTML formatting now displays correctly without requiring Markdown parsing libraries. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Added 107+ problem benchmark results to database (77% completion rate) - Fixed systematic error in tasks.md: Updated Python solver timeout records - Added comprehensive benchmark summary documenting: - Overall completion statistics: 107/139 problems - Format-blocked problems: 26 (MCP/GPP families) - CLARABEL memory issues on large-scale problems - Solver performance insights and recommendations - Updated problem registry and site configuration MILESTONE: Production-ready benchmark system with comprehensive results 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Fixed 'Unknown format code f for object of type str' error - Added safe type conversion for numeric formatting: - known_objective_value formatting with error handling - objective_value formatting with fallback to string - duality_gap formatting with type checking - avg_solve_time formatting protection - Reports now generate successfully with mixed numeric/string data 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…r OS - Fixed data_exporter.py to use 'system' field instead of removed 'platform' field - Fixed html_generator.py to use 'system' field instead of removed 'platform' field - Regenerated all HTML reports with correct platform display (Darwin) - Updated summary.json and CSV exports with proper platform information - Issue caused by environment sanitization removing 'platform' but reports still referencing it 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…xecution time
- Modified _convert_matlab_result to prioritize solve_time from MATLAB JSON output
- Previously used subprocess execution time (MATLAB startup + solve time) which was inaccurate
- Set NaN for error cases to maintain transparency and avoid error masking
- Removed unused solve_time variable and parameter from _convert_matlab_result method
- Unified all error handling to use float('nan') instead of subprocess time
Test results:
- matlab_sedumi: 0.984s (actual MATLAB solve time)
- cvxpy_clarabel: 24.148s (Python solve time)
- Both achieve same optimal solution, enabling fair comparison
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Successfully re-executed matlab_sedumi on 132 problems (92% success rate) - Successfully re-executed matlab_sdpt3 on 139 problems (97% success rate) - New solver_time measurements captured with fixed calculation method - Database size increased from 3.1MB to 4.1MB with new results Results summary: - SeDuMi: 122 SUCCESS, 9 TIMEOUT, 1 ERROR - SDPT3: 136 SUCCESS, 4 TIMEOUT, 2 ERROR 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Fix SDPLIB objective value signs due to SDPA to SeDuMi format conversion (88 problems) - Add responsive table sizing with 90vh height for optimal screen utilization - Implement sticky headers for both results_matrix and raw_data tables - Update accuracy thresholds to 1e-4 (0.01%) and 1e-2 (1%) for better classification - Improve fastest time selection with excellent→good fallback logic - Remove status restrictions for fastest time selection (accuracy-focused) - Add comprehensive legend explaining accuracy and performance indicators - Optimize horizontal scroll functionality to prevent page overflow - Add solver display order configuration in site_config.yaml - Regenerate all HTML reports with latest improvements 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
📊 Preview Reports Ready!Your preview has been deployed and is available at: Preview Details
Available Reports
Notes
Preview deployment powered by GitHub Actions |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Key Features
Test Plan
🤖 Generated with Claude Code