Commit Graph

741 Commits

Author SHA1 Message Date
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
Eyejoker
4aef48f3ba fix: fallback to default arbiter_service_id in explicit channel leases
Explicit leases created by failover didn't include arbiter_service_id,
causing arbiter verdict to never be saved (pairedExecutionContext was
undefined). Now falls back to ARBITER_SERVICE_ID from config when the
stored lease has null arbiter_service_id.
2026-03-31 07:45:52 +09:00
Eyejoker
aad1e93df5 refactor: separate scheduler tick execution path 2026-03-31 07:26:21 +09:00
Eyejoker
ca48e94291 refactor: centralize group queue phase transitions 2026-03-31 07:19:27 +09:00
Eyejoker
b9541a7c5b refactor: extract verify state helpers 2026-03-31 06:54:49 +09:00
Eyejoker
30f19f994b refactor: split setup service rendering and verify probes 2026-03-31 06:54:49 +09:00
Eyejoker
4ac2b9066b fix: auto-retry Codex turn once on interrupted status
When the Codex SDK returns 'interrupted' (API-side timeout/disconnect),
retry the turn once before reporting failure. Prevents unnecessary
"요청을 완료하지 못했습니다" messages for transient issues.
2026-03-31 06:48:07 +09:00
Eyejoker
4003988ff4 refactor: make service defs the setup SSOT 2026-03-31 06:20:15 +09:00
Eyejoker
4bfd3f363f refactor: extract pure builders for SSOT tests 2026-03-31 06:12:20 +09:00
Eyejoker
650ed16a7b fix: strengthen arbiter ESCALATE guidance to prevent echo loops
Arbiter was repeating PROCEED when owner needed user input (e.g.,
"PR 만들까요?"), causing infinite owner↔arbiter loops. Added
specific ESCALATE triggers: user-directed questions, repeated
NEEDS_CONTEXT after prior PROCEED.
2026-03-31 06:03:11 +09:00
Eyejoker
4fcec1ef47 refactor: extract runtime PATH env builder for SSOT 2026-03-31 05:52:19 +09:00
Eyejoker
a81e5aea63 style: format pending paired turn helpers 2026-03-31 05:43:54 +09:00
Eyejoker
43f8341c17 refactor: extract pending paired turn helpers 2026-03-31 05:43:17 +09:00
Eyejoker
4fc7a88e86 chore: make deploy fast-forward only 2026-03-31 05:30:33 +09:00
Eyejoker
189c8795a1 fix: wire stack restart to TypeScript entrypoint 2026-03-31 05:25:50 +09:00
Eyejoker
648457d717 chore: remove nanoclaw legacy skills and scripts
Remove 9 inherited skills (Qodo, update-ejclaw, add-* addons,
update-skills) and restart-ejclaw-stack.sh that came from the
nanoclaw fork and are no longer used.
2026-03-31 05:16:48 +09:00
Eyejoker
060818c914 chore: simplify package scripts (remove duplicates, logical ordering) 2026-03-31 05:07:32 +09:00
Eyejoker
fc21804bf1 chore: add build:all and deploy scripts, remove hardcoded server details from docs 2026-03-31 05:05:33 +09:00
Eyejoker
8360812e1d fix: align ContentBlock media_type with SDK 0.2.87 literal union type 2026-03-31 05:01:21 +09:00
Eyejoker
196c453ccf fix: skip enqueueMessageCheck when task is already completed (ESCALATE/done) 2026-03-31 04:59:27 +09:00
Eyejoker
636c54702a fix: prevent ESCALATE → new task loop (only create tasks on human messages) 2026-03-31 04:58:26 +09:00
Eyejoker
2753849343 chore: update Claude Agent SDK 0.2.87, Codex SDK 0.117.0 2026-03-31 04:47:42 +09:00
Eyejoker
9311cb9ebc docs: update README — role-based description, version badge, architecture diagram with direct channel 2026-03-31 04:45:46 +09:00
Eyejoker
3283522be5 feat: enrich finalize prompts and raise round-trip default 2026-03-31 04:40:56 +09:00
Eyejoker
c2351a4bb9 docs: update README for v0.1.0 (owner arbiter, auto notify, loop protection, Discord-independent comm) 2026-03-31 04:32:49 +09:00
Eyejoker
d0416489c5 fix: escalate finalize blockers without reviewer bounce 2026-03-31 04:32:10 +09:00