mirror of
https://github.com/shareAI-lab/analysis_claude_code.git
synced 2026-08-06 03:53:37 +08:00
Merge pull request #431 from Bill-Billion/fix_374_idle_poll
s17: remove redundant idle_poll agent_name parameter and sync READMEs
This commit is contained in:
@@ -42,13 +42,13 @@ After completing a task, the teammate doesn't exit. It enters the IDLE phase —
|
||||
IDLE_POLL_INTERVAL = 5 # seconds
|
||||
IDLE_TIMEOUT = 60 # seconds
|
||||
|
||||
def idle_poll(agent_name, messages, name, role) -> str:
|
||||
def idle_poll(name, messages, role) -> str:
|
||||
"""Return 'work', 'shutdown', or 'timeout'."""
|
||||
for _ in range(IDLE_TIMEOUT // IDLE_POLL_INTERVAL):
|
||||
time.sleep(IDLE_POLL_INTERVAL)
|
||||
|
||||
# ① Check inbox (priority)
|
||||
inbox = BUS.read_inbox(agent_name)
|
||||
inbox = BUS.read_inbox(name)
|
||||
if inbox:
|
||||
# shutdown_request handled immediately
|
||||
for msg in inbox:
|
||||
@@ -63,7 +63,7 @@ def idle_poll(agent_name, messages, name, role) -> str:
|
||||
unclaimed = scan_unclaimed_tasks()
|
||||
if unclaimed:
|
||||
task = unclaimed[0]
|
||||
result = claim_task(task["id"], agent_name)
|
||||
result = claim_task(task["id"], name)
|
||||
if "Claimed" in result:
|
||||
messages.append(...)
|
||||
return "work"
|
||||
@@ -126,7 +126,7 @@ while True:
|
||||
break # WORK phase ends
|
||||
|
||||
# IDLE phase
|
||||
idle_result = idle_poll(name, messages, name, role)
|
||||
idle_result = idle_poll(name, messages, role)
|
||||
if idle_result == "shutdown":
|
||||
break
|
||||
if idle_result == "timeout":
|
||||
@@ -268,4 +268,4 @@ Teaching version's `idle_poll()` merges CC's four mechanisms into one polling fu
|
||||
|
||||
</details>
|
||||
|
||||
<!-- translation-sync: zh@v1, en@v1, ja@v1 -->
|
||||
<!-- translation-sync: zh@v2, en@v2, ja@v2 -->
|
||||
|
||||
@@ -42,13 +42,13 @@ S16 の教学版 MessageBus とプロトコルツールを踏襲。本章の追
|
||||
IDLE_POLL_INTERVAL = 5 # seconds
|
||||
IDLE_TIMEOUT = 60 # seconds
|
||||
|
||||
def idle_poll(agent_name, messages, name, role) -> str:
|
||||
def idle_poll(name, messages, role) -> str:
|
||||
"""Return 'work', 'shutdown', or 'timeout'."""
|
||||
for _ in range(IDLE_TIMEOUT // IDLE_POLL_INTERVAL):
|
||||
time.sleep(IDLE_POLL_INTERVAL)
|
||||
|
||||
# ① 受信箱確認(優先)
|
||||
inbox = BUS.read_inbox(agent_name)
|
||||
inbox = BUS.read_inbox(name)
|
||||
if inbox:
|
||||
# shutdown_request は即座に処理
|
||||
for msg in inbox:
|
||||
@@ -63,7 +63,7 @@ def idle_poll(agent_name, messages, name, role) -> str:
|
||||
unclaimed = scan_unclaimed_tasks()
|
||||
if unclaimed:
|
||||
task = unclaimed[0]
|
||||
result = claim_task(task["id"], agent_name)
|
||||
result = claim_task(task["id"], name)
|
||||
if "Claimed" in result:
|
||||
messages.append(...)
|
||||
return "work"
|
||||
@@ -126,7 +126,7 @@ while True:
|
||||
break # WORK フェーズ終了
|
||||
|
||||
# IDLE フェーズ
|
||||
idle_result = idle_poll(name, messages, name, role)
|
||||
idle_result = idle_poll(name, messages, role)
|
||||
if idle_result == "shutdown":
|
||||
break
|
||||
if idle_result == "timeout":
|
||||
@@ -268,4 +268,4 @@ s18 Worktree Isolation → 各タスクに専用の作業ディレクトリ、
|
||||
|
||||
</details>
|
||||
|
||||
<!-- translation-sync: zh@v1, en@v1, ja@v1 -->
|
||||
<!-- translation-sync: zh@v2, en@v2, ja@v2 -->
|
||||
|
||||
@@ -42,13 +42,13 @@ s16 的队友能通信、能握手关机。但每个队友等 Lead 分配任务
|
||||
IDLE_POLL_INTERVAL = 5 # seconds
|
||||
IDLE_TIMEOUT = 60 # seconds
|
||||
|
||||
def idle_poll(agent_name, messages, name, role) -> str:
|
||||
def idle_poll(name, messages, role) -> str:
|
||||
"""Return 'work', 'shutdown', or 'timeout'."""
|
||||
for _ in range(IDLE_TIMEOUT // IDLE_POLL_INTERVAL):
|
||||
time.sleep(IDLE_POLL_INTERVAL)
|
||||
|
||||
# ① 检查收件箱(优先)
|
||||
inbox = BUS.read_inbox(agent_name)
|
||||
inbox = BUS.read_inbox(name)
|
||||
if inbox:
|
||||
# shutdown_request 立即处理
|
||||
for msg in inbox:
|
||||
@@ -63,7 +63,7 @@ def idle_poll(agent_name, messages, name, role) -> str:
|
||||
unclaimed = scan_unclaimed_tasks()
|
||||
if unclaimed:
|
||||
task = unclaimed[0]
|
||||
result = claim_task(task["id"], agent_name)
|
||||
result = claim_task(task["id"], name)
|
||||
if "Claimed" in result:
|
||||
messages.append(...)
|
||||
return "work"
|
||||
@@ -126,7 +126,7 @@ while True:
|
||||
break # WORK 阶段结束
|
||||
|
||||
# IDLE phase
|
||||
idle_result = idle_poll(name, messages, name, role)
|
||||
idle_result = idle_poll(name, messages, role)
|
||||
if idle_result == "shutdown":
|
||||
break
|
||||
if idle_result == "timeout":
|
||||
@@ -268,4 +268,4 @@ s18 Worktree Isolation → 每个任务有自己的工作目录,互不干扰
|
||||
|
||||
</details>
|
||||
|
||||
<!-- translation-sync: zh@v1, en@v1, ja@v1 -->
|
||||
<!-- translation-sync: zh@v2, en@v2, ja@v2 -->
|
||||
|
||||
@@ -301,14 +301,13 @@ def scan_unclaimed_tasks() -> list[dict]:
|
||||
return unclaimed
|
||||
|
||||
|
||||
def idle_poll(agent_name: str, messages: list,
|
||||
name: str, role: str) -> str:
|
||||
def idle_poll(name: str, messages: list, role: str) -> str:
|
||||
"""Poll for 60s. Return 'work', 'shutdown', or 'timeout'."""
|
||||
for _ in range(IDLE_TIMEOUT // IDLE_POLL_INTERVAL):
|
||||
time.sleep(IDLE_POLL_INTERVAL)
|
||||
|
||||
# Check inbox — dispatch protocol messages first
|
||||
inbox = BUS.read_inbox(agent_name)
|
||||
inbox = BUS.read_inbox(name)
|
||||
if inbox:
|
||||
# Check for shutdown_request
|
||||
for msg in inbox:
|
||||
@@ -331,7 +330,7 @@ def idle_poll(agent_name: str, messages: list,
|
||||
unclaimed = scan_unclaimed_tasks()
|
||||
if unclaimed:
|
||||
task = unclaimed[0]
|
||||
result = claim_task(task["id"], agent_name)
|
||||
result = claim_task(task["id"], name)
|
||||
if "Claimed" in result:
|
||||
messages.append({"role": "user",
|
||||
"content": f"<auto-claimed>Task {task['id']}: "
|
||||
@@ -498,7 +497,7 @@ def spawn_teammate_thread(name: str, role: str, prompt: str) -> str:
|
||||
break
|
||||
|
||||
# IDLE phase (s17 new)
|
||||
idle_result = idle_poll(name, messages, name, role)
|
||||
idle_result = idle_poll(name, messages, role)
|
||||
if idle_result == "shutdown":
|
||||
break
|
||||
if idle_result == "timeout":
|
||||
|
||||
Reference in New Issue
Block a user