Codex
1509108e04
backup current stable ejclaw state
2026-05-27 10:53:31 +09:00
ejclaw
83b7aef494
Add structured Discord attachments
2026-04-25 09:21:47 +09:00
ejclaw
9ef79e3828
Add STEP_DONE guards, verdict storage, and stale delivery suppression
2026-04-23 15:28:42 +09:00
ejclaw
b6a24ad9fb
paired: carry forward latest owner final across superseded tasks
2026-04-20 08:19:31 +09:00
ejclaw
a59813dee6
feat: support room-level reviewer and arbiter agent selection
2026-04-15 23:47:46 +09:00
ejclaw
30dda74621
setup: narrow legacy room registration surface
2026-04-11 05:28:26 +09:00
ejclaw
921c241873
refactor: finish legacy room cleanup and explicit migration boundary
2026-04-10 23:15:02 +09:00
ejclaw
e5bd721ac4
refactor: remove legacy config and state aliases (PR5)
2026-04-10 22:09:04 +09:00
ejclaw
644b38f2f6
refactor: remove read-time repair from canonical hydrate paths
2026-04-10 21:18:47 +09:00
ejclaw
4e05f60400
refactor: land approved runtime cleanup and room binding cutover
2026-04-10 21:04:23 +09:00
ejclaw
ce3854745d
Backfill paired agent metadata for raw service ids
2026-04-10 16:20:23 +09:00
ejclaw
c67bd1c622
Finalize turn-role invariants and legacy migration cutover
2026-04-10 11:44:34 +09:00
ejclaw
7753ee46f0
style: apply prettier formatting
2026-04-09 22:50:21 +09:00
ejclaw
5714348897
fix: simplify and stabilize runtime service routing
2026-04-09 22:49:20 +09:00
ejclaw
e7a7b538b2
style: apply prettier formatting
2026-04-09 09:41:53 +09:00
ejclaw
b0f51b0366
refactor: complete room registration ssot cleanup
2026-04-09 09:41:19 +09:00
ejclaw
e4ec22b35b
refactor: split paired db helpers
2026-04-08 21:09:24 +09:00
ejclaw
1fedd36ec7
style: apply prettier formatting
2026-04-08 19:20:22 +09:00
ejclaw
8b9bebd29e
refactor: complete config unification and split db helpers
2026-04-08 19:05:19 +09:00
Eyejoker
dfd9eb0f47
fix: recover fallback delivery retries across agent types
2026-04-04 05:21:25 +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
60f360b5ea
fix: preserve handoff roles during failover
2026-04-01 02:54:35 +09:00
Eyejoker
a955964522
feat: add memory selection and TTL decay
2026-04-01 00:48:40 +09:00
Eyejoker
42ed5ef113
feat: add local SQLite memory store
2026-03-31 23:22:46 +09:00
Eyejoker
e730fea230
refactor: prefer room_settings over registered_groups in runtime reads
2026-03-31 22:35:50 +09:00
Eyejoker
1f1842773e
refactor: internalize setRegisteredGroup export
2026-03-31 22:35:50 +09:00
Eyejoker
2070e0391f
refactor: remove register_group legacy surface
2026-03-31 21:59:01 +09:00
Eyejoker
b9538e54bc
feat: add room-level assignment write path
2026-03-31 21:21:57 +09:00
Eyejoker
fc4eaefeda
feat: backfill room-level settings snapshot
2026-03-31 20:39:45 +09:00
Eyejoker
0a41d9ea3b
refactor: remove paired room legacy helper
2026-03-31 20:18:37 +09:00
Eyejoker
509e4c24a3
refactor: cut over room mode from paired legacy
2026-03-31 14:47:59 +09:00
Eyejoker
356cf2fa99
style: apply prettier formatting
2026-03-31 14:02:01 +09:00
Eyejoker
1c87616c44
fix: support same-service tribunal runtime
2026-03-31 14:01:31 +09:00
Eyejoker
236f7c2fea
fix: gate paired runtime on dual registrations
2026-03-31 12:14:24 +09:00
Eyejoker
89335ab005
refactor: drive paired routing from room mode
2026-03-31 12:10:00 +09:00
Eyejoker
99fe4243bf
refactor: add explicit room mode ssot helpers
2026-03-31 08:15:47 +09:00
Eyejoker
e1b9501e87
feat: add completion_reason to paired_tasks (done/escalated/stopped/arbiter_escalated)
...
- owner can summon arbiter via BLOCKED/NEEDS_CONTEXT verdict
- completion_reason tracks why task ended: done (success), escalated
(reviewer gave up), stopped (/stop), arbiter_escalated
2026-03-31 04:10:33 +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
5b8c198e6b
fix: remove agent_type filter from getDueTasks for unified service
2026-03-30 03:01:36 +09:00
Eyejoker
9e0de1297c
fix: /clear now resets both owner and reviewer sessions in paired rooms
2026-03-29 19:00:42 +09:00
Eyejoker
a1e5418a2f
feat: auto-trigger reviewer after owner completion with round trip limit
...
- Owner finishes → auto mark review_ready → reviewer executes
- Reviewer finishes → task back to active → owner can respond
- Automatic ping-pong until consensus or round trip limit
- PAIRED_MAX_ROUND_TRIPS env var (default 10, 0 = unlimited)
- round_trip_count tracked per task in DB
2026-03-29 18:57:16 +09:00
Eyejoker
d01f98bd61
feat: unify 3 bot services into single process
...
- Add UNIFIED_MODE flag (default on, disable with UNIFIED_MODE=0)
- Register all 3 Discord bots in one process (claude, codex, review)
- Load all registered groups regardless of agent_type (codex/owner priority)
- Start credential proxy and container cleanup at unified startup
- shouldServiceProcessChat returns true in unified mode
- Add findChannelByName for role-based response routing
- Backward compatible: UNIFIED_MODE=0 restores per-service behavior
2026-03-29 18:37:17 +09:00
Eyejoker
fc9f2867b9
refactor: simplify paired review system and add reviewer container isolation
...
Phase 1 — Strip over-engineering (-3,665 lines):
- DB tables: 7 → 3 (remove executions, approvals, artifacts, events)
- Task statuses: 11 → 5 (active, review_ready, in_review, merge_ready, completed)
- Remove plan governance, event sourcing, gate/verdict, freshness guards
- paired-execution-context: 980 → 299 lines
- Session commands: remove /risk, /plan, /approve-plan, /request-plan-changes
Phase 2 — Container isolation for reviewers:
- Add container-runtime.ts (Docker abstraction)
- Add credential-proxy.ts (API key injection without container exposure)
- Add container-runner.ts (reviewer-specific read-only mount + tmpfs)
- Add container/Dockerfile + agent-runner (Chromium, Claude Code, Codex)
- agent-runner.ts: auto-route reviewer execution to container mode
2026-03-29 18:24:56 +09:00
Eyejoker
0e12a560a4
feat: finalize paired tasks on deploy completion
2026-03-29 06:42:03 +09:00
Eyejoker
dad6f50937
feat: enforce paired reviewer gate verdicts
2026-03-29 06:03:45 +09:00
Eyejoker
bb30330c66
feat: add paired execution freshness guard
2026-03-29 04:37:42 +09:00
Eyejoker
d460933229
feat: add paired intent checkpoints
2026-03-29 03:34:55 +09:00
Eyejoker
c76ed1d10a
fix: reconcile governance scaffold follow-up
2026-03-29 01:38:30 +09:00
Eyejoker
dc8dd98e84
feat: scaffold paired governance state
2026-03-29 01:35:57 +09:00