ejclaw
8b9bebd29e
refactor: complete config unification and split db helpers
2026-04-08 19:05:19 +09:00
ejclaw
4650abbd10
Rename readonly reviewer runtime remnants
2026-04-06 17:27:16 +09:00
ejclaw
994e957767
Enable unsafe host paired runtime
2026-04-06 02:40:15 +09:00
Eyejoker
e9c400424d
Add reviewer host evidence and verification shims
2026-04-04 20:51:24 +09:00
Eyejoker
54abb5bb4e
Apply formatter after local memory refactor
2026-04-04 03:52:28 +09:00
Eyejoker
3dd772c229
Refactor local memory and role-fixed runtime routing
2026-04-04 03:50:28 +09:00
Eyejoker
509e4c24a3
refactor: cut over room mode from paired legacy
2026-03-31 14:47:59 +09:00
Eyejoker
a043f2b79a
feat: implement MAGI 3-agent arbiter system for deadlock resolution
...
Introduces a third agent role (arbiter) that is summoned on-demand
when owner and reviewer reach a deadlock (same verdict 3+ rounds).
Architecture:
- 3 Discord bots: owner (codex), reviewer (claude), arbiter (claude/codex)
- Arbiter is NOT always-on — only invoked when deadlock detected
- Arbiter renders binding verdict: PROCEED/REVISE/RESET/ESCALATE
- Non-escalate verdicts reset round_trip_count and resume ping-pong
- Backward compatible: ARBITER_AGENT_TYPE unset = existing 2-agent mode
Changes across 13 source files + 7 test files:
- types.ts: PairedRoomRole += 'arbiter', new statuses, ArbiterVerdict type
- config.ts: ARBITER_AGENT_TYPE, ARBITER_SERVICE_ID, ARBITER_DEADLOCK_THRESHOLD
- db.ts: schema migration (arbiter columns in channel_owner + paired_tasks)
- service-routing.ts: arbiter_service_id in lease
- room-role-context.ts: arbiter role detection
- paired-execution-context.ts: deadlock->arbiter, verdict handling
- message-runtime.ts: arbiter turn routing, cursor, sender labeling
- message-agent-executor.ts: arbiter mode, failover
- agent-runner.ts + environment.ts: arbiter container mode
- platform-prompts.ts: arbiter prompt loading
New files:
- prompts/arbiter-paired-room.md: arbiter system prompt
- src/arbiter-context.ts: builds conversation context for arbiter judgment
2026-03-30 22:20:42 +09:00
Eyejoker
54fc67e283
test: align prompt and scheduler expectations
2026-03-30 03:55:58 +09:00
Eyejoker
772fea45df
refactor: share owner prompts and tighten silent output guidance
2026-03-28 07:46:13 +09:00
Eyejoker
e1fdc47552
style: sync pre-commit formatting fallout
2026-03-28 05:41:16 +09:00
Eyejoker
ba9f6871b6
feat: add codex review failover and suppress output hardening
2026-03-28 05:40:38 +09:00
Eyejoker
00ffde7623
fix: remove Codex API key auth path, add secret redaction and d7 auto-rotation
...
- Remove OPENAI_API_KEY from .env and Codex child process env to prevent
API billing when subscription quota is exhausted
- Remove writeCodexApiKeyAuth entirely — Codex now uses OAuth only
- Add 9-pattern secret redaction in formatOutbound() to prevent key leaks
- Fix Codex usage bucket aggregation: use 'codex' bucket only instead of
max across all buckets (bengalfox = Codex Spark, not needed)
- Add d7≥100% auto-rotation in updateCodexAccountUsage to skip exhausted
accounts and prevent API billing fallback
- Add findNextCodexAvailable that checks both rate-limits and d7 usage
- Clean stale apikey auth.json files from all session directories
- Update tests: OAuth-only auth, d7 auto-skip (3 new tests), dashboard
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-25 10:39:42 +09:00
Eyejoker
906a3dfadb
config: add auto-compact settings for Claude and Codex agents
...
Claude: CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=50 (~500K on 1M context)
Codex: model_auto_compact_token_limit=258000 (matching CLI default)
2026-03-25 03:56:03 +09:00
Eyejoker
8b2c46b89e
fix: harden agent shutdown and auth rotation
2026-03-24 17:08:48 +09:00