Eyejoker
807828e0ce
fix: drain sdk follow-up turns ( #219 )
2026-06-03 17:58:24 +08:00
ejclaw
e20cd2f1b0
fix: treat human-interrupted paired runs as preempted
2026-05-26 03:25:38 +09:00
ejclaw
db5332e81a
fix: refresh role rules after compaction
2026-05-25 22:57:52 +09:00
ejclaw
fe9d265c66
paired: repair safe owner workspace branch mismatches
2026-04-11 08:45:47 +09:00
ejclaw
c6b86f6dac
runtime: split message agent executor lifecycle
2026-04-11 06:06:02 +09:00
ejclaw
d8b34db92c
fix: persist direct terminal verdicts for paired reviewers
2026-04-10 23:41:41 +09:00
ejclaw
4e05f60400
refactor: land approved runtime cleanup and room binding cutover
2026-04-10 21:04:23 +09:00
ejclaw
2e62e125ae
Audit outbound delivery and fix reviewer turn routing
2026-04-10 15:22:45 +09:00
ejclaw
c67bd1c622
Finalize turn-role invariants and legacy migration cutover
2026-04-10 11:44:34 +09:00
ejclaw
e1837759c0
Format runtime refactor modules
2026-04-07 23:46:36 +09:00
ejclaw
f9d9c2af6d
Refactor paired runtime orchestration
2026-04-07 23:45:53 +09:00
ejclaw
7ad4586985
Restore reviewer wake-up after owner delivery
2026-04-07 18:39:00 +09:00
ejclaw
363b1d408b
Fix paired owner completion handoff race
2026-04-07 17:55:50 +09:00
ejclaw
75066f345d
Deduplicate paired reviewer handoffs
2026-04-07 08:07:25 +09:00
ejclaw
10e10b499c
Complete paired-room SSOT cleanup and logger singleton
2026-04-07 05:12:22 +09:00
ejclaw
ae12b157be
Persist paired turn output before final delivery
2026-04-07 03:38:16 +09:00
ejclaw
58b20fad6c
Format retry transition refactor files
2026-04-07 02:50:08 +09:00
ejclaw
b8e8c9dabf
Unify paired status transitions and retry handling
2026-04-07 02:49:02 +09:00
ejclaw
9d8c97a8e2
Fix reviewer-to-owner follow-up race
2026-04-07 01:22:27 +09:00
ejclaw
48592d97ed
Format paired execution refactor files
2026-04-07 00:45:55 +09:00
ejclaw
cbb6bc97c7
Refactor paired execution flow boundaries
2026-04-07 00:45:17 +09:00
ejclaw
f7aeac99c8
Format routing simplification files
2026-04-06 22:45:04 +09:00
ejclaw
b62eebc25b
Simplify paired turn routing and prompt builders
2026-04-06 22:44:38 +09:00
ejclaw
7612b2c4cc
Format retry rule refactor files
2026-04-06 20:38:38 +09:00
ejclaw
83c45c3ce3
Extract executor retry decision rules
2026-04-06 20:38:10 +09:00
ejclaw
a3dac2b983
Extract paired turn fallback planning
2026-04-06 19:53:26 +09:00
ejclaw
5b832042da
Format files touched by executor refactor
2026-04-06 19:40:36 +09:00
ejclaw
8daa3d4779
Refactor agent executor retry and follow-up flow
2026-04-06 19:39:56 +09:00
ejclaw
4650abbd10
Rename readonly reviewer runtime remnants
2026-04-06 17:27:16 +09:00
ejclaw
bf55ad65fd
Format files touched by reviewer runtime cleanup
2026-04-06 07:56:59 +09:00
ejclaw
d75d26c23d
Stabilize paired reviewer recovery and owner follow-up
2026-04-06 07:49:26 +09:00
ejclaw
2983e0501c
Serialize merge-ready owner finalize handoff
2026-04-05 20:11:14 +09:00
Eyejoker
9ff8024bf5
fix: clear container SDK sessions on stale session recovery
2026-04-04 22:06:23 +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
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
c76126bd58
refactor: replace Memento MCP with local memory
2026-03-31 23:22:50 +09:00
Eyejoker
141898f764
refactor: scope runtime log context
2026-03-31 17:23:43 +09:00
Eyejoker
1c87616c44
fix: support same-service tribunal runtime
2026-03-31 14:01:31 +09:00
Eyejoker
7f8a361f24
refactor: wire role agent plan into runtime
2026-03-31 09:41:40 +09:00
Eyejoker
196c453ccf
fix: skip enqueueMessageCheck when task is already completed (ESCALATE/done)
2026-03-31 04:59:27 +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
7085711a7f
feat: auto-notify user on paired task completion with @mention
...
- done → ✅ 작업 완료
- escalated → ⚠️ 자동 해결 불가
- arbiter_escalated → ⚠️ 중재자: 사람 개입 필요
- stopped → no notification (user initiated)
2026-03-31 04:29:24 +09:00
Eyejoker
60408cc1fa
fix: arbiter session collision — separate session folder + always fresh session
...
- resolveSessionFolder now always returns unique folder for arbiter
(prevents sharing session with owner when both use same agent type)
- Arbiter sessionId forced to undefined to prevent resume attempts
2026-03-31 04:26:48 +09:00
Eyejoker
efb5710aad
feat: Discord-independent inter-agent communication via paired_turn_outputs
...
- New paired_turn_outputs table stores agent output directly in DB
- Owner/reviewer prompts assembled from DB instead of Discord messages
- Arbiter context includes human messages + turn outputs
- Falls back to Discord messages for pre-migration tasks
- 50k char storage limit with truncation warning
2026-03-31 03:38:53 +09:00
Eyejoker
dddf18428e
fix: /stop leaves stale paired task, sawOutput guard, progress text overwrite
...
- /stop now resets the active paired task to completed so the next
user message routes to the owner instead of the stuck reviewer
- Owner completion with sawOutput=false (e.g. interrupted by /stop)
no longer auto-triggers the reviewer — treated as interrupted
- Clear pendingProgressText when intermediate updates arrive on an
existing progress message, preventing flushPendingProgress from
overwriting latestProgressText with stale buffered content
2026-03-31 02:54:04 +09:00
Eyejoker
f98dd27712
refactor: MoA uses lightweight API references + SDK arbiter as aggregator
...
Instead of spawning separate processes or using OpenRouter, MoA now:
- Queries external API models (Kimi, GLM) in parallel for opinions
- Injects opinions into the SDK arbiter's prompt
- The existing subscription-based arbiter aggregates all perspectives
No extra SDK processes, no OpenRouter dependency. Per-model config via
MOA_REF_MODELS + MOA_{NAME}_MODEL/BASE_URL/API_KEY env vars.
2026-03-31 00:26:24 +09:00
Eyejoker
f4b04d6c4d
feat: add Mixture of Agents (MoA) for arbiter verdicts
...
When MOA_ENABLED=true, arbiter queries multiple LLM models in parallel
via OpenAI-compatible API, then an aggregator model synthesizes the
final verdict from all opinions. Falls back to single-agent arbiter
when MoA is disabled.
Config: MOA_BASE_URL, MOA_API_KEY, MOA_REFERENCE_MODELS, MOA_AGGREGATOR_MODEL
2026-03-31 00:20:41 +09:00
Eyejoker
3e2954ebcf
refactor: extract resolveEffectiveAgentType/resolveSessionFolder as SSOT, deduplicate CONTAINER_IMAGE
2026-03-30 23:44:49 +09:00