pi-squad 0.17.1 → 0.18.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.
- package/CHANGELOG.md +74 -0
- package/README.md +12 -2
- package/docs/persistent-master-switch-contract.md +148 -0
- package/package.json +2 -1
- package/src/commands.ts +585 -0
- package/src/index.ts +16 -1921
- package/src/lifecycle.ts +164 -0
- package/src/panel/squad-panel.ts +16 -0
- package/src/panel-runtime.ts +157 -0
- package/src/protocol.ts +3 -47
- package/src/report.ts +40 -2
- package/src/runtime.ts +196 -0
- package/src/scheduler-runtime.ts +117 -0
- package/src/scheduler.ts +149 -135
- package/src/start-squad.ts +176 -0
- package/src/store.ts +3 -44
- package/src/tools-registration.ts +609 -0
- package/src/types.ts +2 -26
- package/src/supervisor.ts +0 -142
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project are documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.18.0] - 2026-07-18
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Squad completion reports now include a Working Tree Snapshot (`git diff --stat` plus untracked-file count) when the squad cwd is a Git repository; non-repository output is unchanged and task handoffs are never truncated.
|
|
15
|
+
- Continuous integration workflow running the full test suite on pushes to `main` and all pull requests.
|
|
16
|
+
- This changelog, backfilled for v0.16.5 through v0.17.2, and shipped in the npm package.
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- Schedulers reconstructed through the panel and Ctrl+Q paths are now registered and event-wired, so their review/failure/reply/escalation notifications reach the main session instead of being silently dropped.
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- Refactored the extension into focused modules (`runtime`, `tools-registration`, `commands`, `lifecycle`, `panel-runtime`, `scheduler-runtime`, `start-squad`); `src/index.ts` is now a thin composition root. Behavior, tool schemas, and command surface are unchanged.
|
|
25
|
+
- `reviveScheduler()` is the single authoritative scheduler reconstruction helper; `handleAgentEvent` is a thin dispatcher over per-event handlers.
|
|
26
|
+
|
|
27
|
+
### Removed
|
|
28
|
+
|
|
29
|
+
- Dead `supervisor.ts` auto-approval stub and the unused squad knowledge/memory persistence feature (never written by any caller). Legacy `knowledge/` directories in existing squad state remain ignored safely.
|
|
30
|
+
|
|
31
|
+
## [0.17.2] - 2026-07-18
|
|
32
|
+
|
|
33
|
+
### Fixed
|
|
34
|
+
|
|
35
|
+
- Persisted the squad master switch across sessions and enforced it consistently for commands, tools, recovery, and the panel.
|
|
36
|
+
|
|
37
|
+
## [0.17.1] - 2026-07-17
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
|
|
41
|
+
- Synchronized squad widget and panel focus so the active squad remains consistent across UI interactions and cancellation.
|
|
42
|
+
|
|
43
|
+
## [0.17.0] - 2026-07-17
|
|
44
|
+
|
|
45
|
+
### Added
|
|
46
|
+
|
|
47
|
+
- Added attested file-based squad specifications, including canonical chunk delivery and full-read verification for child agents.
|
|
48
|
+
|
|
49
|
+
## [0.16.7] - 2026-07-17
|
|
50
|
+
|
|
51
|
+
### Fixed
|
|
52
|
+
|
|
53
|
+
- Hardened exact squad targeting and preserved paused or suspended work for explicit operator attention.
|
|
54
|
+
|
|
55
|
+
## [0.16.6] - 2026-07-17
|
|
56
|
+
|
|
57
|
+
### Fixed
|
|
58
|
+
|
|
59
|
+
- Repaired dependency state after task cancellation so downstream tasks are updated consistently.
|
|
60
|
+
|
|
61
|
+
## [0.16.5] - 2026-07-16
|
|
62
|
+
|
|
63
|
+
### Fixed
|
|
64
|
+
|
|
65
|
+
- Kept failed-review rework in the original squad, preserving task ownership and durable session continuity.
|
|
66
|
+
|
|
67
|
+
[Unreleased]: https://github.com/picassio/pi-squad/compare/v0.18.0...HEAD
|
|
68
|
+
[0.18.0]: https://github.com/picassio/pi-squad/compare/v0.17.2...v0.18.0
|
|
69
|
+
[0.17.2]: https://github.com/picassio/pi-squad/compare/v0.17.1...v0.17.2
|
|
70
|
+
[0.17.1]: https://github.com/picassio/pi-squad/compare/v0.17.0...v0.17.1
|
|
71
|
+
[0.17.0]: https://github.com/picassio/pi-squad/compare/v0.16.7...v0.17.0
|
|
72
|
+
[0.16.7]: https://github.com/picassio/pi-squad/compare/v0.16.6...v0.16.7
|
|
73
|
+
[0.16.6]: https://github.com/picassio/pi-squad/compare/v0.16.5...v0.16.6
|
|
74
|
+
[0.16.5]: https://github.com/picassio/pi-squad/compare/v0.16.4...v0.16.5
|
package/README.md
CHANGED
|
@@ -90,6 +90,14 @@ squad_modify({ action: "resume_task", squadId: "<exact-squad-id>", taskId: "<exa
|
|
|
90
90
|
|
|
91
91
|
Repeated reconciliation and restart do not create notification storms. A delivered stall remains visible until explicit resumption changes the state; a different suspended/blocked set is a new actionable episode.
|
|
92
92
|
|
|
93
|
+
### Persistent Master Switch
|
|
94
|
+
|
|
95
|
+
`/squad disable` persists a global master switch in `~/.pi/squad/settings.json`. It first saves the disabled state, then stops schedulers, durably suspends in-progress tasks, kills child processes, clears focus, and hides the widget. On later Pi restarts, disabled mode does not reconstruct schedulers, recover mail, resume sessions, normalize tasks, or select a squad.
|
|
96
|
+
|
|
97
|
+
While disabled, all five squad tools and every `/squad` operation fail closed with `/squad enable` guidance; only exact `/squad enable` and the idempotent exact `/squad disable` control commands run. Tool schemas remain registered. Mandatory pending/failed review gates and suspended-stall reminders remain injected because they are durable safety obligations, but they do not authorize squad work while disabled.
|
|
98
|
+
|
|
99
|
+
`/squad enable` persists the enabled state and restores widget availability without selecting a squad or resuming anything. Suspended work remains suspended until an explicit exact-task resume or `/squad resume <squad-id>`.
|
|
100
|
+
|
|
93
101
|
### QA Rework Loop
|
|
94
102
|
|
|
95
103
|
When a QA agent outputs `## Verdict: FAIL`, the scheduler automatically:
|
|
@@ -217,7 +225,7 @@ Full overlay with task list, live activity preview, and scrollable message view.
|
|
|
217
225
|
| `/squad cancel` | Cancel the visibly focused squad; the notification names it and the focused widget/status clear |
|
|
218
226
|
| `/squad clear` | Dismiss widget |
|
|
219
227
|
| `/squad cleanup` | Delete squad data |
|
|
220
|
-
| `/squad enable/disable` |
|
|
228
|
+
| `/squad enable/disable` | Persistently enable/disable all squad execution; enabling never auto-resumes work |
|
|
221
229
|
|
|
222
230
|
## Tools (LLM-callable)
|
|
223
231
|
|
|
@@ -225,6 +233,7 @@ Full overlay with task list, live activity preview, and scrollable message view.
|
|
|
225
233
|
|---|---|
|
|
226
234
|
| `squad` | Start a squad with goal + optional tasks/config |
|
|
227
235
|
| `squad_status` | Check progress, costs, task states |
|
|
236
|
+
| `squad_review` | Record the main orchestrator's independent acceptance review |
|
|
228
237
|
| `squad_message` | Durably message an exact task; completed tasks reopen on their original session |
|
|
229
238
|
| `squad_modify` | Add/cancel/complete/pause/resume tasks or squads, or replace a task's dependencies with `set_dependencies`; exact `squadId` is required for destructive whole-squad `cancel` and recommended for all task actions |
|
|
230
239
|
|
|
@@ -331,7 +340,7 @@ Agents must complete at least one LLM turn and produce either a tool call or a s
|
|
|
331
340
|
|
|
332
341
|
- Every task owns one durable Pi session. New tasks create it under their task directory; stale, suspended, failed, or explicitly reopened tasks resume that same session rather than starting over. A pre-prompt retry may refresh Pi's provisional session ID only while the bound file is the same and its JSONL has not materialized; afterward both file and ID are immutable.
|
|
333
342
|
- Legacy tasks without a session binding migrate on first reopen by creating a task-owned session and seeding its first prompt with the complete persisted multiline message history and prior task output—without truncation.
|
|
334
|
-
- In-progress tasks are **suspended** on orderly shutdown; ordinary orphaned work is paused for explicit resume.
|
|
343
|
+
- In-progress tasks are **suspended** on orderly shutdown; ordinary orphaned work is paused for explicit resume. When the persistent master switch is enabled, a reconstructed scheduler can resume stale `in_progress` state through reconciliation, and startup reconstructs project squads with pending mailbox entries—including `review` or already accepted `done` squads—to resume delivery. Disabled startup performs none of this recovery.
|
|
335
344
|
- A durable message to a completed task clears its prior completion/review state, reopens the squad, keeps the task `in_progress` while its agent is live, and requires a fresh orchestrator review after the final `agent_settled`. Every transitive descendant is re-blocked and reruns in dependency order, so results derived from the reopened dependency cannot remain falsely complete.
|
|
336
345
|
- Failure is never terminal: `resume` recovers failed squads (failed tasks reset to pending), `complete_task` marks recovered work done and schedules dependents, and a 60s reconcile loop re-derives scheduling from persisted state so out-of-band store edits can't strand ready tasks.
|
|
337
346
|
- Mail is acknowledged only after Pi accepts the correlated RPC command. Pending and acknowledged entries remain task-addressed on disk, survive process restart, and remain visible in history. Queue and acknowledgement read/modify/write operations are serialized across processes so concurrent mutations cannot overwrite messages or delivery state.
|
|
@@ -355,6 +364,7 @@ All state in `~/.pi/squad/`. No database, no daemon. Writes are atomic. JSONL re
|
|
|
355
364
|
|
|
356
365
|
```
|
|
357
366
|
~/.pi/squad/
|
|
367
|
+
├── settings.json — persistent master switch, defaults, and advisor settings
|
|
358
368
|
├── agents/ — agent definitions (user-editable)
|
|
359
369
|
├── debug.log — error and debug logging
|
|
360
370
|
└── {squad-id}/
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# Persistent squad master-switch contract
|
|
2
|
+
|
|
3
|
+
Status: implementation contract (not current implementation truth)
|
|
4
|
+
|
|
5
|
+
## 1. State and persistence
|
|
6
|
+
|
|
7
|
+
The master switch is global, not project- or session-local.
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
interface SquadSettings {
|
|
11
|
+
enabled: boolean;
|
|
12
|
+
// existing defaultModel, defaultThinking, and advisor fields remain unchanged
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
DEFAULT_SQUAD_SETTINGS.enabled = true;
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
- Persist the value at `~/.pi/squad/settings.json` through the existing atomic settings writer.
|
|
19
|
+
- A missing settings file, a legacy file without `enabled`, or a non-boolean `enabled` uses the backward-compatible default `true`. Other settings keep their existing deep-merge behavior.
|
|
20
|
+
- Every whole-settings write (including `/squad defaults` and `/squad advisor`) must preserve the effective `enabled` value.
|
|
21
|
+
- The extension loads the effective setting before any `session_start` widget installation, focus restoration, orphan cleanup, attestation audit, scheduler construction/start, suspended-stall recovery, mailbox recovery, or squad notification.
|
|
22
|
+
- Tools and the `/squad` command remain statically registered in both states. Registration is not permission to execute.
|
|
23
|
+
- The conditional child-only `squad_spec_read` registration is not a main-session squad execution path; its existing file-spec guard remains unchanged. Disabling the parent kills its child processes.
|
|
24
|
+
|
|
25
|
+
A failed settings write fails the control command. It must not update the in-memory master state or claim success.
|
|
26
|
+
|
|
27
|
+
## 2. Disabled startup
|
|
28
|
+
|
|
29
|
+
When the loaded value is `false`, `session_start` is read-only with respect to squad work:
|
|
30
|
+
|
|
31
|
+
- do not create or start a `Scheduler`;
|
|
32
|
+
- do not audit or rewrite file-spec/task/squad state;
|
|
33
|
+
- do not normalize orphaned `in_progress` tasks;
|
|
34
|
+
- do not recover pending mail, resume sessions, acknowledge attention, or spawn children;
|
|
35
|
+
- do not select/focus a squad, install/show squad widget content, open a panel, or register an operational Ctrl+Q path;
|
|
36
|
+
- do not emit ordinary paused/recovery/completion/failure notifications.
|
|
37
|
+
|
|
38
|
+
The only lifecycle exception is the durable safety injection in section 7. Reading persisted review/attention records for that injection is allowed; reconstructing or mutating work is not.
|
|
39
|
+
|
|
40
|
+
An enabled startup retains existing recovery behavior and contracts. In particular, explicitly `suspended` tasks still never resume merely because Pi restarted.
|
|
41
|
+
|
|
42
|
+
## 3. Public tool gate
|
|
43
|
+
|
|
44
|
+
The enabled check is the first operation in every main-session tool `execute` handler, before target inference, store lookup, focus changes, scheduler construction, mailbox writes, review writes, or other mutations. While disabled, every tool returns a non-throwing result with clear guidance such as:
|
|
45
|
+
|
|
46
|
+
```text
|
|
47
|
+
pi-squad is disabled. Run /squad enable, then retry this operation; no squad work was changed.
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
All five public tools registered in `src/index.ts` are covered:
|
|
51
|
+
|
|
52
|
+
| Tool | Disabled behavior |
|
|
53
|
+
|---|---|
|
|
54
|
+
| `squad` | No planning, publication, scheduler, task, or child creation. |
|
|
55
|
+
| `squad_status` | No latest/active lookup or context refresh; fail closed rather than offering a read-only bypass. |
|
|
56
|
+
| `squad_review` | No attestation scheduler/audit and no review mutation. The durable review gate remains pending/failed and injected. |
|
|
57
|
+
| `squad_message` | No mailbox write, scheduler reconstruction, task reopening, or delivery. |
|
|
58
|
+
| `squad_modify` | Every action fails closed, including add/set-dependencies/cancel/pause/resume/complete and whole-squad actions. |
|
|
59
|
+
|
|
60
|
+
Static schemas/descriptions remain available to the model, but a call cannot execute until enabled.
|
|
61
|
+
|
|
62
|
+
## 4. Slash-command and UI gate
|
|
63
|
+
|
|
64
|
+
The `/squad` handler checks the master state before defaulting, resolving a direct squad ID, reading targets, or opening interactive UI.
|
|
65
|
+
|
|
66
|
+
While disabled:
|
|
67
|
+
|
|
68
|
+
- exact `/squad enable` is allowed;
|
|
69
|
+
- repeated `/squad disable` is an idempotent control-plane no-op that reports the extension is already disabled and points to `/squad enable`; it never reconstructs work;
|
|
70
|
+
- every other form returns one clear disabled notification and performs no squad-work or settings mutation.
|
|
71
|
+
|
|
72
|
+
This covers every registered branch and fallback in `src/index.ts`:
|
|
73
|
+
|
|
74
|
+
| Form | Disabled result |
|
|
75
|
+
|---|---|
|
|
76
|
+
| `/squad`, `/squad select`, `/squad list`, `/squad all`, `/squad <squad-id>` | No selection, focus, or store-driven UI. |
|
|
77
|
+
| `/squad resume [id]` | No scheduler construction or task/squad transition. |
|
|
78
|
+
| `/squad msg ...` | No mailbox or task mutation. |
|
|
79
|
+
| `/squad widget`, `/squad panel`, `/squad clear` | No view activation or panel/widget bypass. |
|
|
80
|
+
| `/squad cancel`, `/squad cleanup [all]` | No stopping/deleting/mutating persisted squads. |
|
|
81
|
+
| `/squad agents`, `/squad defaults`, `/squad advisor` | No agent/settings editor mutation while the master switch is off. |
|
|
82
|
+
|
|
83
|
+
Ctrl+Q and all already-created panel callbacks obey the same gate: while disabled they may consume the input and show enable guidance, but may not resolve/focus a squad, construct/start a scheduler, send mail, pause/resume/cancel tasks, or mutate work. If an overlay is open during disable, close it when supported; regardless, its callbacks must fail closed.
|
|
84
|
+
|
|
85
|
+
## 5. `/squad disable` transition
|
|
86
|
+
|
|
87
|
+
From enabled state, ordering is mandatory:
|
|
88
|
+
|
|
89
|
+
1. Load current settings, set `enabled: false`, and atomically persist them. If this fails, abort without claiming or entering disabled mode.
|
|
90
|
+
2. Set the in-memory master state to false immediately after persistence, so concurrent public paths fail closed during shutdown.
|
|
91
|
+
3. Stop every registered scheduler. Existing `Scheduler.stop()` ordering remains authoritative: stop monitor/reconcile, durably change each `in_progress` task to `suspended`, then kill all child processes. Await every stop/kill before reporting success.
|
|
92
|
+
4. Clear the scheduler registry and active focus. Do not reconstruct an absent scheduler merely to disable it.
|
|
93
|
+
5. Force `widgetState.enabled = false`, clear its squad target/status, request a render clear (or dispose the widget), and prevent late scheduler events from showing it again.
|
|
94
|
+
6. Leave all pending/failed review evidence, review history, mailbox data, sessions, cancellation state, file-spec evidence, and suspended-stall attention intact.
|
|
95
|
+
7. Notify truthfully that pi-squad is disabled and `/squad enable` is required.
|
|
96
|
+
|
|
97
|
+
The operation is idempotent. Repeating it while already disabled does not rewrite tasks, resume work, create schedulers, or duplicate children; it reports the already-disabled state. A task already suspended remains suspended.
|
|
98
|
+
|
|
99
|
+
## 6. `/squad enable` transition and no-auto-resume rule
|
|
100
|
+
|
|
101
|
+
Ordering is symmetric at the persistence boundary:
|
|
102
|
+
|
|
103
|
+
1. Load current settings, set `enabled: true`, and atomically persist them. On failure, remain disabled.
|
|
104
|
+
2. Set the in-memory master state to true.
|
|
105
|
+
3. Restore widget *availability* (`widgetState.enabled = true` and install/request its controls when UI exists), but keep focus cleared unless the user explicitly selects a squad. An empty widget is valid.
|
|
106
|
+
4. Do not construct/start a scheduler, audit work, recover mail, reopen a task, resume a child session, select a squad, clear an attention record, or change any squad/task status.
|
|
107
|
+
5. Notify: pi-squad is enabled; no suspended work was resumed; `/squad select` and an explicit `/squad resume <id>` or exact `squad_modify resume_task` may be required.
|
|
108
|
+
|
|
109
|
+
Repeated enable is idempotent: it converges persisted/in-memory enabled state and widget availability without spawning, selecting, resuming, or duplicating anything.
|
|
110
|
+
|
|
111
|
+
**Explicit consent is required after disable.** Work suspended by disable remains suspended across `/squad enable` and across disabled restarts. Selection is view-only. Only a later explicit resume operation may revive it, using the existing exact-target, task-session, mailbox, descendant-invalidation, and failed-review-history contracts.
|
|
112
|
+
|
|
113
|
+
## 7. Authoritative safety reminders while disabled
|
|
114
|
+
|
|
115
|
+
Master disable suppresses ordinary squad hints/status prompts and operational event notifications, but it must never hide or weaken these persisted safety obligations:
|
|
116
|
+
|
|
117
|
+
1. Every project squad in `review` keeps its complete mandatory orchestrator review gate injected by `before_agent_start`, across focus changes and while disabled. Candidate work remains untrusted and cannot become accepted. Because `squad_review` is fail-closed while disabled, the injected guidance must state that `/squad enable` is required before recording the independent review.
|
|
118
|
+
2. Every active persisted `suspendedStallAttention` keeps its complete exact squad ID, suspended IDs, blocked IDs, and “No task was resumed automatically” reminder injected project-wide while disabled. Guidance must state: enable first, then explicitly resume only intended exact tasks.
|
|
119
|
+
|
|
120
|
+
These are read-only, durable prompt injections, not permission to reconstruct a scheduler, acknowledge an outbox record, auto-resume work, or call a blocked tool. Review evidence and suspended-attention data remain authoritative and untruncated.
|
|
121
|
+
|
|
122
|
+
## 8. Widget and event behavior
|
|
123
|
+
|
|
124
|
+
The master switch outranks the separate session-local `/squad widget` preference.
|
|
125
|
+
|
|
126
|
+
- Disabled means no widget body and no squad status-line content, even if a prior widget toggle was on or a late scheduler event arrives.
|
|
127
|
+
- Disable clears focus and hides immediately after children are quiesced; enable restores the widget mechanism but does not infer a target.
|
|
128
|
+
- Ordinary `before_agent_start` squad hints/active status are absent while disabled; only section 7 safety text remains.
|
|
129
|
+
- Late scheduler callbacks after disable must not emit ordinary review/failure/reply/escalation UI or re-enable/focus the widget. Their durable state must still obey existing cancellation, suspension, and review guards.
|
|
130
|
+
|
|
131
|
+
## 9. Required regression matrix
|
|
132
|
+
|
|
133
|
+
Implementation tests must prove persisted state as well as returned text:
|
|
134
|
+
|
|
135
|
+
1. Missing/legacy settings default enabled; `false` and `true` survive extension/session restart; other settings survive both writes.
|
|
136
|
+
2. Disabled startup creates zero schedulers/children and performs zero orphan, attestation, mailbox, focus, widget, or task/squad mutation.
|
|
137
|
+
3. Each of the five registered public tools fails before lookup/reconstruction/mutation and includes `/squad enable` guidance.
|
|
138
|
+
4. Every slash branch/fallback listed in section 4, default `/squad`, direct-ID activation, Ctrl+Q, and panel actions have no disabled bypass.
|
|
139
|
+
5. Disable persists before stop, suspends live tasks durably, kills all children, clears scheduler/focus, and hides widget; a persistence failure leaves enabled runtime unchanged.
|
|
140
|
+
6. Enable restores widget availability and clear guidance but does not select, reconstruct, recover, or resume work.
|
|
141
|
+
7. Repeated enable/disable causes no duplicate scheduler/child, task rewrite, or auto-resume.
|
|
142
|
+
8. Disabled restart and later enable leave suspended tasks suspended; only explicit exact resume changes them.
|
|
143
|
+
9. Pending/failed review and delivered/pending suspended-attention reminders remain complete and injected while disabled, with enable-first guidance; no review/attention record is mutated.
|
|
144
|
+
10. Existing cancellation, mandatory review, file-spec/attestation, mailbox/session, no-truncation, and suspended-stall suites remain green.
|
|
145
|
+
|
|
146
|
+
## 10. Registration cross-check
|
|
147
|
+
|
|
148
|
+
`src/index.ts` currently exposes exactly five main-session tools (`squad`, `squad_status`, `squad_review`, `squad_message`, `squad_modify`) and one `/squad` command whose branches are `list`, `all`, `select`, `resume`, `widget`, `panel`, `msg`, `cancel`, `clear`, `cleanup`, `enable`, `disable`, `defaults`, `advisor`, `agents`, plus default selection and direct-ID fallback. Sections 3 and 4 cover every registration and branch. The session-start Ctrl+Q panel path and panel callbacks are covered separately because they are public execution surfaces even though they are not slash commands.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-squad",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.18.0",
|
|
4
4
|
"description": "Multi-agent collaboration extension for pi — task decomposition, dependency management, parallel execution, TUI panel",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"files": [
|
|
25
25
|
"src",
|
|
26
26
|
"docs",
|
|
27
|
+
"CHANGELOG.md",
|
|
27
28
|
"README.md",
|
|
28
29
|
"LICENSE"
|
|
29
30
|
],
|