@mmerterden/multi-agent-pipeline 16.8.1 → 16.9.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
CHANGED
|
@@ -26,6 +26,16 @@ Internal file-layout changes that don't affect the slash-command surface are sti
|
|
|
26
26
|
|
|
27
27
|
- **`smoke-website-deploy-identity.sh` (20 assertions).** It runs the script against throwaway repos with real remotes rather than grepping the doc: the happy path lands and pushes, an exported `GIT_AUTHOR_EMAIL` halts with the commit still local, an unchanged tree makes no empty commit, a matching config is preserved while a wrong name is corrected, and missing or non-repository arguments exit 2. Wiring is asserted separately, since a correct script nothing calls is its own failure mode.
|
|
28
28
|
|
|
29
|
+
## [16.9.0] - 2026-08-25
|
|
30
|
+
|
|
31
|
+
### Added
|
|
32
|
+
|
|
33
|
+
- **`/multi-agent:analysis` emits a run record.** It is a pipeline of its own now - its own phases, its own gates, its own report - but telemetry was only wired into the dev pipeline's Phase 7, so analysis runs were invisible. The panel showed dev work only, and the command people reach for *before* writing any code did not exist in the usage data. Phase 5 now writes its own `agent-state.json` through `write-state.mjs` (atomic, lock-guarded, so concurrent runs cannot wipe each other) and calls the reporter. `mode` carries the profile, which is what tells one analysis run from another: a `global` run and a `corporate` run are different work. `project` is `null` on a stack-optional run - there is no repository to name - and is digested before it leaves the machine either way. The reporter stays best-effort: a failure there never touches the run, whose summary is already printed.
|
|
34
|
+
|
|
35
|
+
### Fixed
|
|
36
|
+
|
|
37
|
+
- The Phase 7 telemetry block still called reporting "optional, opt-in" after 16.8.0 made it on by default. It now states the default, both ways to silence it, and what is actually sent - command, duration, tokens, outcome - along with what is not: no repository name, path, prompt or diff. Same class of staleness as 16.7.1 and 16.8.1: the behaviour moved and the sentence describing it did not.
|
|
38
|
+
|
|
29
39
|
## [16.8.1] - 2026-08-25
|
|
30
40
|
|
|
31
41
|
### Fixed
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mmerterden/multi-agent-pipeline",
|
|
3
|
-
"version": "16.
|
|
3
|
+
"version": "16.9.0",
|
|
4
4
|
"description": "8-phase AI development pipeline with full orchestration on Claude Code, Copilot CLI and Codex CLI. Analysis, planning, TDD, CLI-aware parallel review with consensus surfacing + Fable triage, default-FAIL evidence gates, secret + intent guards, per-phase cost ledger, persistent learnings memory, wiki generation, commit automation. Token-preserving uninstall.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|
|
@@ -106,6 +106,18 @@ Iterate `state.analysisSpec.outputs.requested`. For each target:
|
|
|
106
106
|
|
|
107
107
|
After dispatch, print a summary to the user (in `outputLanguage`). Example shape:
|
|
108
108
|
|
|
109
|
+
**Operational reporting.** Analysis is a pipeline of its own now - its own phases, its own gates, its own report - so it emits a run record like any other run. Without this the panel shows dev runs only, and the command people reach for before writing code is invisible in the usage data.
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
STATE="$HOME/.claude/logs/multi-agent/$TASK_ID/agent-state.json"
|
|
113
|
+
mkdir -p "$(dirname "$STATE")"
|
|
114
|
+
printf '%s' "{\"taskId\":\"$TASK_ID\",\"command\":\"/multi-agent:analysis\",\"mode\":\"$PROFILE\",\"project\":${PROJECT_JSON:-null},\"status\":\"$STATUS\",\"finishedAt\":\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\"}" \
|
|
115
|
+
| node "$HOME/.claude/scripts/write-state.mjs" "$STATE" >/dev/null 2>&1 || true
|
|
116
|
+
node "$HOME/.claude/scripts/usage-report.mjs" --state "$STATE" >/dev/null 2>&1 || true
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
`mode` carries the profile (`global` / `corporate`), which is what distinguishes one analysis run from another. `project` is digested by the reporter before it leaves the machine, and is `null` on a stack-optional run - there is no repository to name. A failure here never affects the run: the reporter is best-effort and the summary above is already printed.
|
|
120
|
+
|
|
109
121
|
```
|
|
110
122
|
Feature: <featureName>
|
|
111
123
|
Language: <tr|en>
|
|
@@ -196,7 +196,7 @@ $HOME/.claude/scripts/log-metric.sh "$TASK_ID" 7 task.completed \
|
|
|
196
196
|
duration_ms=$TOTAL_DURATION
|
|
197
197
|
```
|
|
198
198
|
|
|
199
|
-
**Operational reporting
|
|
199
|
+
**Operational reporting.** On by default since v16.8.0; `enabled: false` or `optOut: true` silences it. Sends command, duration, tokens, outcome - never a repo name or path. One POST per run, fire-and-forget, coarse run metadata only - no prompts, code, diffs, or absolute paths. The script no-ops when `usageLog.enabled` is not true or no token resolves, so the call is unconditional and never blocks the run.
|
|
200
200
|
|
|
201
201
|
```bash
|
|
202
202
|
node $HOME/.claude/scripts/usage-report.mjs --state "$STATE_FILE" >/dev/null 2>&1 || true
|