Spaces:
Running
Running
Commit History
Yesterday
-
Merge the Space's web-editor history into v3 (keep the v3 tree) Running
The Hugging Face Space received README, blog, uv.lock, scores.json and dashboard edits through the web editor (April-May 2026). v3 already contains that dashboard work and archives the blog in docs/blog-v2-hackathon.md, so the v3 files are kept unchanged; this records the Space's history so that pushing to it is a fast-forward. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01766oz3rCt9MnTWTMzSk7fR66135fe -
Make the tests independent of the checkout folder name
Unverified signaturepytest imported the repository root's __init__.py as a package named after the checkout folder. CI checks out into NexusGrid-CyberPhysEnv, which is not a valid module name, so every test failed to import there. Import tests by path (importlib mode, root on sys.path) and fall back to absolute imports in the root __init__.py when there is no parent package. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01766oz3rCt9MnTWTMzSk7fR00e8884 -
Merge GitHub history into v3 (keep the v3 tree)
The GitHub and Hugging Face histories diverged before v3. This records GitHub's main as a parent so both remotes fast-forward; the v3 files are kept unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01766oz3rCt9MnTWTMzSk7fRfb6bb2c -
Train and evaluate learned agents; one-click local GPU pipeline
Results on held-out seeds (tasks 1-5), all saved under results/: - Masked PPO: 0.917 from scratch, 0.986 behaviour cloning, 0.993 BC -> PPO. - Qwen3-1.7B (4-bit, LoRA) as a pure operator: 0.200 untrained, 0.515 after a supervised warm start on expert actions, 0.619 after GRPO, trained on one 8 GB RTX 4060 Laptop GPU. Training - train_grpo.py: supervised warm start, then GRPO on decisive states (expert action beats waiting); 8 samples per prompt, micro-batches of 4, VRAM cap and per-step cache clearing so Windows cannot spill into shared memory. - Compact text observation for small models (baseline 0.10 -> 0.20). - run_local_gpu.ps1 / .cmd: baseline eval, training, evaluation of both adapters; eval_llm_local.py gains --label. - Black start pays the remaining in-band bonus on early completion. Docs - README results for PPO and LLMs with analysis, SVG charts built by scripts/make_figures.py (no binary files), CHANGELOG. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.c…76c8761 -
NexusGrid v3: seeded scenarios, physics-based graders, baselines and training code
Environment - DC power flow per island (Kirchhoff B-matrix), primary frequency response, inertia, relay protection (3-tick and instant trips), UFLS and island collapse - Seeded scenario families per task with held-out evaluation seeds (>= 10000); Task 2 draws from a validated contingency catalog split 80/20 train/eval - Attack physics: phantom injection hides real generation loss behind falsified SCADA, forced oscillation grows until damped by a matched counter-signal - Hidden attack details never reach observations (debug_state() for observers) - New action shed_load; out-of-service lines cannot be re-closed - Dense reward = potential-based task progress + frequency/safety terms Grading - Rubrics redesigned so doing nothing or acting randomly scores low - Served-load gate stops "fixing" frequency by cutting customers Agents and tooling - policies.py: no-op, random and an observation-only expert (DC flow checks) - inference.py: pure LLM evaluation by default; fallback is opt-in…8ad4728 -
Dashboard rewrite and dashboard regression scripts (May 2026 work in progress)
Snapshot of the uncommitted local dashboard work before the v3 upgrade. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01766oz3rCt9MnTWTMzSk7fRbfc322c
-
Update server/dashboard.py
Verified signaturef33bec9 -
Update server/dashboard.py
Verified signature905f6cc -
Update server/dashboard.py
Verified signature0139fbc -
Update server/dashboard.py
Verified signature216853a
-
Update dashboard.py
Unverified signature339f220 -
Update server/dashboard.py
Verified signature6a88d8b
-
Create test_round2.py
Unverified signature3f5170d -
Implement tests for inference helper functions
Unverified signatureAdd unit tests for inference helpers including action parsing and fallback policies.a1e9300 -
Refactor tests for graders and add RewardCalculator test
Unverified signatureUpdated test cases for Phantom Injection and Stuxnet Resonance graders to reflect new scoring logic and added a new test for RewardCalculator.ffe399f -
Enhance API tests for health and WebSocket endpoints
Unverified signatureAdded tests for health endpoint, dashboard route, and WebSocket API.57fa4b2 -
Delete tests/__pycache__ directory
Unverified signature52c0818 -
Create uv.lock
Verified signaturefb410d2 -
Create scores.json
Verified signature7c72fee -
Bump version to 2.0.0 and adjust dependencies
Unverified signatureUpdated project version to 2.0.0 and modified dependencies.be063ae -
Revise NexusGrid-CyberPhysEnv OpenEnv specification
Unverified signatureUpdated the OpenEnv specification for NexusGrid-CyberPhysEnv, including version increment and enhanced task descriptions.04459c9 -
Update models.py
Unverified signature7dd6c19 -
Enhance inference.py with environment variable handling
Unverified signaturedbefe62 -
Fix import handling and update NexusgridEnv usage
Unverified signatureHandle ImportError for GridAction and GridObservation imports and update NexusgridEnv usage to sync method.39035ca -
Add blog post on NexusGrid-CyberPhysEnv development
Unverified signatureAdded a comprehensive blog post detailing the development and training of NexusGrid-CyberPhysEnv, an RL environment for simulating power grid cyber-physical attacks.bf7a612 -
Add .gitignore file to exclude unnecessary files
Unverified signature6d8a977 -
Update .dockerignore to exclude server_pid and tests
Unverified signatureddf48d4 -
Add TrainingLogger class for structured JSONL logging
Unverified signature9ae77a9 -
Add rubric evaluation and task specifications
Unverified signatureImplement composable task rubrics for NexusGrid scoring and training feedback.15600db -
Add fault isolation awarded flag to reward system
Unverified signature7249d0d -
Update nexusgrid_environment.py
Unverified signatureae70fe2 -
Add forced edge load management to grid engine
Unverified signature6f285c2 -
Refactor grading logic to use rubric evaluations
Unverified signature82c056b -
Implement compatibility mode for missing Plotly
Unverified signatureAdded compatibility mode for Gradio dashboard when Plotly is not available.34df84c -
Implement CurriculumManager for task scheduling
Unverified signaturef4f2501 -
Revise health check and add manifest endpoint
Unverified signatureUpdated health check endpoint to return 'healthy' status and added manifest endpoint.f38a0fb -
Update __init__.py
Unverified signature3aa2cf9 -
Delete server/__pycache__ directory
Unverified signature795eb20 -
Update README.md
Verified signaturee6dd0d2
-
Upload blog.md
Verified signature362b9ea
-
Add manifest.json endpoint, update dashboard and app
74965f9
-
Update openenv.yaml
Unverified signaturef3671a2 -
Update inference.py
Unverified signature2b67cd8 -
Update inference.py
Unverified signature56e261d -
Update inference.py
Unverified signature8ec93a7 -
Update inference.py
Unverified signature452083d -
Trigger rebuild
8891825 -
Trigger rebuild
6813794 -
OpenEnv Hackathon Final Submission
e0e7c18 -
OpenEnv Hackathon Final Submission
8f9a9a7