asepharyana
017656d97b
feat: update models to claude-opus-5/sonnet-5/haiku-4-5-20251001 (tested live on 9router)
...
- PRIMARY: openai/claude-opus-5 (was openai/claude-opus-4-8)
- FALLBACKS: added openai/claude-sonnet-5, openai/claude-haiku-4-5-20251001
- Verified all three return valid responses via raw HTTP to 9router
- Updated run_server.py, health-check.py, setup_all.py
2026-08-20 11:30:10 +07:00
asepharyana
407819b647
fix: parse PR-Agent analytics record-wrapped JSON format
...
Real PR-Agent analytics logs wrap fields under 'record': {...}. The parser
now unwraps that before extracting command/pr_url/message/level, so
/api/analytics and /api/metrics show real data (verified with actual format
from production logs).
2026-08-04 11:43:13 +07:00
asepharyana
690f96aacb
feat: add health watchdog, key auto-sync, analytics, Discord notifications, trivial-PR merge
...
- health-check.py: model health watchdog (silent when healthy, alert on 2+
consecutive failures) — catches stale-key/model-breakage like 2026-08-04
- sync-key.py: systemd ExecStartPre syncs 9router key from BWS to disk,
prevents silent 401s after key rotation
- run_server.py: CONFIG__ANALYTICS_FOLDER + /api/metrics (Prometheus) +
/api/analytics (JSON) + /api/v1/notify_review (Discord webhook)
- trivial_merge.py: trivial-PR fast-path (docs/deps/tiny diffs) approve+merge
- auto_merge_bot.py: Discord notifications on merge, trivial integration
- flake.nix: ship pr-agent-sync-key + pr-agent-health-check binaries
2026-08-04 11:39:29 +07:00
asepharyana
06f3314819
fix: replace broken openai/auto fallback models with working 9router aliases
...
openai/auto/best-coding and openai/auto/claude-sonnet return
'No active credentials for provider: auto' on 9router (broken upstream
key). Primary openai/claude-opus-4-8 + fallbacks now all verified
working via litellm against 9router.asepharyana.my.id.
2026-08-04 10:17:29 +07:00
MythEclipse
163a1ef7ab
feat: PR-Agent GitHub App server — sanitized source + Nix flake + CI deploy
2026-07-31 09:35:03 +07:00