- Add auto-submit to run_episode_with_actions so short non-terminal
plans always include terminal reward terms
- Replace `float(obs.reward or 0.0)` with explicit None check to
match notebook semantics
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: robust JSON array extraction and notebook GRPO fixes
Replace greedy regex with balanced-bracket parser that skips prose
fragments like [draft] and only returns candidates that decode as
valid JSON arrays. Also updates the notebook with:
- single environment_reward_fn (drop redundant format_reward_fn)
- auto-submit for short non-terminal plans so terminal reward fires
- same robust _extract_json_array parser as the packaged module
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat: add reward and verifier monitoring telemetry