fix(kanban): worker-created child tasks get their own workspace - #70143
Merged
Merged
Conversation
Default kanban_create children now keep fresh scratch paths, while explicit dir sharing remains supported and project context resolves to a per-task worktree. Surface resolved workspace fields in create responses/events and cover scratch mutation, nesting, explicit sharing, and project inheritance. Fixes #67567
Contributor
૮ >ﻌ< ა ci reviewran on 38e623b ℹ️ InfoDesktop E2E visual evidence · View test artifacts · View job2 visual diffs. inline evidence upload failed. Failed to upload diff-fe0af89a78a7-boot-failure-error-state-diff.png with gh image (exit code 1): Error uploading /home/runner/work/_temp/e2e-evidence/diff-fe0af89a78a7-boot-failure-error-state-diff.png: step 0 (get upload token): uploadToken not found on repo page — do you have write access to NousResearch/hermes-agent? (or, if NousResearch enforces SAML SSO, authorize at https://github.com/orgs/NousResearch/sso) |
This was referenced Jul 23, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
fix(kanban): worker-created child tasks get their own workspace
Summary
kanban_createcalled by a running worker no longer copies the parent task's literalworkspace_kind/workspace_pathinto the child — omitted workspace args now produce a fresh isolated scratch task (workspace_path=NULL, materialized to<board>/workspaces/<child-id>at dispatch), so a remediation child can no longer mutate an independent review's evidence directory or share a checkout/index with concurrent tasks.Salvage of #67570 by @peacockesq (both commits cherry-picked, authorship preserved), rebased onto current main. Fixes #67567.
Behavior contract after this change:
workspace_kind=dir+workspace_path→ intentional sharing, unchangedproject_id, materializing its own worktree + branch; a cross-profile fallback (project_source_task_id) recovers repo/branch convention from the canonical source task without ever reusing its literal worktreeChanges
tools/kanban_tools.py::_handle_create: drop implicit literal workspace inheritance; inherit onlyproject_id; surface resolvedworkspace_kind/workspace_path/project_idin the tool response andcreatedevent.hermes_cli/kanban_db.py::create_task:project_source_task_idcross-profile fallback (worker profiles have separate projects.db; the shared board's canonical project-linked task supplies repo + branch convention, path is never reused).tests/tools/test_kanban_tools.py: isolation matrix — materialized-scratch parent, nested children, explicit dir sharing, explicit scratch, project-linked child with own worktree/branch, cross-profile routing (~295 new test lines).Validation
<board>/workspaces/<child-id>dirsharingscripts/run_tests.sh tests/tools/test_kanban_tools.py tests/hermes_cli/test_kanban_project_link.py tests/hermes_cli/test_kanban_decompose.py— 132 passedtest_connect_falls_back_to_delete_on_locking_protocolfailure reproduces identically with main's files checked out and passes in isolation — pre-existing intra-file isolation flake, unrelated to this changereview-evidence.txtintactInfographic