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 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.0",
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) && report.changedFiles.length > 0;
391
- case "tests-added": return isStringArray(report.testsAddedOrUpdated) && report.testsAddedOrUpdated.length > 0;
392
- case "commands-run": return Array.isArray(report.commandsRun) && report.commandsRun.length > 0;
393
- case "validation-output": return isStringArray(report.validationOutput) && report.validationOutput.length > 0;
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;