@mmerterden/multi-agent-pipeline 16.7.1 → 16.8.1
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,28 @@ 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.8.1] - 2026-08-25
|
|
30
|
+
|
|
31
|
+
### Fixed
|
|
32
|
+
|
|
33
|
+
- **`/multi-agent:help` still described the analysis command as it behaved before 16.6.0.** The entry read "per-platform v3 doc (23-section Full / 7-section Lite)" and said nothing about the standard being asked at intake, the corporate profile, stack being optional, or References being built from the evidence record - the word "profile" appeared nowhere in the file. Two releases had added the behaviour and neither had updated the sentence a user reads to learn what the command does.
|
|
34
|
+
- **The Copilot and Codex help never listed the analysis family at all.** `multi-agent-analysis` and `multi-agent-analysis-resolve` were absent in both the colon and the dash form, so a user on those hosts could not discover them from help. This predates the recent work; it surfaced while auditing the entry above.
|
|
35
|
+
|
|
36
|
+
Both fixes fit under the file's grandfathered token ceiling rather than raising it: the new text was trimmed where it carried the least, which is the same rule the 16.7.1 entry followed.
|
|
37
|
+
|
|
38
|
+
## [16.8.0] - 2026-08-25
|
|
39
|
+
|
|
40
|
+
Usage reporting answers the question it was built for, and stops carrying what it never should have.
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
|
|
44
|
+
- **`usageLog.enabled` now defaults to `true`.** Reporting was opt-in and nothing opted in, so the panel showed three runs across eight days and could not distinguish "nobody uses this" from "the pipe is broken" - the sender swallows every error by design. On-by-default is defensible only because of the change below: the payload carries no repository name, no path, no prompt, no diff and no secret. `usageLog.optOut: true` remains the hard escape hatch, and `enabled: false` still silences the emitter completely.
|
|
45
|
+
- **The event carries the command that ran.** `commandOf()` returned `state.mode`, so every row read `full` or `local` and the one question the panel exists to answer - which commands people actually run - had no answer in the data. It now sends the invoked command; `mode` continues to ship separately.
|
|
46
|
+
|
|
47
|
+
### Fixed
|
|
48
|
+
|
|
49
|
+
- **The repository name is no longer sent.** `rp` carried the raw project name, which put a corporate repository into the maintainer's database - the exact disclosure this telemetry must not make. It now sends a one-way digest: stable, so runs still group per project, and unreadable back into a name. The panel never needed the name, only the ability to tell one project's runs from another's. The row already stored was redacted in place.
|
|
50
|
+
|
|
29
51
|
## [16.7.1] - 2026-08-25
|
|
30
52
|
|
|
31
53
|
### Fixed
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mmerterden/multi-agent-pipeline",
|
|
3
|
-
"version": "16.
|
|
3
|
+
"version": "16.8.1",
|
|
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",
|
|
@@ -120,7 +120,7 @@ Post-Hoc & Side-Channel:
|
|
|
120
120
|
/multi-agent:review Parallel review of a PR or branch diff; no URL -> pick open GitHub/Bitbucket PRs
|
|
121
121
|
/multi-agent:review-jira Grade a Jira issue's pipeline-readiness -> comment the gaps on it
|
|
122
122
|
/multi-agent:review-issue Grade a GitHub issue's pipeline-readiness -> comment the gaps on it
|
|
123
|
-
/multi-agent:analysis ["analysis-name"] Feature-spec analysis (Figma + Swagger + Confluence + repos)
|
|
123
|
+
/multi-agent:analysis ["analysis-name"] Feature-spec analysis (Figma + Swagger + Confluence + repos). Asks the standard first: global (23-section dev handoff) or corporate (IG→UC→FG requirements doc). Stack optional; References built from the evidence record
|
|
124
124
|
/multi-agent:analysis-resolve [doc] Resolve Section 20 open questions of an analysis doc, one at a time with source-labeled candidates
|
|
125
125
|
/multi-agent:review-analysis [doc] Review a written analysis; findings cite the rule they break
|
|
126
126
|
/multi-agent:complaint-analysis ["run-name"] [--file path] Customer-complaint triage: Graylog evidence per trx/conv id + read-only repo correlation → client/bff root cause + fix plan + dev prompt, or core routing recommendation
|
|
@@ -394,7 +394,7 @@ Post-Hoc & Side-Channel:
|
|
|
394
394
|
/multi-agent:review PR veya branch diff'ini paralel review et; URL yoksa -> açık GitHub/Bitbucket PR'larını seçtir
|
|
395
395
|
/multi-agent:review-jira Jira maddesinin pipeline'a hazırlığını değerlendir -> eksikleri yorum olarak ekle
|
|
396
396
|
/multi-agent:review-issue GitHub issue'nun pipeline'a hazırlığını değerlendir -> eksikleri yorum olarak ekle
|
|
397
|
-
/multi-agent:analysis ["analysis-name"] Feature-spec analizi (Figma + Swagger + Confluence + repolar)
|
|
397
|
+
/multi-agent:analysis ["analysis-name"] Feature-spec analizi (Figma + Swagger + Confluence + repolar). Önce standardı sorar: global (23 bölümlük geliştirme dokümanı) veya kurumsal (IG→UC→FG gereksinim dokümanı). Stack opsiyonel; Referanslar kanıt kaydından üretilir
|
|
398
398
|
/multi-agent:analysis-resolve [doc] Analiz dokümanının Bölüm 20 açık sorularını kaynak etiketli adaylarla teker teker çözer
|
|
399
399
|
/multi-agent:review-analysis [doc] Yazılmış analizi review eder; bulgular ihlal edilen kuralı gösterir
|
|
400
400
|
/multi-agent:complaint-analysis ["run-adı"] [--file yol] Müşteri şikayeti triyajı: trx/conv id ile Graylog kanıtı + salt-okunur repo eşleştirme → client/bff kök neden + fix planı + dev prompt'u, veya core'a yönlendirme önerisi
|
|
@@ -1061,8 +1061,8 @@
|
|
|
1061
1061
|
"properties": {
|
|
1062
1062
|
"enabled": {
|
|
1063
1063
|
"type": "boolean",
|
|
1064
|
-
"default":
|
|
1065
|
-
"description": "Master switch.
|
|
1064
|
+
"default": true,
|
|
1065
|
+
"description": "Master switch, on by default. The payload carries no repository name, path, prompt, diff or secret - only which command ran, how long, how many tokens, and whether it failed - which is what makes on-by-default defensible. Set false, or optOut true, and the emitter exits silently with nothing leaving the machine."
|
|
1066
1066
|
},
|
|
1067
1067
|
"optOut": {
|
|
1068
1068
|
"type": "boolean",
|
|
@@ -26,6 +26,7 @@ import { homedir, platform } from "os";
|
|
|
26
26
|
import { dirname, join } from "path";
|
|
27
27
|
import { fileURLToPath, pathToFileURL } from "url";
|
|
28
28
|
import { execFileSync } from "child_process";
|
|
29
|
+
import { createHash } from "crypto";
|
|
29
30
|
import { costUsd } from "./_cost.mjs";
|
|
30
31
|
|
|
31
32
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
@@ -272,13 +273,28 @@ function inputType(state) {
|
|
|
272
273
|
return "free-text";
|
|
273
274
|
}
|
|
274
275
|
|
|
276
|
+
// The command that was actually invoked (`/multi-agent:analysis`, `:review`,
|
|
277
|
+
// ...). This used to return `state.mode`, so every row read "full" or "local"
|
|
278
|
+
// and the one question the panel exists to answer - which command did people
|
|
279
|
+
// run - had no answer in the data. `mode` still ships separately as `m`.
|
|
275
280
|
function commandOf(state) {
|
|
281
|
+
const c = state.command;
|
|
282
|
+
if (typeof c === "string" && c.trim()) return c.trim().slice(0, 60);
|
|
276
283
|
if (state.mode) return state.mode;
|
|
277
284
|
if (state.onlyDevelop) return "dev";
|
|
278
285
|
if (state.localMode) return "local";
|
|
279
286
|
return "full";
|
|
280
287
|
}
|
|
281
288
|
|
|
289
|
+
// A repository name is the user's, not ours. It put a corporate project into
|
|
290
|
+
// the maintainer's database, which is the disclosure this telemetry must not
|
|
291
|
+
// make - and the panel never needed the name, only the ability to tell one
|
|
292
|
+
// project's runs from another's. A digest does that and cannot be read back.
|
|
293
|
+
function projectDigest(name) {
|
|
294
|
+
if (typeof name !== "string" || !name.trim()) return null;
|
|
295
|
+
return `p${createHash("sha256").update(name.trim()).digest("hex").slice(0, 8)}`;
|
|
296
|
+
}
|
|
297
|
+
|
|
282
298
|
function resolveTracker(state) {
|
|
283
299
|
const id = state.taskId || state.shortId;
|
|
284
300
|
if (id == null) return null;
|
|
@@ -490,7 +506,7 @@ function buildEvent(state) {
|
|
|
490
506
|
lo: Boolean(state.localMode),
|
|
491
507
|
dev: Boolean(state.onlyDevelop),
|
|
492
508
|
in: inputType(state),
|
|
493
|
-
rp: state.project
|
|
509
|
+
rp: projectDigest(state.project),
|
|
494
510
|
ph: typeof state.currentPhase === "number" ? state.currentPhase : null,
|
|
495
511
|
st: state.status || null,
|
|
496
512
|
hr: state.haltReason || null,
|
|
@@ -106,6 +106,8 @@ Utility Commands (dash form on Copilot, colon form on Claude Code):
|
|
|
106
106
|
/multi-agent:review Review a PR or branch diff; no URL -> pick open GitHub/Bitbucket PRs
|
|
107
107
|
/multi-agent:review-jira Grade a Jira issue's pipeline-readiness -> comment the gaps
|
|
108
108
|
/multi-agent:review-issue Grade a GitHub issue's pipeline-readiness -> comment the gaps
|
|
109
|
+
/multi-agent:analysis ["name"] Feature-spec analysis. Asks the standard first: global (23-section dev handoff) or corporate (IG→UC→FG requirements doc). Stack optional
|
|
110
|
+
/multi-agent:analysis-resolve [doc] Resolve an analysis doc's open questions one at a time, with source-labeled candidates
|
|
109
111
|
/multi-agent:review-analysis [doc | page | KEY] Review a written analysis: gates first, then parallel model review; findings cite the rule
|
|
110
112
|
/multi-agent:feedback "msg" Tell the maintainer something broke; only your text is sent, shown before it goes
|
|
111
113
|
/multi-agent:create-jira ["desc"] [figma-url] [swagger-url] Create a Jira Task/Bug/Story matching team conventions (asks type + preview + approval)
|