chore: Project cleanup and Canvas UX improvements (Phase 7-9)
## Cleanup (v0.5.0) - Delete 102+ orphaned MCP session temp files - Remove build artifacts (htmlcov, dist, __pycache__) - Archive superseded plan docs (RALPH_LOOP V2/V3, CANVAS V3, etc.) - Move debug/analysis scripts from tests/ to tools/analysis/ - Archive redundant NX journals to archive/nx_journals/ - Archive monolithic PROTOCOL.md to docs/archive/ - Update .gitignore with missing patterns - Clean old study files (optimization_log_old.txt, run_optimization_old.py) ## Canvas UX (Phases 7-9) - Phase 7: Resizable panels with localStorage persistence - Left sidebar: 200-400px, Right panel: 280-600px - New useResizablePanel hook and ResizeHandle component - Phase 8: Enable all palette items - All 8 node types now draggable - Singleton logic for model/solver/algorithm/surrogate - Phase 9: Solver configuration - Add SolverEngine type (nxnastran, mscnastran, python, etc.) - Add NastranSolutionType (SOL101-SOL200) - Engine/solution dropdowns in config panel - Python script path support ## Documentation - Update CHANGELOG.md with recent versions - Update docs/00_INDEX.md - Create examples/README.md - Add docs/plans/CANVAS_UX_IMPROVEMENTS.md
This commit is contained in:
50
tools/analysis/debug_insights.py
Normal file
50
tools/analysis/debug_insights.py
Normal file
@@ -0,0 +1,50 @@
|
||||
"""Debug insights availability for a study."""
|
||||
import sys
|
||||
sys.path.insert(0, ".")
|
||||
from pathlib import Path
|
||||
|
||||
# Test study path resolution
|
||||
study_id = 'm1_mirror_cost_reduction_V9'
|
||||
STUDIES_DIR = Path('studies')
|
||||
|
||||
# Check nested path
|
||||
for topic_dir in STUDIES_DIR.iterdir():
|
||||
if topic_dir.is_dir():
|
||||
study_dir = topic_dir / study_id
|
||||
if study_dir.exists():
|
||||
print(f"Found study at: {study_dir}")
|
||||
print(f"Has 1_setup: {(study_dir / '1_setup').exists()}")
|
||||
print(f"Has 2_results: {(study_dir / '2_results').exists()}")
|
||||
|
||||
# Check what insights are available
|
||||
from optimization_engine.insights import list_available_insights, get_configured_insights, recommend_insights_for_study
|
||||
|
||||
print("\n--- Available insights (can_generate=True) ---")
|
||||
available = list_available_insights(study_dir)
|
||||
print(f"Count: {len(available)}")
|
||||
for a in available:
|
||||
print(f" - {a}")
|
||||
|
||||
print("\n--- Configured insights ---")
|
||||
configured = get_configured_insights(study_dir)
|
||||
print(f"Count: {len(configured)}")
|
||||
for c in configured:
|
||||
print(f" - {c.type}: {c.name}")
|
||||
|
||||
print("\n--- Recommendations ---")
|
||||
recs = recommend_insights_for_study(study_dir)
|
||||
print(f"Count: {len(recs)}")
|
||||
for r in recs:
|
||||
print(f" - {r['type']}: {r['name']}")
|
||||
|
||||
# Test individual insight can_generate
|
||||
print("\n--- Testing each insight's can_generate ---")
|
||||
from optimization_engine.insights import get_insight, list_insights
|
||||
|
||||
for info in list_insights():
|
||||
insight = get_insight(info['type'], study_dir)
|
||||
if insight:
|
||||
can = insight.can_generate()
|
||||
print(f" {info['type']:20} can_generate={can}")
|
||||
|
||||
break
|
||||
Reference in New Issue
Block a user