pi-harness-runtime 1.1.216 → 1.1.218
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/harness/honcho-memory.ts +33 -7
- package/harness/service-diagnostics.ts +4 -4
- package/index.ts +10 -10
- package/package.json +1 -1
- package/packages/a2a-adapter/package.json +1 -1
- package/packages/agent-policy/package.json +1 -1
- package/packages/architecture-generator/package.json +1 -1
- package/packages/auth/package.json +1 -1
- package/packages/autonomous-refactor/package.json +1 -1
- package/packages/autonomous-runtime/package.json +1 -1
- package/packages/cache-strategy/package.json +1 -1
- package/packages/capability-registry/package.json +1 -1
- package/packages/checkpoint/package.json +1 -1
- package/packages/cli-plugin-sdk/package.json +1 -1
- package/packages/clipboard/package.json +1 -1
- package/packages/clipboard-plugin/package.json +1 -1
- package/packages/code-generation/package.json +1 -1
- package/packages/code-review/package.json +1 -1
- package/packages/codex-adapter/package.json +1 -1
- package/packages/codex-watcher/package.json +1 -1
- package/packages/config-capture/package.json +1 -1
- package/packages/context-compiler/package.json +1 -1
- package/packages/context-discovery/package.json +1 -1
- package/packages/context-manager/package.json +1 -1
- package/packages/cookie-sanitizer/package.json +1 -1
- package/packages/cost-optimizer/package.json +1 -1
- package/packages/dependency-analyzer/package.json +1 -1
- package/packages/django-plugin/package.json +1 -1
- package/packages/doc-generator/package.json +1 -1
- package/packages/e2e-tester/package.json +1 -1
- package/packages/evaluation-engine/package.json +1 -1
- package/packages/evaluation-runner/package.json +1 -1
- package/packages/event-bus/package.json +1 -1
- package/packages/event-store/package.json +1 -1
- package/packages/experience-replay/package.json +1 -1
- package/packages/feedback-collector/package.json +1 -1
- package/packages/file-copy-helper/package.json +1 -1
- package/packages/framework-detector/package.json +1 -1
- package/packages/framework-plugin-sdk/package.json +1 -1
- package/packages/frappe-plugin/package.json +1 -1
- package/packages/generic-web-plugin/package.json +1 -1
- package/packages/health-monitor/package.json +1 -1
- package/packages/intent-analyzer/package.json +1 -1
- package/packages/jev-judge/package.json +1 -1
- package/packages/knowledge-graph/package.json +1 -1
- package/packages/knowledge-retrieval/package.json +1 -1
- package/packages/laravel-plugin/package.json +1 -1
- package/packages/learning-engine/package.json +1 -1
- package/packages/mcp-adapter/package.json +1 -1
- package/packages/memory-engine/package.json +1 -1
- package/packages/milestone-manager/package.json +1 -1
- package/packages/model-registry/package.json +1 -1
- package/packages/nextjs-plugin/package.json +1 -1
- package/packages/notification/package.json +1 -1
- package/packages/observability/package.json +1 -1
- package/packages/okf-indexer/package.json +1 -1
- package/packages/paperclip-integration/package.json +1 -1
- package/packages/performance-optimizer/package.json +1 -1
- package/packages/privilege-broker/package.json +1 -1
- package/packages/project-analyzer/package.json +1 -1
- package/packages/project-bootstrap/package.json +1 -1
- package/packages/projection-engine/package.json +1 -1
- package/packages/prompt-compiler/package.json +1 -1
- package/packages/prompt-versioning/package.json +1 -1
- package/packages/provider-adapter-sdk/package.json +1 -1
- package/packages/provider-router/package.json +1 -1
- package/packages/provider-selector/package.json +1 -1
- package/packages/providers/package.json +1 -1
- package/packages/qdrant-skills/package.json +1 -1
- package/packages/quota-manager/package.json +1 -1
- package/packages/rate-limiter/package.json +1 -1
- package/packages/react-vite-plugin/package.json +1 -1
- package/packages/release-manager/package.json +1 -1
- package/packages/requirement-compiler/package.json +1 -1
- package/packages/runtime/package.json +1 -1
- package/packages/scheduler/package.json +1 -1
- package/packages/scheduler-adapter/package.json +1 -1
- package/packages/session/package.json +1 -1
- package/packages/session-api/package.json +1 -1
- package/packages/session-export/package.json +1 -1
- package/packages/shared-context/package.json +1 -1
- package/packages/skill-mcp-client/package.json +1 -1
- package/packages/skill-registry/package.json +1 -1
- package/packages/skills/package.json +1 -1
- package/packages/sprint-planner/package.json +1 -1
- package/packages/subscription-engine/package.json +1 -1
- package/packages/task-compiler/package.json +1 -1
- package/packages/telegram/package.json +1 -1
- package/packages/tencentdb-memory/package.json +1 -1
- package/packages/tencentdb-sync/package.json +1 -1
- package/packages/test-data-generator/package.json +1 -1
- package/packages/test-generator/package.json +1 -1
- package/packages/todo-bd-sync/package.json +1 -1
- package/packages/token-estimation/package.json +1 -1
- package/packages/token-optimizer/package.json +1 -1
- package/packages/trajectory/package.json +1 -1
- package/packages/tui/package.json +1 -1
- package/packages/types/package.json +1 -1
- package/packages/webmcp-tester/package.json +1 -1
- package/packages/workflow-events/package.json +1 -1
- package/packages/workspace-scanner/package.json +1 -1
- package/packages/worktree/package.json +1 -1
- package/packages/write-review/package.json +1 -1
package/harness/honcho-memory.ts
CHANGED
|
@@ -200,13 +200,26 @@ async function checkHonchoHealth(): Promise<void> {
|
|
|
200
200
|
const data = await response.json().catch(() => ({})) as HonchoHealthResponse;
|
|
201
201
|
|
|
202
202
|
if (data.suspended || data.status === "suspended") {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
203
|
+
logServiceEvent({
|
|
204
|
+
ts: new Date().toISOString(),
|
|
205
|
+
level: "warn",
|
|
206
|
+
service: "honcho",
|
|
207
|
+
operation: "health_check",
|
|
208
|
+
phase: "failed",
|
|
209
|
+
reason: "account suspended due to inactivity",
|
|
210
|
+
helpUrl: "https://app.honcho.dev",
|
|
211
|
+
});
|
|
206
212
|
}
|
|
207
213
|
} catch (err) {
|
|
208
|
-
// Network errors are not critical
|
|
209
|
-
|
|
214
|
+
// Network errors are not critical - log to file
|
|
215
|
+
logServiceEvent({
|
|
216
|
+
ts: new Date().toISOString(),
|
|
217
|
+
level: "debug",
|
|
218
|
+
service: "honcho",
|
|
219
|
+
operation: "health_check",
|
|
220
|
+
phase: "failed",
|
|
221
|
+
reason: err instanceof Error ? err.message : String(err),
|
|
222
|
+
});
|
|
210
223
|
}
|
|
211
224
|
}
|
|
212
225
|
|
|
@@ -226,7 +239,14 @@ export function startHonchoHealthCheck(): void {
|
|
|
226
239
|
void checkHonchoHealth();
|
|
227
240
|
}, HONCHO_HEALTH_CHECK_INTERVAL);
|
|
228
241
|
|
|
229
|
-
|
|
242
|
+
logServiceEvent({
|
|
243
|
+
ts: new Date().toISOString(),
|
|
244
|
+
level: "info",
|
|
245
|
+
service: "honcho",
|
|
246
|
+
operation: "health_check_start",
|
|
247
|
+
phase: "completed",
|
|
248
|
+
intervalMs: HONCHO_HEALTH_CHECK_INTERVAL,
|
|
249
|
+
});
|
|
230
250
|
}
|
|
231
251
|
|
|
232
252
|
/**
|
|
@@ -236,7 +256,13 @@ export function stopHonchoHealthCheck(): void {
|
|
|
236
256
|
if (_honchoHealthInterval) {
|
|
237
257
|
clearInterval(_honchoHealthInterval);
|
|
238
258
|
_honchoHealthInterval = null;
|
|
239
|
-
|
|
259
|
+
logServiceEvent({
|
|
260
|
+
ts: new Date().toISOString(),
|
|
261
|
+
level: "info",
|
|
262
|
+
service: "honcho",
|
|
263
|
+
operation: "health_check_stop",
|
|
264
|
+
phase: "completed",
|
|
265
|
+
});
|
|
240
266
|
}
|
|
241
267
|
}
|
|
242
268
|
|
|
@@ -41,12 +41,12 @@ function ensureLogDir(): void {
|
|
|
41
41
|
* Sensitive fields (keys, tokens, full content) are never logged.
|
|
42
42
|
*/
|
|
43
43
|
export function logServiceEvent(event: ServiceEvent): void {
|
|
44
|
-
|
|
44
|
+
try {
|
|
45
|
+
ensureLogDir();
|
|
45
46
|
|
|
46
|
-
|
|
47
|
-
|
|
47
|
+
// Redact sensitive fields
|
|
48
|
+
const safeEvent = redactSensitive(event);
|
|
48
49
|
|
|
49
|
-
try {
|
|
50
50
|
appendFileSync(LOG_FILE, JSON.stringify(safeEvent) + "\n");
|
|
51
51
|
} catch {
|
|
52
52
|
// Silently fail if logging fails - don't crash the service
|
package/index.ts
CHANGED
|
@@ -1309,7 +1309,7 @@ const HARNESS_VERSION = (() => {
|
|
|
1309
1309
|
})();
|
|
1310
1310
|
|
|
1311
1311
|
function printBanner(): void {
|
|
1312
|
-
|
|
1312
|
+
logToFile(`[Harness] v${HARNESS_VERSION}`);
|
|
1313
1313
|
}
|
|
1314
1314
|
|
|
1315
1315
|
function ensureHarnessDir() {
|
|
@@ -1451,23 +1451,23 @@ function initJobPipeWatcher(pi: ExtensionAPI): void {
|
|
|
1451
1451
|
};
|
|
1452
1452
|
|
|
1453
1453
|
const processCommand = (cmd: { command: string; jobId: string; userId: number }) => {
|
|
1454
|
-
|
|
1454
|
+
logToFile("[JobPipe]", `Received: ${cmd.command} ${cmd.jobId} from user ${cmd.userId}`);
|
|
1455
1455
|
|
|
1456
1456
|
switch (cmd.command) {
|
|
1457
1457
|
case "resume": {
|
|
1458
1458
|
// Inject "resume" into agent conversation (same as auto-resume)
|
|
1459
1459
|
pi.sendUserMessage("resume", { deliverAs: "steer" });
|
|
1460
|
-
|
|
1460
|
+
logToFile("[JobPipe]", "Injected resume via steer");
|
|
1461
1461
|
break;
|
|
1462
1462
|
}
|
|
1463
1463
|
case "cancel": {
|
|
1464
1464
|
// Cancel the current job
|
|
1465
1465
|
pi.sendUserMessage("/harness-cancel", { deliverAs: "steer" });
|
|
1466
|
-
|
|
1466
|
+
logToFile("[JobPipe]", "Injected /harness-cancel via steer");
|
|
1467
1467
|
break;
|
|
1468
1468
|
}
|
|
1469
1469
|
default:
|
|
1470
|
-
|
|
1470
|
+
logToFile("[JobPipe]", `Unknown command: ${cmd.command}`);
|
|
1471
1471
|
}
|
|
1472
1472
|
};
|
|
1473
1473
|
|
|
@@ -1508,7 +1508,7 @@ function initJobPipeWatcher(pi: ExtensionAPI): void {
|
|
|
1508
1508
|
const commands = data.commands || [];
|
|
1509
1509
|
|
|
1510
1510
|
if (commands.length > 0) {
|
|
1511
|
-
|
|
1511
|
+
logToFile("[JobPipe]", `Found ${commands.length} pending command(s)`);
|
|
1512
1512
|
|
|
1513
1513
|
for (const cmd of commands) {
|
|
1514
1514
|
processCommand(cmd);
|
|
@@ -2072,15 +2072,15 @@ Run \`bd ready\` to see current bd issues.
|
|
|
2072
2072
|
if (event.kind === "sync-error" || event.kind === "watcher-error") {
|
|
2073
2073
|
const msg = "message" in event ? event.message : "";
|
|
2074
2074
|
if (msg.includes("ENOSPC")) {
|
|
2075
|
-
|
|
2075
|
+
logToFile(
|
|
2076
2076
|
"[pi-harness] cookie-sanitizer: ENOSPC — inotify watchers exhausted.\n" +
|
|
2077
2077
|
" Fix (run once as sudo):\n" +
|
|
2078
2078
|
" echo fs.inotify.max_user_watches=524288 | sudo tee /etc/sysctl.d/99-watch.conf\n" +
|
|
2079
2079
|
" sudo sysctl --system",
|
|
2080
2080
|
);
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2081
|
+
} else {
|
|
2082
|
+
logToFile("[pi-harness] cookie-sanitizer:", msg);
|
|
2083
|
+
}
|
|
2084
2084
|
}
|
|
2085
2085
|
// A successful sync means the canonical cache is fresh; the
|
|
2086
2086
|
// next autoFetchQuota() should pick it up immediately. Reset
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-harness/capability-registry",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.218",
|
|
4
4
|
"description": "Capability Registry for pi-harness-runtime — tracks model capabilities and enables capability-based routing",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-harness/provider-router",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.218",
|
|
4
4
|
"description": "Enhanced Provider Router for pi-harness-runtime — intelligent routing with capabilities, costs, and quotas",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/provider-router.js",
|