pi-cohort 5.3.0 → 5.3.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 +7 -0
- package/package.json +5 -9
- package/src/runs/shared/acceptance.ts +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [5.3.1] - 2026-09-01
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- Async (detached) subagent runs no longer crash at boot with `Cannot find module 'typebox/compile'` on consumer installs: `typebox` is now a real runtime dependency (`^1.3.11`). This deliberately re-reverses 2.0.0's move of typebox to peerDependencies - that decision's "match pi's bundled packages" rationale only holds for code running under pi's jiti aliases, and the detached runner runs outside them (same reasoning as `jiti` itself being a real dependency). ([#9](https://github.com/jjuraszek/pi-cohort/issues/9))
|
|
8
|
+
- Acceptance evidence checks now treat present-but-empty `changedFiles`, `testsAddedOrUpdated`, `commandsRun`, and `validationOutput` arrays as reported evidence ("ran and touched nothing") instead of rejecting the run with `evidence missing`; an absent field still fails structurally. No-op async worker runs with all criteria passing now reach `checked` status. ([#9](https://github.com/jjuraszek/pi-cohort/issues/9))
|
|
9
|
+
|
|
3
10
|
## [5.3.0] - 2026-09-01
|
|
4
11
|
|
|
5
12
|
### Changed
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-cohort",
|
|
3
|
-
"version": "5.3.
|
|
3
|
+
"version": "5.3.1",
|
|
4
4
|
"description": "Delegate Pi work to focused child agents: code review, scouting, implementation, parallel audits, saved chains, and background jobs.",
|
|
5
5
|
"author": "Jacek Juraszek",
|
|
6
6
|
"license": "MIT",
|
|
@@ -60,8 +60,7 @@
|
|
|
60
60
|
"@earendil-works/pi-agent-core": "*",
|
|
61
61
|
"@earendil-works/pi-ai": "*",
|
|
62
62
|
"@earendil-works/pi-coding-agent": "*",
|
|
63
|
-
"@earendil-works/pi-tui": "*"
|
|
64
|
-
"typebox": "*"
|
|
63
|
+
"@earendil-works/pi-tui": "*"
|
|
65
64
|
},
|
|
66
65
|
"peerDependenciesMeta": {
|
|
67
66
|
"@earendil-works/pi-agent-core": {
|
|
@@ -75,19 +74,16 @@
|
|
|
75
74
|
},
|
|
76
75
|
"@earendil-works/pi-tui": {
|
|
77
76
|
"optional": true
|
|
78
|
-
},
|
|
79
|
-
"typebox": {
|
|
80
|
-
"optional": true
|
|
81
77
|
}
|
|
82
78
|
},
|
|
83
79
|
"dependencies": {
|
|
84
|
-
"jiti": "^2.7.0"
|
|
80
|
+
"jiti": "^2.7.0",
|
|
81
|
+
"typebox": "^1.3.11"
|
|
85
82
|
},
|
|
86
83
|
"devDependencies": {
|
|
87
84
|
"@earendil-works/pi-agent-core": "^0.74.0",
|
|
88
85
|
"@earendil-works/pi-ai": "^0.74.0",
|
|
89
86
|
"@earendil-works/pi-coding-agent": "^0.74.0",
|
|
90
|
-
"@earendil-works/pi-tui": "^0.74.0"
|
|
91
|
-
"typebox": "^1.1.24"
|
|
87
|
+
"@earendil-works/pi-tui": "^0.74.0"
|
|
92
88
|
}
|
|
93
89
|
}
|
|
@@ -387,10 +387,10 @@ function checkCriteriaSatisfied(criteria: ResolvedAcceptanceGate[], report: Acce
|
|
|
387
387
|
|
|
388
388
|
function reportEvidencePresent(report: AcceptanceReport, kind: AcceptanceEvidenceKind): boolean {
|
|
389
389
|
switch (kind) {
|
|
390
|
-
case "changed-files": return isStringArray(report.changedFiles)
|
|
391
|
-
case "tests-added": return isStringArray(report.testsAddedOrUpdated)
|
|
392
|
-
case "commands-run": return Array.isArray(report.commandsRun)
|
|
393
|
-
case "validation-output": return isStringArray(report.validationOutput)
|
|
390
|
+
case "changed-files": return isStringArray(report.changedFiles);
|
|
391
|
+
case "tests-added": return isStringArray(report.testsAddedOrUpdated);
|
|
392
|
+
case "commands-run": return Array.isArray(report.commandsRun);
|
|
393
|
+
case "validation-output": return isStringArray(report.validationOutput);
|
|
394
394
|
case "residual-risks": return isStringArray(report.residualRisks);
|
|
395
395
|
case "no-staged-files": return report.noStagedFiles === true;
|
|
396
396
|
case "diff-summary": return typeof report.diffSummary === "string" && report.diffSummary.trim().length > 0;
|