文件最后提交记录最后更新时间
refactor(agent_teams): move worktree to harness for single-agent reuse worktree was 90% generic git isolation but lived under agent_teams, so deepagent could not mount the same enter/exit tools. Move the generic implementation to openjiuwen/harness/tools/worktree/, switch the manager to a generic event_handler callback (decoupling from TeamEvent), and migrate ToolCard descriptions to harness prompt providers (worktree.enter / worktree.exit IDs). The team-specific RemoteWorktreeBackend stays in openjiuwen/agent_teams/worktree_remote.py because it depends on the team paths layout. agent_teams imports are switched to harness; agent_teams/worktree/ is removed entirely. Tests move under tests/unit_tests/harness/tools/worktree/ with a new test_tools.py covering owner_id/legacy kwargs, guards, and a real git happy path. examples/harness/deepagent_with_worktree.py demonstrates the single-agent integration end-to-end. Refs: #751 29 天前
refactor(agent_teams): move worktree to harness for single-agent reuse worktree was 90% generic git isolation but lived under agent_teams, so deepagent could not mount the same enter/exit tools. Move the generic implementation to openjiuwen/harness/tools/worktree/, switch the manager to a generic event_handler callback (decoupling from TeamEvent), and migrate ToolCard descriptions to harness prompt providers (worktree.enter / worktree.exit IDs). The team-specific RemoteWorktreeBackend stays in openjiuwen/agent_teams/worktree_remote.py because it depends on the team paths layout. agent_teams imports are switched to harness; agent_teams/worktree/ is removed entirely. Tests move under tests/unit_tests/harness/tools/worktree/ with a new test_tools.py covering owner_id/legacy kwargs, guards, and a real git happy path. examples/harness/deepagent_with_worktree.py demonstrates the single-agent integration end-to-end. Refs: #751 29 天前
refactor(agent_teams): move worktree to harness for single-agent reuse worktree was 90% generic git isolation but lived under agent_teams, so deepagent could not mount the same enter/exit tools. Move the generic implementation to openjiuwen/harness/tools/worktree/, switch the manager to a generic event_handler callback (decoupling from TeamEvent), and migrate ToolCard descriptions to harness prompt providers (worktree.enter / worktree.exit IDs). The team-specific RemoteWorktreeBackend stays in openjiuwen/agent_teams/worktree_remote.py because it depends on the team paths layout. agent_teams imports are switched to harness; agent_teams/worktree/ is removed entirely. Tests move under tests/unit_tests/harness/tools/worktree/ with a new test_tools.py covering owner_id/legacy kwargs, guards, and a real git happy path. examples/harness/deepagent_with_worktree.py demonstrates the single-agent integration end-to-end. Refs: #751 29 天前
refactor(agent_teams): move worktree to harness for single-agent reuse worktree was 90% generic git isolation but lived under agent_teams, so deepagent could not mount the same enter/exit tools. Move the generic implementation to openjiuwen/harness/tools/worktree/, switch the manager to a generic event_handler callback (decoupling from TeamEvent), and migrate ToolCard descriptions to harness prompt providers (worktree.enter / worktree.exit IDs). The team-specific RemoteWorktreeBackend stays in openjiuwen/agent_teams/worktree_remote.py because it depends on the team paths layout. agent_teams imports are switched to harness; agent_teams/worktree/ is removed entirely. Tests move under tests/unit_tests/harness/tools/worktree/ with a new test_tools.py covering owner_id/legacy kwargs, guards, and a real git happy path. examples/harness/deepagent_with_worktree.py demonstrates the single-agent integration end-to-end. Refs: #751 29 天前
refactor(agent_teams): move worktree to harness for single-agent reuse worktree was 90% generic git isolation but lived under agent_teams, so deepagent could not mount the same enter/exit tools. Move the generic implementation to openjiuwen/harness/tools/worktree/, switch the manager to a generic event_handler callback (decoupling from TeamEvent), and migrate ToolCard descriptions to harness prompt providers (worktree.enter / worktree.exit IDs). The team-specific RemoteWorktreeBackend stays in openjiuwen/agent_teams/worktree_remote.py because it depends on the team paths layout. agent_teams imports are switched to harness; agent_teams/worktree/ is removed entirely. Tests move under tests/unit_tests/harness/tools/worktree/ with a new test_tools.py covering owner_id/legacy kwargs, guards, and a real git happy path. examples/harness/deepagent_with_worktree.py demonstrates the single-agent integration end-to-end. Refs: #751 29 天前
feat(harness/worktree): persist worktree across session with validation fixes - Persist active worktree across agent Session lifecycle - Move workspace symlink view to team workspace - Close fail-closed gap in exit validation - Add single-deepagent e2e worktree example docs 25 天前
refactor(agent_teams): move worktree to harness for single-agent reuse worktree was 90% generic git isolation but lived under agent_teams, so deepagent could not mount the same enter/exit tools. Move the generic implementation to openjiuwen/harness/tools/worktree/, switch the manager to a generic event_handler callback (decoupling from TeamEvent), and migrate ToolCard descriptions to harness prompt providers (worktree.enter / worktree.exit IDs). The team-specific RemoteWorktreeBackend stays in openjiuwen/agent_teams/worktree_remote.py because it depends on the team paths layout. agent_teams imports are switched to harness; agent_teams/worktree/ is removed entirely. Tests move under tests/unit_tests/harness/tools/worktree/ with a new test_tools.py covering owner_id/legacy kwargs, guards, and a real git happy path. examples/harness/deepagent_with_worktree.py demonstrates the single-agent integration end-to-end. Refs: #751 29 天前
refactor(harness): unify tool registration via AbilityManager.add_ability Route all executable tool registration through a single AbilityManager.add_ability(card, resource) entry point that keeps the ability-manager card id and the resource-manager key consistent, branching on ToolCard.stateless: - stateful (default): rewrite card.id to "{name}_{agent_id}" and register with refresh=True so each agent owns an exclusive entry. Fixes the "Tool id is already registered with a different tool instance" crash when multiple team members register their own instances of the same tool. - stateless: keep the bare id and register with skip_if_exists=True so a shared module-level singleton is registered once and reused across agents. Details: - ToolCard gains a stateless field; @tool gains a stateless passthrough. - resource_mgr.add_tool gains skip_if_exists; refresh now logs a warning when it drops a previous registration. - AbilityManager learns its owner agent id (wired from BaseAgent / DeepAgent.configure) and gains add_ability / remove_ability. - The declarative path (apply_deep_agent_parts) and every rail (sys_operation, subagent, skill_use, lsp, task_planning, agent_mode, progressive_tool, mcp, ask_user, worktree, memory/external/coding) now register through add_ability, dropping per-rail add_tool + ability add/remove bookkeeping. Tests migrated to the new API; adds add_ability unit coverage (stateful qualify/refresh, stateless skip). 4 小时前
fix(worktree):The worktree lacks the entry function. Refs: #967 Co-authored-by: weichenhao<weichenhao3@huawei.com> # message auto-generated for no-merge-commit merge: !1500 fix(bug):The worktree lacks the entry function. From: @weichenhao Reviewed-by: @alan_cheng, @chenchunzhou See merge request: openJiuwen/agent-core!15007 天前
fix(worktree):worktree Path Traversal Issue Co-authored-by: weichenhao<weichenhao3@huawei.com> # message auto-generated for no-merge-commit merge: !1574 fix(worktree):worktree Path Traversal Issue From: @weichenhao Reviewed-by: @alan_cheng, @deyang See merge request: openJiuwen/agent-core!15741 天前
fix(worktree):worktree Path Traversal Issue Co-authored-by: weichenhao<weichenhao3@huawei.com> # message auto-generated for no-merge-commit merge: !1574 fix(worktree):worktree Path Traversal Issue From: @weichenhao Reviewed-by: @alan_cheng, @deyang See merge request: openJiuwen/agent-core!15741 天前