pi-herdsman 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -37,6 +37,27 @@ A lead may have many direct agents, and each direct agent that is explicitly
37
37
  delegation-enabled may have its own direct agents. A delegation-capable agent
38
38
  remains an agent at every depth; it is not a separate public role.
39
39
 
40
+ Physical placement is presentation only and never determines ownership. The
41
+ lead's placement setting controls direct agents: `tab` shares one tab per lead,
42
+ `subtree` gives each direct agent a fresh tab, and `split` stays in the caller's
43
+ tab. Nested delegation always splits inside the owner's current tab, regardless
44
+ of the setting.
45
+
46
+ For example, the logical ownership tree and a subtree layout are separate:
47
+
48
+ ```text
49
+ logical ownership physical subtree layout
50
+
51
+ lead [lead]
52
+ ├── implementer → [implementer]
53
+ │ └── scout ├─ implementer
54
+ └── reviewer │ └─ scout
55
+ └─ [reviewer]
56
+ ```
57
+
58
+ Physical layout never determines ownership; the durable owner/session
59
+ relationships do.
60
+
40
61
  ## Inferred `agent` capability
41
62
 
42
63
  A non-empty `agents` field implies the `agent` tool when the definition uses
@@ -107,6 +107,10 @@ agent generation for the new assignment. The continuation uses the saved cwd
107
107
  and session history together with the current effective authorized definition
108
108
  configuration. Use `delegate.definition` with `fork` when a separate derived
109
109
  session is required.
110
+ Session continuation does not retain the old Herdr tab. A still-live
111
+ generation may be restored from its exact managed identity, while ordinary
112
+ same-workspace tab movement remains presentation-only and does not change
113
+ assignment ownership.
110
114
 
111
115
  ## Steering is different
112
116
 
@@ -99,8 +99,11 @@ global override. Definition Details shows the effective metadata and can
99
99
  expand the resolved definition instructions with Pi's native `Ctrl+O`
100
100
  behavior. These edits always write global overrides, never project files.
101
101
 
102
- Use `Layout` to choose the current `tab` or `split` placement for newly started
103
- agents.
102
+ Use `Layout` to choose the current placement for newly started lead-direct
103
+ agents: `subtree` is the default and gives each lead-direct agent one tab;
104
+ `tab` uses one lead-owned agents tab; `split` stays in the caller's tab. Nested
105
+ delegation always splits inside the owner's current tab. Placement changes
106
+ affect future starts only.
104
107
 
105
108
  For complete configuration ownership, see:
106
109
 
@@ -164,8 +164,8 @@ Coordinate the assigned analysis and integrate direct agent results.
164
164
  ```
165
165
 
166
166
  The effective roster is validated atomically. Every `agents` name must exist.
167
- Bundled role descriptions and bodies describe role behavior only; orchestration
168
- guidance comes from the active controller contract.
167
+ Bundled role descriptions communicate each role's purpose and selection boundary;
168
+ the active controller contract remains authoritative for delegation behavior.
169
169
 
170
170
  With a non-empty explicit `tools` allowlist, `agent` is inferred unless
171
171
  explicitly denied. See [Delegation](../concepts/delegation.md).
@@ -13,7 +13,7 @@ Commands require a lead Pi session with UI.
13
13
  ```text
14
14
  /agents
15
15
  /agents definitions
16
- /agents placement [tab|split]
16
+ /agents placement [tab|subtree|split]
17
17
  /agents stop
18
18
  ```
19
19
 
@@ -95,10 +95,12 @@ is sent.
95
95
  ## `/agents placement`
96
96
 
97
97
  Selecting Layout opens a native selector showing the effective setting.
98
+ When unset, the effective setting is `subtree`.
98
99
  Explicit values continue to set directly:
99
100
 
100
101
  ```text
101
102
  /agents placement tab
103
+ /agents placement subtree
102
104
  /agents placement split
103
105
  ```
104
106
 
@@ -14,7 +14,7 @@ Settings shape:
14
14
  ```json
15
15
  {
16
16
  "piHerdsman": {
17
- "spawnPlacement": "tab"
17
+ "spawnPlacement": "subtree"
18
18
  }
19
19
  }
20
20
  ```
@@ -23,19 +23,26 @@ Supported values:
23
23
 
24
24
  ```text
25
25
  tab
26
+ subtree
26
27
  split
27
28
  ```
28
29
 
29
30
  Default:
30
31
 
31
32
  ```text
32
- tab
33
+ subtree
33
34
  ```
34
35
 
35
- `tab` places future agents in the managed agent-tab workflow.
36
+ When no `spawnPlacement` value is configured, it resolves to `subtree`.
37
+ Unrecognized values remain invalid and resolve to `tab`.
38
+
39
+ `tab` places future direct agents owned by a lead in one dedicated agents tab.
40
+
41
+ `subtree` gives each future lead-direct agent its own tab. Descendants always
42
+ split inside their owner's current tab.
36
43
 
37
- `split` places future agents by splitting from the caller's tab/pane placement
38
- boundary.
44
+ `split` places future lead-direct agents by splitting from the caller's current
45
+ pane. Descendants always split inside their owner's current tab.
39
46
 
40
47
  This affects future starts, not existing agents.
41
48
 
@@ -83,12 +90,12 @@ Project settings are stored in:
83
90
  A project placement value is effective only when:
84
91
 
85
92
  - the project is trusted by Pi; and
86
- - the project setting is `tab` or `split`.
93
+ - the project setting is `tab`, `subtree`, or `split`.
87
94
 
88
95
  If no valid trusted project placement is active, the global value is used.
89
96
 
90
97
  `/agents placement` opens a native selector showing the effective value and
91
- offering `tab` or `split`. Selecting a value writes to the current effective
98
+ offering `tab`, `subtree`, or `split`. Selecting a value writes to the current effective
92
99
  scope and verifies the value after writing; the confirmation reports whether
93
100
  that scope is `project` or `global`.
94
101
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-herdsman",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "description": "Asynchronous Pi agent orchestration with nested delegation, parallel execution, and supervision in herdr.",
6
6
  "license": "Apache-2.0",