principles-disciple 1.64.0 → 1.66.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.
@@ -2,7 +2,7 @@
2
2
  "id": "principles-disciple",
3
3
  "name": "Principles Disciple",
4
4
  "description": "Evolutionary programming agent framework with strategic guardrails and reflection loops.",
5
- "version": "1.64.0",
5
+ "version": "1.66.0",
6
6
  "skills": [
7
7
  "./skills"
8
8
  ],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "principles-disciple",
3
- "version": "1.64.0",
3
+ "version": "1.66.0",
4
4
  "description": "Native OpenClaw plugin for Principles Disciple",
5
5
  "type": "module",
6
6
  "main": "./dist/bundle.js",
@@ -733,18 +733,21 @@ function restartGatewayWindows() {
733
733
  const logPath = join(getTempDir(), 'openclaw-auto-restart.log');
734
734
 
735
735
  try {
736
- // Kill existing gateway processes first (don't rely on schtasks stop)
736
+ // Kill existing gateway processes first taskkill fails across Windows sessions,
737
+ // use WMIC which can terminate processes regardless of session boundary.
737
738
  console.log(' Stopping existing gateway processes...');
738
739
  try {
739
- const findCmd = "Get-Process -Name 'node' -ErrorAction SilentlyContinue | Where-Object { \$_.CommandLine -like '*openclaw*' } | Select-Object -ExpandProperty Id";
740
- const pids = execSync(`powershell -NoProfile -Command "${findCmd}"`, { encoding: 'utf-8' }).trim();
740
+ const findPids = `Get-NetTCPConnection -LocalPort 18789 -ErrorAction SilentlyContinue | Select-Object -ExpandProperty OwningProcess -Unique`;
741
+ const pids = execSync(`powershell -NoProfile -Command "${findPids}"`, { encoding: 'utf-8' }).trim();
741
742
  if (pids) {
742
- const pidList = pids.split('\n').filter(p => p.trim());
743
+ const pidList = pids.split('\n').filter(p => p.trim() && p !== '0');
743
744
  for (const pid of pidList) {
744
- try { execSync(`taskkill /PID ${pid.trim()} /F`, { stdio: 'pipe' }); } catch { /* ignore */ }
745
+ const pidTrim = pid.trim();
746
+ try {
747
+ execSync(`wmic process where "ProcessId=${pidTrim}" call terminate`, { stdio: 'ignore' });
748
+ } catch { /* ignore individual failures */ }
745
749
  }
746
- // Wait for graceful shutdown
747
- execSync('timeout /t 2 /nobreak > nul', { shell: true, stdio: 'ignore' });
750
+ execSync('timeout /t 3 /nobreak > nul', { shell: true, stdio: 'ignore' });
748
751
  }
749
752
  } catch { /* no existing processes */ }
750
753
 
@@ -416,12 +416,10 @@ export class EventLog {
416
416
  }
417
417
  } else if (Object.prototype.hasOwnProperty.call(raw, 'success')) {
418
418
  // Legacy format: { success: boolean }
419
- // Apply agreed default semantics: treat as 'success' if true, 'missing_json' if false
420
- if (raw['success']) {
421
- stats.evolution.diagnosticianReportsWritten++;
422
- }
423
- // Note: legacy 'false' entries are not counted in any sub-counter since
424
- // the old system had no such breakdown; they are invisible in sub-stats.
419
+ // Agreed fix: count ALL legacy events in diagnosticianReportsWritten (+1 for both true and false).
420
+ // Sub-counters (reportsMissingJson/reportsIncompleteFields) stay untouched because
421
+ // legacy events lack enough information to distinguish sub-category — preserve total, don't fake breakdown.
422
+ stats.evolution.diagnosticianReportsWritten++;
425
423
  }
426
424
  } else if (entry.type === 'principle_candidate') {
427
425
  stats.evolution.principleCandidatesCreated++;