Eyejoker
7c9050ba9f
fix: only inject matching model env vars for container agent type
...
When codex runs in container, skip CLAUDE_MODEL/EFFORT to prevent
'claude-opus-4-6 not supported with ChatGPT account' errors.
2026-04-01 05:18:10 +09:00
Eyejoker
5420fa2ee8
fix: handoff to codex on persistent session failure
...
When Claude reviewer hits retryable session failure twice, hand off
to codex instead of silently failing. Adds 'session-failure' to
AgentTriggerReason and shouldHandoffToCodex check.
2026-04-01 05:15:24 +09:00
Eyejoker
f4410be779
fix: show only fallback model when failover is active
2026-04-01 05:04:04 +09:00
Eyejoker
5a109e3717
feat: show fallback model in status dashboard
...
When global failover is active, claude-code roles now display
the fallback model inline: `claude-opus-4-6 (fallback → codex)`
2026-04-01 05:03:29 +09:00
Eyejoker
6e81bdc215
fix: mount codex OAuth credentials into reviewer container
...
Mount host's ~/.codex (read-only) into container so codex-runner
can authenticate via ChatGPT OAuth. Set CODEX_HOME env on exec.
2026-04-01 05:01:44 +09:00
Eyejoker
f5de14680b
docs: remove bot names from role table
2026-04-01 04:57:07 +09:00
Eyejoker
14c8608f93
docs: move architecture and configuration details to docs/
...
- docs/architecture.md — data flow, room model, tribunal flow, container isolation, key files
- docs/configuration.md — full .env reference, debugging paths
- README links to docs/
2026-04-01 04:56:06 +09:00
Eyejoker
527ce08eee
docs: slim README to landing page format
...
Remove internal architecture details, full .env examples, and
room assignment model. Keep role overview, tribunal flow, key
features, and quick start.
2026-04-01 04:54:07 +09:00
Eyejoker
404cbd6b04
feat: support codex runner in reviewer container
...
- Build both agent-runner and codex-runner into container image
- Select runner path based on group.agentType at docker exec time
- Update README to role-centric overview, generic MoA references
- Add MoA reference opinions guidance to arbiter prompt
2026-04-01 04:50:05 +09:00
Eyejoker
73156bf375
fix: only count final-phase output as visible for handoff decisions
...
Progress messages (phase: 'progress') were setting sawVisibleOutput=true,
which blocked failover handoffs when Claude usage was exhausted. Now only
final-phase output counts as visible, allowing reviewer handoff to codex
even after progress messages were shown.
2026-04-01 04:18:15 +09:00
Eyejoker
cb0d294941
feat: honor handoff agent type + local memory store
...
- fix: pass forcedRole/forcedAgentType through handoff execution chain
so reviewer failover actually runs codex instead of retrying Claude
- fix: preserve intended_role in service handoff records
- feat: replace Memento MCP with local SQLite memory store
- feat: add memory selection with TTL decay
2026-04-01 03:59:47 +09:00
Eyejoker
ca58e8c8eb
fix: honor handoff agent type during failover
2026-04-01 03:13:05 +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
c76126bd58
refactor: replace Memento MCP with local memory
2026-03-31 23:22:50 +09:00
Eyejoker
42ed5ef113
feat: add local SQLite memory store
2026-03-31 23:22:46 +09:00
Eyejoker
0bcfcb27fe
Merge branch 'codex/room-settings-followups'
2026-03-31 22:36:42 +09:00
Eyejoker
1c287f4ad0
docs: update README with room assignment model
2026-03-31 22:35:50 +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
85cbce555a
docs: update README with room assignment model
2026-03-31 22:27:43 +09:00
Eyejoker
c590fdaaa3
refactor: prefer room_settings over registered_groups in runtime reads
2026-03-31 22:27:36 +09:00
Eyejoker
35a59218d5
refactor: internalize setRegisteredGroup export
2026-03-31 22:27:17 +09:00
Eyejoker
6b7367c072
Merge branch 'codex/remove-register-group-legacy'
2026-03-31 21:59:15 +09:00
Eyejoker
2070e0391f
refactor: remove register_group legacy surface
2026-03-31 21:59:01 +09:00
Eyejoker
a2d4651a82
Merge branch 'codex/assign-room-write-path'
2026-03-31 21:24:23 +09:00
Eyejoker
b9538e54bc
feat: add room-level assignment write path
2026-03-31 21:21:57 +09:00
Eyejoker
35d1c57267
Merge branch 'codex/room-settings-ssot'
2026-03-31 20:54:51 +09:00
Eyejoker
200cbef0f9
Merge branch 'codex/room-settings-ssot'
2026-03-31 20:53:23 +09:00
Eyejoker
1fccc37fe8
refactor: read default room owner from room settings
2026-03-31 20:48:30 +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
141898f764
refactor: scope runtime log context
2026-03-31 17:23:43 +09:00
Eyejoker
c2ef6572fd
Merge branch 'codex/room-mode-legacy-cutover'
2026-03-31 14:57:12 +09:00
Eyejoker
509e4c24a3
refactor: cut over room mode from paired legacy
2026-03-31 14:47:59 +09:00
Eyejoker
f04e5d06b3
test: align paired prompt expectation with AGENT_LANGUAGE
2026-03-31 14:13:43 +09:00
Eyejoker
2107e033b7
Merge branch 'codex/room-mode-paired-source'
2026-03-31 14:12:44 +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
757e33c58e
fix: prevent DONE↔DONE infinite loop and add AGENT_LANGUAGE setting
...
- Fix source_ref mismatch: update to workspace HEAD on first owner run
so change detection compares against the correct repo
- Treat hasNewChanges === null as "no changes" at finalize to prevent
infinite re-review when source_ref is unresolvable
- Add AGENT_LANGUAGE env var: when set, appends language instruction to
all paired room prompts (owner, reviewer, arbiter)
2026-03-31 13:55:41 +09:00
Eyejoker
47d532e869
fix: sync refreshed OAuth tokens to process.env for container exec
...
Token refresh updated internal array and .env file but not process.env,
so docker exec -e kept injecting the stale startup token. Now syncs
to process.env after refresh. Container kill on refresh is no longer
needed since docker exec picks up the latest token each turn.
2026-03-31 13:34:23 +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
bfe164dece
style: format role plan runtime imports
2026-03-31 09:41:40 +09:00
Eyejoker
7f8a361f24
refactor: wire role agent plan into runtime
2026-03-31 09:41:40 +09:00
Eyejoker
a39dad4c8c
refactor: add role agent plan ssot
2026-03-31 09:41:40 +09:00
Eyejoker
dd28ac6223
fix: fallback to proceed on unrecognized arbiter verdict
...
Previously unknown verdicts caused arbiter_escalated (task terminated).
Now falls back to proceed so the loop continues — a parse failure
should not kill the task.
2026-03-31 09:03:20 +09:00
Eyejoker
94184c137d
fix: parse arbiter verdict with optional VERDICT: prefix
...
Codex arbiter sometimes outputs "VERDICT: PROCEED" instead of
"PROCEED". The regex now handles optional "VERDICT:" prefix,
preventing unknown verdict → false arbiter_escalated.
2026-03-31 08:51:01 +09:00
Eyejoker
33dd8ea54a
style: format room mode helpers
2026-03-31 08:15:47 +09:00
Eyejoker
99fe4243bf
refactor: add explicit room mode ssot helpers
2026-03-31 08:15:47 +09:00