Skip to content

fix(web): verbose logging, experiment loading fixes, and --doctor command#7

Merged
mcaxtr merged 3 commits intomainfrom
fix/web-verbose-and-cleanup
Feb 24, 2026
Merged

fix(web): verbose logging, experiment loading fixes, and --doctor command#7
mcaxtr merged 3 commits intomainfrom
fix/web-verbose-and-cleanup

Conversation

@mcaxtr
Copy link
Copy Markdown
Owner

@mcaxtr mcaxtr commented Feb 24, 2026

Summary

  • Fix Streamlit welcome/email prompt: Always run --server.headless true and auto-open browser via webbrowser.open() in a daemon thread
  • Fix experiment auto-loading: Resolve experiments directory to absolute path, pass via SPKMC_EXPERIMENTS_DIR env var
  • Add --verbose flag: Structured, color-coded debug logging to stderr
  • Add experiments --doctor: Scan and fix legacy data.json files in-place, normalizing both keys (network_type->network, N->nodes, etc.) and values (erdos_renyi->er, cn->sf, etc.)
  • Extend key normalization: ExperimentConfig.from_dict() now handles all legacy key/value variants automatically on load
  • Cleanup: Delete speculative docs/gpu_integration_plan.md, update architecture and usage docs

Commits

  1. chore: clean up artifacts and extend .gitignore
  2. feat(web): add --verbose debug logging, fix headless mode and experiment loading
  3. feat(cli): add experiments --doctor with resilient legacy key normalization

Test plan

  • pytest tests/ --ignore=tests/e2e - all pass
  • spkmc experiments --doctor fixes legacy data.json files
  • Running --doctor twice is idempotent (second run reports all OK)
  • Pre-commit hooks (black, isort, flake8, mypy) pass
  • CI green

…ent loading

- Add structured logging module (spkmc/web/logging.py) with --verbose support
- Fix headless mode for non-interactive environments
- Fix experiment auto-loading on dashboard
- Stop silently swallowing experiment loading errors in ExperimentManager
- Update architecture and usage docs
…zation

Add --doctor flag to scan and fix legacy data.json files in-place.
Extend ExperimentConfig.from_dict() to normalize both legacy keys
(network_type, network_size, N, time_max, time_points) and legacy
network type values (erdos_renyi, cn, scale_free, complete_graph, etc.)
to current short codes (er, sf, cg, rrn). Case-insensitive.

Doctor validates fixed data before writing and is idempotent.
@mcaxtr mcaxtr force-pushed the fix/web-verbose-and-cleanup branch from 2504346 to c56cec5 Compare February 24, 2026 14:50
@mcaxtr mcaxtr changed the title fix(web): headless mode, experiment auto-loading, verbose debug logging fix(web): verbose logging, experiment loading fixes, and --doctor command Feb 24, 2026
@mcaxtr mcaxtr merged commit 32a59bd into main Feb 24, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant