文件最后提交记录最后更新时间
feat(agent_teams): add external-agent join surface (skill+cli / mcp) Let agents outside the team process (third-party CLIs or independent services) act as first-class members by talking directly to the shared team database and zmq messager: external/ (TeamJoinDescriptor + ExternalTeamClient + inbound rendering), skill/ (non-interactive team-member CLI + SKILL.md) and mcp/ (stdio FastMCP server). Complements F_07 bridge (text relay) with an autonomous direct-join path. Refs: #751 5 天前
test(swarm): cover operator / member external-access scopes Rewrite the external MCP + CLI tests for the two-scenario design: member scope exposes the real teammate tools {read_inbox, view_task, claim_task, send_message} with empty instructions and claim_task(status=completed) folds in completion; operator scope exposes the broad control set incl. create_task with workflow instructions. conftest gains a scope arg; test_client / test_format are unchanged. The external CLI e2e god-view prompt uses claim_task(status="completed"). Refs: #751 22 分钟前
test(swarm): cover operator / member external-access scopes Rewrite the external MCP + CLI tests for the two-scenario design: member scope exposes the real teammate tools {read_inbox, view_task, claim_task, send_message} with empty instructions and claim_task(status=completed) folds in completion; operator scope exposes the broad control set incl. create_task with workflow instructions. conftest gains a scope arg; test_client / test_format are unchanged. The external CLI e2e god-view prompt uses claim_task(status="completed"). Refs: #751 22 分钟前
feat(swarm): harden external CLI members and add gemini support - mcp: scope team tools by member role; centralize session-context binding - runtime: raise on streaming premature EOF; reinvoke inactivity timeout + prompt abort; surface CLI narration live to the team stream via a queue bridge - prompts: build external CLI members' system prompt from the shared team-rail sections (role/workflow/lifecycle/persona), excluding other DeepAgent rails - adapters: add gemini adapter with cross-turn --session-id/--resume; switch codex to exec --json + developer_instructions; per-CLI system-prompt and MCP-registration (gemini/hermes) injection; structured-output summaries Refs: #751 5 天前
test(swarm): cover harness subscribe and spawn first-start injection - Update harness/runtime tests for the merged subscribe surface and constructor-time config (stub runtimes expose subscribe). - Cover spawn first-start: empty query subscribes without sending; restart re-spawns with initial_message=None. Refs: #751 22 分钟前
feat(agent_teams): add external-agent join surface (skill+cli / mcp) Let agents outside the team process (third-party CLIs or independent services) act as first-class members by talking directly to the shared team database and zmq messager: external/ (TeamJoinDescriptor + ExternalTeamClient + inbound rendering), skill/ (non-interactive team-member CLI + SKILL.md) and mcp/ (stdio FastMCP server). Complements F_07 bridge (text relay) with an autonomous direct-join path. Refs: #751 5 天前
feat(agent_teams): add external-agent join surface (skill+cli / mcp) Let agents outside the team process (third-party CLIs or independent services) act as first-class members by talking directly to the shared team database and zmq messager: external/ (TeamJoinDescriptor + ExternalTeamClient + inbound rendering), skill/ (non-interactive team-member CLI + SKILL.md) and mcp/ (stdio FastMCP server). Complements F_07 bridge (text relay) with an autonomous direct-join path. Refs: #751 5 天前
feat(agent_teams): external-cli spawn_member role + MCP auto-injection Promote external CLI agents (claudecode / codex) to first-class team members the leader can spawn autonomously, resolving the two F_21 follow-ups (leader-callable tool, MCP config injection). - Static config: TeamAgentSpec.external_cli_agents (ExternalCliAgentSpec); the non-empty set of declared cli_agent kinds is the capability ceiling. - spawn_member gains role_type='external_cli' + cli_agent, dispatching to TeamBackend.spawn_external_cli_agent (validated against the declared set). - Spawn path auto-injects the team MCP server per CLI (claude --mcp-config, codex -c mcp_servers...); the descriptor env flows via process inheritance. - system test: 4-member (2 claude + 2 codex) workspace-write + verify e2e. Refs: #751 5 天前
test(swarm): cover MemberRuntime adoption across team harness layers Rewrite team tests against the adopted surface: StreamController over a fake MemberRuntime (forward/observer/retry/state-round mapping/idle-settled), CLI runtimes driving _drive directly plus a MemberRuntime surface test, TeamHarness build over a fake native, forward-layer retry semantics, coordination nudges asserting deliver_input, and plan-mode seeding via _seed_initial_plan_mode. Drop tests whose premise (FirstIterationGate, StreamController-driven round restart) no longer exists. Refs: #984 22 分钟前
feat(swarm): render absolute+relative time in agent-facing text Message and task timestamps were stored (ms UTC epoch) but dropped at the rendering layer, so agents could not judge recency, ordering, or delay. Add timefmt.format_time_context to render '<local time> (<relative diff>)' across message/task-board/stale nudges, external/MCP/CLI rendering, and view_task output. Storage is unchanged; TaskSummary gains updated_at so the list view can show relative time. Refs: #751 5 天前
test(swarm): cover operator / member external-access scopes Rewrite the external MCP + CLI tests for the two-scenario design: member scope exposes the real teammate tools {read_inbox, view_task, claim_task, send_message} with empty instructions and claim_task(status=completed) folds in completion; operator scope exposes the broad control set incl. create_task with workflow instructions. conftest gains a scope arg; test_client / test_format are unchanged. The external CLI e2e god-view prompt uses claim_task(status="completed"). Refs: #751 22 分钟前