@ferris1225/pi-subagents 4.2.8 → 4.2.13

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.
package/CHANGELOG.md ADDED
@@ -0,0 +1,61 @@
1
+ # Changelog
2
+
3
+ Published versions of `@ferris1225/pi-subagents`. Unpublished numbers
4
+ (`4.2.3`, `4.2.6`, `4.2.9`–`4.2.11`) never shipped on npm; their changes
5
+ landed in the next published release.
6
+
7
+ ## 4.2.13
8
+
9
+ - README: table of contents, a What's new lead-in, and a pointer at this
10
+ changelog. Release notes describe the live `main` → npm path.
11
+
12
+ ## 4.2.12
13
+
14
+ - Executor confirms each named defect on current code before editing.
15
+ - Footer settled counts stay on the line only while a sibling is live, and
16
+ widget truncation no longer lies about what was cut.
17
+ - Merging to `main` publishes an unpublished `package.json` version to npm
18
+ and opens a matching GitHub Release.
19
+
20
+ ## 4.2.8
21
+
22
+ - Always-visible footer roll-up: `subagents 2 running · 1 repo lane · 3 done`.
23
+ - `wait: true` streams progress onto the tool card and reports child token
24
+ spend as the call's own usage.
25
+ - Completions are held while context compaction rewrites history, then
26
+ released on success, failure, or abort.
27
+ - A delivered result no longer enters the parent context a second time.
28
+ - Isolated worktrees link `node_modules`.
29
+ - Widget worktree badge is spelled out (`worktree:a91f3c`).
30
+
31
+ ## 4.2.7
32
+
33
+ - Executor routing is a single self-contained deliverable; `thinking` can
34
+ be set per dispatch.
35
+ - Child prompt temp directories are removed recursively.
36
+
37
+ ## 4.2.5
38
+
39
+ - The threads manifest lives per project, beside that project's artifacts.
40
+
41
+ ## 4.2.4
42
+
43
+ - Explorer findings are one-line retrieval leads.
44
+ - Worktree recovery retries cleanup when the patch was already applied.
45
+
46
+ ## 4.2.2
47
+
48
+ - A single artifact the main agent must fully absorb stays an inline read;
49
+ re-reads are bounded.
50
+
51
+ ## 4.2.1
52
+
53
+ - Upgraded configs prune retired built-in roles so the setup wizard never
54
+ mixes old and new names.
55
+
56
+ ## 4.2.0
57
+
58
+ - Built-in team is `explorer` and `executor`. The old
59
+ `worker` / `cleaner` / `documenter` / `synthesizer` / `reviewer` set is
60
+ gone.
61
+ - Live widget splits each run into an identity line and a dim activity line.
package/LICENSE CHANGED
@@ -1,23 +1,23 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 ferris1225
4
- Portions of agents/cleaner.md adapted from reclaim-code-entropy:
5
- Copyright (c) 2026 Yevanchen
6
-
7
- Permission is hereby granted, free of charge, to any person obtaining a copy
8
- of this software and associated documentation files (the "Software"), to deal
9
- in the Software without restriction, including without limitation the rights
10
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
- copies of the Software, and to permit persons to whom the Software is
12
- furnished to do so, subject to the following conditions:
13
-
14
- The above copyright notice and this permission notice shall be included in all
15
- copies or substantial portions of the Software.
16
-
17
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2025 ferris1225
4
+ Portions of agents/cleaner.md adapted from reclaim-code-entropy:
5
+ Copyright (c) 2026 Yevanchen
6
+
7
+ Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ of this software and associated documentation files (the "Software"), to deal
9
+ in the Software without restriction, including without limitation the rights
10
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ copies of the Software, and to permit persons to whom the Software is
12
+ furnished to do so, subject to the following conditions:
13
+
14
+ The above copyright notice and this permission notice shall be included in all
15
+ copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ SOFTWARE.
package/README.md CHANGED
@@ -10,6 +10,34 @@ A managed engineering team for [pi](https://github.com/earendil-works/pi): two
10
10
  focused sub-agents, durable threads, and Git worktree
11
11
  isolation. You install it once and your main agent delegates on its own.
12
12
 
13
+ ## What's new
14
+
15
+ **4.2.13** — this page now leads with current changes and keeps the 4.2 line
16
+ in [CHANGELOG.md](./CHANGELOG.md).
17
+
18
+ **4.2.12**
19
+
20
+ - The executor confirms a named defect on current code before it edits.
21
+ - Footer settled counts stay honest, and only while a sibling is still live.
22
+ - Merging to `main` publishes npm and opens a matching GitHub Release.
23
+
24
+ ## Contents
25
+
26
+ - [Why](#why)
27
+ - [Install](#install)
28
+ - [The team](#the-team)
29
+ - [Dispatching work](#dispatching-work)
30
+ - [Parallel edits](#parallel-edits)
31
+ - [Threads: resume, stop](#threads-resume-stop)
32
+ - [Live status and results](#live-status-and-results)
33
+ - [Models, thinking, and tools](#models-thinking-and-tools)
34
+ - [Configuration](#configuration)
35
+ - [Custom agents](#custom-agents)
36
+ - [Storage and cleanup](#storage-and-cleanup)
37
+ - [Development](#development)
38
+ - [Changelog](#changelog)
39
+ - [Release](#release)
40
+
13
41
  ## Why
14
42
 
15
43
  Delegation is supposed to remove coordination work. Most sub-agent launchers stop
@@ -62,6 +90,8 @@ Every child is an isolated leaf pi process with its own context window and no
62
90
  memory of your conversation, so the brief is its only input. A good brief carries
63
91
  the goal, exact paths, constraints, and expected output — which is what the
64
92
  injected delegation guidance produces when the main agent dispatches for you.
93
+ A named defect is not yet a change: confirm it on current code before fixing
94
+ or briefing a fix. The executor re-reads before it edits.
65
95
 
66
96
  ```text
67
97
  You
@@ -207,13 +237,16 @@ still working?" without opening the widget or asking:
207
237
  subagents 2 running · 1 repo lane · 3 done
208
238
  ```
209
239
 
210
- It is count-only, keeps the same wait vocabulary as the widget, disappears when
211
- nothing is active, and works in RPC hosts as well as the TUI.
240
+ It is count-only, keeps the same wait vocabulary as the widget, and works in
241
+ RPC hosts as well as the TUI. Settled counts stay on the line only while a
242
+ sibling is still live (`2 running · 3 done`); the line disappears once nothing
243
+ is active.
212
244
 
213
245
  Completions resume the main agent on their own, with a compact block of at most 40
214
246
  lines by default; longer output lands unchanged in a Markdown artifact whose path
215
247
  comes with the message, stated as how much was actually cut (`40 of 137 lines
216
- shown`) and conditioned on the shown lines being insufficient, so the same
248
+ shown`, or a 200-character clip when a short result has a long line) and
249
+ conditioned on the shown lines being insufficient, so the same
217
250
  content does not enter the main context twice. Roles write result-only handoffs — outcome, paths,
218
251
  verification, unresolved blockers — and the main agent is told to add its
219
252
  conclusion rather than restate what you already read. A failed run adds its
@@ -363,13 +396,36 @@ beats an age rule.
363
396
  ```bash
364
397
  npm install
365
398
  npm run check
366
- npm test
367
399
  ```
368
400
 
369
401
  There are no bundled runtime dependencies; pi and TypeBox are peers. The source is
370
402
  split by responsibility: dispatch policy, thread lifecycle, RPC
371
403
  transport, worktree integration, completion delivery, tools, and TUI status.
372
404
 
405
+ ## Changelog
406
+
407
+ The 4.2 line lives in [CHANGELOG.md](./CHANGELOG.md). Latest published
408
+ version is **4.2.13**.
409
+
410
+ | Version | What changed |
411
+ | ------- | ------------ |
412
+ | 4.2.13 | README navigation, What's new, and this changelog. |
413
+ | 4.2.12 | Confirm-before-fix; honest footer counts; `main` publishes npm + GitHub Release. |
414
+ | 4.2.8 | Footer roll-up; wait-path token usage; hold completions across compaction. |
415
+ | 4.2.7 | Sharper executor routing; per-dispatch `thinking`. |
416
+ | 4.2.5 | Per-project threads manifest. |
417
+ | 4.2.4 | One-line explorer findings; recovery cleanup retry. |
418
+ | 4.2.2 | Single-artifact reads stay inline. |
419
+ | 4.2.1 | Prune retired roles from upgraded configs. |
420
+ | 4.2.0 | Team is `explorer` + `executor`; two-line live widget. |
421
+
422
+ ## Release
423
+
424
+ Merging to `main` publishes `@ferris1225/pi-subagents` when `package.json`
425
+ carries a version npm does not have yet, then opens a matching GitHub Release.
426
+ Do not `npm publish` from a laptop. The workflow is
427
+ `.github/workflows/publish.yml` (npm trusted publisher or `NPM_TOKEN`).
428
+
373
429
  ## License
374
430
 
375
431
  MIT
@@ -13,8 +13,9 @@ Repository instructions (AGENTS.md) and any skills available in this session app
13
13
 
14
14
  1. **Context.** Read the brief fully, plus referenced files and images, before acting. If critical context is missing, state what is missing rather than guessing.
15
15
  2. **Plan.** Inspect existing code and conventions first; form the smallest coherent root-cause change that satisfies the brief. Prefer the design that deletes complexity over one that rearranges it. No unrelated refactors or standalone docs work unless the brief asks.
16
- 3. **Implement.** Preserve the user's work; limit edits to the request plus required validation. Follow the project's error handling, naming, and style. Synchronize README/docs/comments your change directly affects; never defer that drift.
17
- 4. **Verify.** Run the project's format/build/tests when they exist. NEVER report an unrun check as passed report it as unavailable or a pre-existing failure, with the exact error.
16
+ 3. **Confirm.** A finding is not a change. Re-read the current code and confirm each defect you are about to fix is real — not a misread, a stale report, or an intended tradeoff even when the brief said "fix it". A false positive means zero edits and a note.
17
+ 4. **Implement.** Preserve the user's work; limit edits to the request plus required validation. Follow the project's error handling, naming, and style. Synchronize README/docs/comments your change directly affects; never defer that drift.
18
+ 5. **Verify.** Run the project's format/build/tests when they exist. NEVER report an unrun check as passed — report it as unavailable or a pre-existing failure, with the exact error.
18
19
 
19
20
  ## Conditional playbooks
20
21
 
@@ -44,7 +45,7 @@ What was done, in a few lines.
44
45
 
45
46
  ## Verification
46
47
 
47
- Which checks you ACTUALLY ran and their result (e.g. `tsc --noEmit` clean; `vitest` 12 passed). State explicitly anything you could not run and why.
48
+ Which checks you ACTUALLY ran and their result (e.g. `tsc --noEmit` clean). State explicitly anything you could not run and why.
48
49
 
49
50
  ## Notes (only when material)
50
51
 
@@ -1,37 +1,37 @@
1
- ---
2
- name: explorer
3
- description: Fast read-only reconnaissance for broad or multi-file search in unfamiliar areas; returns exact paths and compressed findings as retrieval leads.
4
- tools: read, grep, find, ls, bash
5
- # At launch, this shell slot follows the parent and parent-active plugin tools
6
- # are appended; the listed non-shell Pi built-ins remain the permission boundary.
7
- thinking: low
8
- ---
9
-
10
- You are an explorer agent: a fast, read-only reconnaissance specialist. You investigate a codebase and return compressed, structured findings so another agent does not repeat the whole search. You have NOT got the caller's conversation history — the task brief is your only input.
11
-
12
- ## Hard constraints
13
-
14
- - You are READ-ONLY. Never create, edit, or delete files; never run mutating commands. Reach for your `read`/`grep`/`find`/`ls` tools before the shell — they behave the same on every platform, while the shell you were given may be POSIX or PowerShell. Keep shell use to read-only inspection (`git log/show/diff/status` and that shell's own read-only commands); no installs, builds, or state changes. Permissions are not perfectly enforceable — keep every command strictly read-only by intent.
15
- - Every finding is a retrieval lead, never sufficient proof for deletion, security claims, public/API compatibility, persistence, or other load-bearing decisions. The caller must re-read the cited line ranges before acting on your results.
16
-
17
- ## Workflow
18
-
19
- 1. Orient with `grep`/`find` to locate the relevant code fast. Prefer bare identifiers as patterns; scope by path and exclude noisy dirs (node_modules, dist, generated).
20
- 2. Read KEY SECTIONS, not whole files. After 1-2 greps, read the top match instead of running more greps.
21
- 3. Identify the types, interfaces, and key function signatures involved; note how files depend on each other.
22
- 4. Record exact paths and line ranges so the caller can jump straight in.
23
- 5. If the brief asks you to inspect images (screenshots, mockups, designs), `read` them — the model receives them as attachments when it supports vision.
24
-
25
- Thoroughness scales with the task (default medium): quick = targeted lookups in key files; medium = follow imports and callers, read critical sections; thorough = trace dependencies across modules, check tests and types.
26
-
27
- ## Final response
28
-
29
- Return only retrieval results, one bare bullet per finding — a single line: path, the fact, nothing else:
30
-
31
- ```text
32
- - `path/to/file.ts:10-50` — the fact
33
- Start here: `path/to/file.ts` — entry symbol and why (only when the caller could not guess it)
34
- Gaps: unresolved uncertainty (only when real)
35
- ```
36
-
37
- No preamble or closing summary. Do not repeat the task brief, inventory every file opened, paste nonessential code, or narrate the search; every line must carry a path with a fact or name a gap — delete anything else. State uncertainty and missing coverage — a plausible guess is more expensive than an honest gap. Stay under 15 lines by default; go longer only when the brief genuinely demands a wide survey — the 40-line delivery cap truncates your tail (usually the Gaps) and the caller pays for every line.
1
+ ---
2
+ name: explorer
3
+ description: Fast read-only reconnaissance for broad or multi-file search in unfamiliar areas; returns exact paths and compressed findings as retrieval leads.
4
+ tools: read, grep, find, ls, bash
5
+ # At launch, this shell slot follows the parent and parent-active plugin tools
6
+ # are appended; the listed non-shell Pi built-ins remain the permission boundary.
7
+ thinking: low
8
+ ---
9
+
10
+ You are an explorer agent: a fast, read-only reconnaissance specialist. You investigate a codebase and return compressed, structured findings so another agent does not repeat the whole search. You have NOT got the caller's conversation history — the task brief is your only input.
11
+
12
+ ## Hard constraints
13
+
14
+ - You are READ-ONLY. Never create, edit, or delete files; never run mutating commands. Reach for your `read`/`grep`/`find`/`ls` tools before the shell — they behave the same on every platform, while the shell you were given may be POSIX or PowerShell. Keep shell use to read-only inspection (`git log/show/diff/status` and that shell's own read-only commands); no installs, builds, or state changes. Permissions are not perfectly enforceable — keep every command strictly read-only by intent.
15
+ - Every finding is a retrieval lead, never sufficient proof for deletion, security claims, public/API compatibility, persistence, or other load-bearing decisions. The caller must re-read the cited line ranges before acting on your results.
16
+
17
+ ## Workflow
18
+
19
+ 1. Orient with `grep`/`find` to locate the relevant code fast. Prefer bare identifiers as patterns; scope by path and exclude noisy dirs (node_modules, dist, generated).
20
+ 2. Read KEY SECTIONS, not whole files. After 1-2 greps, read the top match instead of running more greps.
21
+ 3. Identify the types, interfaces, and key function signatures involved; note how files depend on each other.
22
+ 4. Record exact paths and line ranges so the caller can jump straight in.
23
+ 5. If the brief asks you to inspect images (screenshots, mockups, designs), `read` them — the model receives them as attachments when it supports vision.
24
+
25
+ Thoroughness scales with the task (default medium): quick = targeted lookups in key files; medium = follow imports and callers, read critical sections; thorough = trace dependencies across modules, check tests and types.
26
+
27
+ ## Final response
28
+
29
+ Return only retrieval results, one bare bullet per finding — a single line: path, the fact, nothing else:
30
+
31
+ ```text
32
+ - `path/to/file.ts:10-50` — the fact
33
+ Start here: `path/to/file.ts` — entry symbol and why (only when the caller could not guess it)
34
+ Gaps: unresolved uncertainty (only when real)
35
+ ```
36
+
37
+ No preamble or closing summary. Do not repeat the task brief, inventory every file opened, paste nonessential code, or narrate the search; every line must carry a path with a fact or name a gap — delete anything else. State uncertainty and missing coverage — a plausible guess is more expensive than an honest gap. Stay under 15 lines by default; go longer only when the brief genuinely demands a wide survey — the 40-line delivery cap truncates your tail (usually the Gaps) and the caller pays for every line.
package/package.json CHANGED
@@ -1,9 +1,17 @@
1
1
  {
2
2
  "name": "@ferris1225/pi-subagents",
3
- "version": "4.2.8",
4
- "description": "A managed sub-agent team for pi: specialized roles, pre-commit documentation sync, retained threads, auto-fix chains, model fallback, and Git worktree isolation.",
3
+ "version": "4.2.13",
4
+ "description": "A managed sub-agent team for pi: explorer and executor roles, durable threads, model fallback, and Git worktree isolation.",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/MCapricorns/pi-subagents.git"
10
+ },
11
+ "bugs": {
12
+ "url": "https://github.com/MCapricorns/pi-subagents/issues"
13
+ },
14
+ "homepage": "https://github.com/MCapricorns/pi-subagents#readme",
7
15
  "publishConfig": {
8
16
  "access": "public"
9
17
  },
@@ -20,6 +28,7 @@
20
28
  "src",
21
29
  "agents",
22
30
  "README.md",
31
+ "CHANGELOG.md",
23
32
  "LICENSE"
24
33
  ],
25
34
  "pi": {