- enforcePolicy: respect KEEP_OPEN when model is confident and
pre_score is low. Only promote to MANUAL_REVIEW when model suggests
resolution or pre_score has hard signals
- Truncate user messages to 24k chars (issue body capped at 4k) to
stay within GitHub Models 8000 token input limit
- Upgrade model from gpt-4o-mini to gpt-4o for better classification
- Add retry loop with backoff on 429 responses (up to 5 retries)
- Respect Retry-After header from GitHub Models API
- Replace stub callGitHubModel() with real GitHub Models API call
using gpt-4o-mini with structured JSON output
- Build detailed user messages from issue body, comments, and timeline
- Add per-issue decision logging to classify step
- Upload candidates.json and decisions.json as workflow artifacts