instar 1.3.646 → 1.3.647
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/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +6 -2
- package/dist/commands/server.js.map +1 -1
- package/dist/feedback-factory/store/JsonlFeedbackStore.d.ts +2 -0
- package/dist/feedback-factory/store/JsonlFeedbackStore.d.ts.map +1 -1
- package/dist/feedback-factory/store/JsonlFeedbackStore.js +36 -2
- package/dist/feedback-factory/store/JsonlFeedbackStore.js.map +1 -1
- package/dist/messaging/TelegramAdapter.d.ts.map +1 -1
- package/dist/messaging/TelegramAdapter.js +6 -2
- package/dist/messaging/TelegramAdapter.js.map +1 -1
- package/dist/monitoring/CoherenceMonitor.d.ts.map +1 -1
- package/dist/monitoring/CoherenceMonitor.js +6 -1
- package/dist/monitoring/CoherenceMonitor.js.map +1 -1
- package/dist/monitoring/CommitmentSentinel.d.ts.map +1 -1
- package/dist/monitoring/CommitmentSentinel.js +7 -2
- package/dist/monitoring/CommitmentSentinel.js.map +1 -1
- package/dist/utils/jsonl-tail.d.ts +50 -0
- package/dist/utils/jsonl-tail.d.ts.map +1 -0
- package/dist/utils/jsonl-tail.js +96 -0
- package/dist/utils/jsonl-tail.js.map +1 -0
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +2 -2
- package/upgrades/1.3.647.md +56 -0
- package/upgrades/eli16/eventloop-bounded-jsonl-reads.md +47 -0
- package/upgrades/side-effects/eventloop-bounded-jsonl-reads.md +96 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoherenceMonitor.d.ts","sourceRoot":"","sources":["../../src/monitoring/CoherenceMonitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"CoherenceMonitor.d.ts","sourceRoot":"","sources":["../../src/monitoring/CoherenceMonitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAQxD,MAAM,WAAW,oBAAoB;IACnC,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACrB,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,YAAY,CAAC;IAChD,+BAA+B;IAC/B,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,UAAU,EAAE,UAAU,CAAC;IACvB,yDAAyD;IACzD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;CACnD;AAWD,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,QAAQ,CAA+C;IAC/D,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,aAAa,CAAmE;IACxF,2FAA2F;IAC3F,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,iHAAiH;IACjH,OAAO,CAAC,+BAA+B,CAAuB;IAC9D,gEAAgE;IAChE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAsB;gBAEpD,MAAM,EAAE,sBAAsB;IAK1C;;OAEG;IACH,KAAK,IAAI,IAAI;IAiBb;;OAEG;IACH,IAAI,IAAI,IAAI;IAOZ;;OAEG;IACH,QAAQ,IAAI,eAAe;IA2E3B;;OAEG;IACH,aAAa,IAAI,eAAe,GAAG,IAAI;IAIvC;;OAEG;IACH,SAAS,IAAI,eAAe;IAiB5B;;OAEG;IACH,gBAAgB,IAAI,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAM/E;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IA4D7B;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IA0B/B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA2C5B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAsF5B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAgFzB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAqF7B,gFAAgF;IAChF,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,aAAa;CAUtB"}
|
|
@@ -20,6 +20,7 @@ import path from 'node:path';
|
|
|
20
20
|
import { ProcessIntegrity } from '../core/ProcessIntegrity.js';
|
|
21
21
|
import { DegradationReporter } from './DegradationReporter.js';
|
|
22
22
|
import { isSecretPlaceholder } from '../core/SecretMigrator.js';
|
|
23
|
+
import { readJsonlTailLines } from '../utils/jsonl-tail.js';
|
|
23
24
|
// Known-bad output patterns that should never appear in user-facing messages
|
|
24
25
|
const BAD_OUTPUT_PATTERNS = [
|
|
25
26
|
{ pattern: 'localhost', context: 'URL', description: 'localhost URL in remote-accessible message' },
|
|
@@ -408,7 +409,11 @@ export class CoherenceMonitor extends EventEmitter {
|
|
|
408
409
|
return results;
|
|
409
410
|
}
|
|
410
411
|
try {
|
|
411
|
-
|
|
412
|
+
// Bounded TAIL read — never the whole file. This check only inspects the
|
|
413
|
+
// last 50 agent messages, so loading the full multi-MB
|
|
414
|
+
// telegram-messages.jsonl on a 5-minute timer was a pure event-loop freeze
|
|
415
|
+
// (2026-06-22 batch). The 512KB window holds far more than the last 50.
|
|
416
|
+
const lines = readJsonlTailLines(logPath).lines;
|
|
412
417
|
// Check last 50 agent messages (fromUser: false)
|
|
413
418
|
const agentMessages = [];
|
|
414
419
|
for (let i = lines.length - 1; i >= 0 && agentMessages.length < 50; i--) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoherenceMonitor.js","sourceRoot":"","sources":["../../src/monitoring/CoherenceMonitor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CoherenceMonitor.js","sourceRoot":"","sources":["../../src/monitoring/CoherenceMonitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommitmentSentinel.d.ts","sourceRoot":"","sources":["../../src/monitoring/CommitmentSentinel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAkB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"CommitmentSentinel.d.ts","sourceRoot":"","sources":["../../src/monitoring/CommitmentSentinel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAkB,MAAM,wBAAwB,CAAC;AAMhF,MAAM,WAAW,wBAAwB;IACvC,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,YAAY,EAAE,oBAAoB,CAAC;IACnC,yDAAyD;IACzD,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AA4CD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAgBxD;AAID,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAA+C;IAC/D,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,EAAE,wBAAwB;IAS5C,KAAK,IAAI,IAAI;IAcb,IAAI,IAAI,IAAI;IASZ;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IA6E7B;;OAEG;IACH,OAAO,CAAC,eAAe;IA0CvB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAqBhC;;OAEG;YACW,iBAAiB;IAiF/B,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,aAAa;CAWtB"}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
import fs from 'node:fs';
|
|
15
15
|
import path from 'node:path';
|
|
16
16
|
import { DegradationReporter } from './DegradationReporter.js';
|
|
17
|
+
import { readJsonlTailLines } from '../utils/jsonl-tail.js';
|
|
17
18
|
// ── Over-detection guard ──────────────────────────────────────────
|
|
18
19
|
// The #1 source of false-positive commitments is a bare approval/continuation
|
|
19
20
|
// user message ("please proceed", "yes please") paired with an agent reply —
|
|
@@ -162,8 +163,12 @@ export class CommitmentSentinel {
|
|
|
162
163
|
if (!fs.existsSync(this.messagesPath))
|
|
163
164
|
return [];
|
|
164
165
|
try {
|
|
165
|
-
|
|
166
|
-
|
|
166
|
+
// Bounded TAIL read — never the whole file. This scanner only ever
|
|
167
|
+
// inspects the last `maxPerScan*10` lines, so loading the full multi-MB
|
|
168
|
+
// telegram-messages.jsonl on a 5-minute timer was a pure event-loop
|
|
169
|
+
// freeze (2026-06-22 batch). The 512KB window holds ~2,600 recent lines,
|
|
170
|
+
// far more than maxPerScan*10, while staying O(window) regardless of size.
|
|
171
|
+
const lines = readJsonlTailLines(this.messagesPath).lines;
|
|
167
172
|
const messages = [];
|
|
168
173
|
const maxPerScan = this.config.maxMessagesPerScan ?? 20;
|
|
169
174
|
// Read from the end to get the most recent messages
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommitmentSentinel.js","sourceRoot":"","sources":["../../src/monitoring/CommitmentSentinel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"CommitmentSentinel.js","sourceRoot":"","sources":["../../src/monitoring/CommitmentSentinel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bounded JSONL tail reader — read only the LAST window of an append-only log,
|
|
3
|
+
* never the whole file.
|
|
4
|
+
*
|
|
5
|
+
* Born from the 2026-06-22 event-loop-freeze batch: several timers and event
|
|
6
|
+
* handlers (CommitmentSentinel, CoherenceMonitor, PresenceProxy's
|
|
7
|
+
* checkLogForAgentResponse, TelegramAdapter.getMessageLog) each called
|
|
8
|
+
* `fs.readFileSync(messageLogPath, 'utf-8')` on the 12MB telegram-messages.jsonl
|
|
9
|
+
* just to look at the last ~50–200 lines. A 12MB synchronous read+split on a
|
|
10
|
+
* 5-minute timer froze the event loop for up to 20s per pass. These callers do
|
|
11
|
+
* not need the whole file — only its tail.
|
|
12
|
+
*
|
|
13
|
+
* Design (mirrors CoherenceJournal.readTailTolerant, generalized off the
|
|
14
|
+
* journal's typed entry shape):
|
|
15
|
+
* - statSync the file (O(1)) — read at most `maxBytes` from the END.
|
|
16
|
+
* - openSync + readSync the trailing window into a fixed buffer; never load
|
|
17
|
+
* the whole file. O(maxBytes), not O(file).
|
|
18
|
+
* - Discard the first (partial) line when the window started mid-file so a
|
|
19
|
+
* truncated record is never mis-parsed.
|
|
20
|
+
* - Return the raw trailing lines (newest LAST, file order preserved) — the
|
|
21
|
+
* caller parses + filters exactly as it did over the full split before.
|
|
22
|
+
*
|
|
23
|
+
* Never throws — a read failure returns an empty result, matching the
|
|
24
|
+
* @silent-fallback-ok behavior of every former full-file caller. Observability
|
|
25
|
+
* / housekeeping reads must never endanger the observed operation.
|
|
26
|
+
*/
|
|
27
|
+
/** Default trailing window: 512KB. At ~200 bytes/line that is ~2,600 recent
|
|
28
|
+
* lines — far more than any caller's last-50/last-200 need, with headroom for
|
|
29
|
+
* long messages, while staying a small bounded read regardless of file size. */
|
|
30
|
+
export declare const DEFAULT_TAIL_BYTES: number;
|
|
31
|
+
export interface TailReadResult {
|
|
32
|
+
/** Trailing lines in FILE order (oldest of the window first, newest last).
|
|
33
|
+
* Non-empty lines only — blank lines are dropped. */
|
|
34
|
+
lines: string[];
|
|
35
|
+
/** True when the file was larger than the window (the head was not read). */
|
|
36
|
+
truncated: boolean;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Read the last `maxBytes` of `filePath` and return its non-empty lines in file
|
|
40
|
+
* order. Reads at most `maxBytes` from disk regardless of total file size.
|
|
41
|
+
*/
|
|
42
|
+
export declare function readJsonlTailLines(filePath: string, maxBytes?: number): TailReadResult;
|
|
43
|
+
/**
|
|
44
|
+
* Convenience: read the tail and return at most the last `limit` non-empty
|
|
45
|
+
* lines (file order). Equivalent to the common
|
|
46
|
+
* `readFileSync(...).split('\n').filter(Boolean).slice(-limit)` pattern, but
|
|
47
|
+
* bounded to a trailing `maxBytes` window instead of the whole file.
|
|
48
|
+
*/
|
|
49
|
+
export declare function readJsonlTailLastLines(filePath: string, limit: number, maxBytes?: number): string[];
|
|
50
|
+
//# sourceMappingURL=jsonl-tail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonl-tail.d.ts","sourceRoot":"","sources":["../../src/utils/jsonl-tail.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH;;iFAEiF;AACjF,eAAO,MAAM,kBAAkB,QAAa,CAAC;AAE7C,MAAM,WAAW,cAAc;IAC7B;0DACsD;IACtD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,6EAA6E;IAC7E,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,MAA2B,GACpC,cAAc,CA+ChB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,MAA2B,GACpC,MAAM,EAAE,CAGV"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bounded JSONL tail reader — read only the LAST window of an append-only log,
|
|
3
|
+
* never the whole file.
|
|
4
|
+
*
|
|
5
|
+
* Born from the 2026-06-22 event-loop-freeze batch: several timers and event
|
|
6
|
+
* handlers (CommitmentSentinel, CoherenceMonitor, PresenceProxy's
|
|
7
|
+
* checkLogForAgentResponse, TelegramAdapter.getMessageLog) each called
|
|
8
|
+
* `fs.readFileSync(messageLogPath, 'utf-8')` on the 12MB telegram-messages.jsonl
|
|
9
|
+
* just to look at the last ~50–200 lines. A 12MB synchronous read+split on a
|
|
10
|
+
* 5-minute timer froze the event loop for up to 20s per pass. These callers do
|
|
11
|
+
* not need the whole file — only its tail.
|
|
12
|
+
*
|
|
13
|
+
* Design (mirrors CoherenceJournal.readTailTolerant, generalized off the
|
|
14
|
+
* journal's typed entry shape):
|
|
15
|
+
* - statSync the file (O(1)) — read at most `maxBytes` from the END.
|
|
16
|
+
* - openSync + readSync the trailing window into a fixed buffer; never load
|
|
17
|
+
* the whole file. O(maxBytes), not O(file).
|
|
18
|
+
* - Discard the first (partial) line when the window started mid-file so a
|
|
19
|
+
* truncated record is never mis-parsed.
|
|
20
|
+
* - Return the raw trailing lines (newest LAST, file order preserved) — the
|
|
21
|
+
* caller parses + filters exactly as it did over the full split before.
|
|
22
|
+
*
|
|
23
|
+
* Never throws — a read failure returns an empty result, matching the
|
|
24
|
+
* @silent-fallback-ok behavior of every former full-file caller. Observability
|
|
25
|
+
* / housekeeping reads must never endanger the observed operation.
|
|
26
|
+
*/
|
|
27
|
+
import fs from 'node:fs';
|
|
28
|
+
/** Default trailing window: 512KB. At ~200 bytes/line that is ~2,600 recent
|
|
29
|
+
* lines — far more than any caller's last-50/last-200 need, with headroom for
|
|
30
|
+
* long messages, while staying a small bounded read regardless of file size. */
|
|
31
|
+
export const DEFAULT_TAIL_BYTES = 512 * 1024;
|
|
32
|
+
/**
|
|
33
|
+
* Read the last `maxBytes` of `filePath` and return its non-empty lines in file
|
|
34
|
+
* order. Reads at most `maxBytes` from disk regardless of total file size.
|
|
35
|
+
*/
|
|
36
|
+
export function readJsonlTailLines(filePath, maxBytes = DEFAULT_TAIL_BYTES) {
|
|
37
|
+
const empty = { lines: [], truncated: false };
|
|
38
|
+
try {
|
|
39
|
+
if (!fs.existsSync(filePath))
|
|
40
|
+
return empty;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return empty;
|
|
44
|
+
}
|
|
45
|
+
let size;
|
|
46
|
+
try {
|
|
47
|
+
size = fs.statSync(filePath).size;
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return empty;
|
|
51
|
+
}
|
|
52
|
+
if (size === 0)
|
|
53
|
+
return empty;
|
|
54
|
+
const readBytes = Math.min(size, maxBytes);
|
|
55
|
+
const truncated = readBytes < size;
|
|
56
|
+
const start = size - readBytes;
|
|
57
|
+
let buf;
|
|
58
|
+
let fd = null;
|
|
59
|
+
try {
|
|
60
|
+
fd = fs.openSync(filePath, 'r');
|
|
61
|
+
buf = Buffer.alloc(readBytes);
|
|
62
|
+
fs.readSync(fd, buf, 0, readBytes, start);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return empty;
|
|
66
|
+
}
|
|
67
|
+
finally {
|
|
68
|
+
if (fd !== null) {
|
|
69
|
+
try {
|
|
70
|
+
fs.closeSync(fd);
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
/* best-effort */
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
let text = buf.toString('utf-8');
|
|
78
|
+
// If the window started mid-file, the first line is a partial record — drop it.
|
|
79
|
+
if (start > 0) {
|
|
80
|
+
const nl = text.indexOf('\n');
|
|
81
|
+
text = nl >= 0 ? text.slice(nl + 1) : '';
|
|
82
|
+
}
|
|
83
|
+
const lines = text.split('\n').filter((l) => l.length > 0);
|
|
84
|
+
return { lines, truncated };
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Convenience: read the tail and return at most the last `limit` non-empty
|
|
88
|
+
* lines (file order). Equivalent to the common
|
|
89
|
+
* `readFileSync(...).split('\n').filter(Boolean).slice(-limit)` pattern, but
|
|
90
|
+
* bounded to a trailing `maxBytes` window instead of the whole file.
|
|
91
|
+
*/
|
|
92
|
+
export function readJsonlTailLastLines(filePath, limit, maxBytes = DEFAULT_TAIL_BYTES) {
|
|
93
|
+
const { lines } = readJsonlTailLines(filePath, maxBytes);
|
|
94
|
+
return limit >= lines.length ? lines : lines.slice(-limit);
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=jsonl-tail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonl-tail.js","sourceRoot":"","sources":["../../src/utils/jsonl-tail.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB;;iFAEiF;AACjF,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,GAAG,IAAI,CAAC;AAU7C;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAgB,EAChB,WAAmB,kBAAkB;IAErC,MAAM,KAAK,GAAmB,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC9D,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;IAE/B,IAAI,GAAW,CAAC;IAChB,IAAI,EAAE,GAAkB,IAAI,CAAC;IAC7B,IAAI,CAAC;QACH,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAChC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9B,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;YAAS,CAAC;QACT,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACnB,CAAC;YAAC,MAAM,CAAC;gBACP,iBAAiB;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,gFAAgF;IAChF,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3D,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAgB,EAChB,KAAa,EACb,WAAmB,kBAAkB;IAErC,MAAM,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACzD,OAAO,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-06-
|
|
5
|
-
"instarVersion": "1.3.
|
|
4
|
+
"generatedAt": "2026-06-22T20:47:55.471Z",
|
|
5
|
+
"instarVersion": "1.3.647",
|
|
6
6
|
"entryCount": 202,
|
|
7
7
|
"entries": {
|
|
8
8
|
"hook:session-start": {
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- assembled-by: assemble-next-md -->
|
|
4
|
+
<!-- bump: patch -->
|
|
5
|
+
|
|
6
|
+
## What Changed
|
|
7
|
+
|
|
8
|
+
FOUR callers each did a synchronous `fs.readFileSync` of the ~12MB `.instar/telegram-messages.jsonl`
|
|
9
|
+
just to inspect its last 50–200 lines: `CommitmentSentinel.parseRecentMessages` (5-min timer),
|
|
10
|
+
`CoherenceMonitor`'s output-sanity check (5-min timer), `checkLogForAgentResponse` (PresenceProxy ack
|
|
11
|
+
path, event-driven), and `TelegramAdapter.getMessageLog` (analysis route). A 12MB sync read + split
|
|
12
|
+
on a 5-minute timer froze the event loop up to ~20s per pass — the same ~0-CPU false-sleep signature
|
|
13
|
+
the JobRunHistory fix removed. Separately, `JsonlFeedbackStore` re-read + re-`JSON.parse`d the entire
|
|
14
|
+
~14MB `feedback.jsonl` at the start of every processing pass even when nothing had changed. This is
|
|
15
|
+
the THIRD + FOURTH event-loop-blocker class behind the dashboard "disconnected" flapping (after sync
|
|
16
|
+
tmux, sync keychain, and the JobRunHistory 13MB re-read).
|
|
17
|
+
|
|
18
|
+
The fix is two behavior-preserving mechanisms: (A) a shared bounded tail-read utility
|
|
19
|
+
(`src/utils/jsonl-tail.ts`) that reads only the last 512KB via `openSync`/`readSync` — mirroring
|
|
20
|
+
`CoherenceJournal.readTailTolerant` — used by the four telegram-log readers; and (B) a
|
|
21
|
+
`(size, mtimeMs)` load cache in `JsonlFeedbackStore` (mirroring the JobRunHistory cache) that serves a
|
|
22
|
+
clone of the prior parse when the file is byte-for-byte unchanged.
|
|
23
|
+
|
|
24
|
+
## What to Tell Your User
|
|
25
|
+
|
|
26
|
+
If your dashboard kept dropping its connection even after the tmux, keychain, and job-history fixes,
|
|
27
|
+
these two large files were the remaining cause: a 12MB message log re-read whole on a 5-minute timer,
|
|
28
|
+
and a 14MB feedback log re-parsed from scratch every pass. After this update both freezes are gone —
|
|
29
|
+
the message-log checks read only the last chunk of the file (instant regardless of size), and the
|
|
30
|
+
feedback log is served from memory when nothing changed. (A separate cleanup — capping those files'
|
|
31
|
+
unbounded growth — is tracked separately.)
|
|
32
|
+
|
|
33
|
+
## Summary of New Capabilities
|
|
34
|
+
|
|
35
|
+
- New `src/utils/jsonl-tail.ts` bounded tail-reader (`readJsonlTailLines` / `readJsonlTailLastLines`):
|
|
36
|
+
reads only the last `maxBytes` (default 512KB ≈ 2,600 lines) via `statSync`/`openSync`/`readSync`,
|
|
37
|
+
drops the partial first line, never loads the whole file, never throws.
|
|
38
|
+
- The four telegram-log tail readers (CommitmentSentinel, CoherenceMonitor, PresenceProxy ack path,
|
|
39
|
+
TelegramAdapter.getMessageLog) converted from whole-12MB-file sync reads to bounded tail-reads;
|
|
40
|
+
parsed/filtered results are identical to the old full-split-then-slice.
|
|
41
|
+
- `JsonlFeedbackStore` gains a `(size, mtimeMs)`-keyed in-memory load cache: unchanged file = zero-IO
|
|
42
|
+
clone-on-serve, any change = full re-read. Existing load semantics (dedup-last-wins, torn-line skip,
|
|
43
|
+
corrupt-file recovery) preserved exactly.
|
|
44
|
+
- Removes the third + fourth event-loop-blocker class behind the dashboard flapping and the
|
|
45
|
+
associated SleepWakeDetector false-wakes.
|
|
46
|
+
|
|
47
|
+
## Evidence
|
|
48
|
+
|
|
49
|
+
Root cause diagnosed by a live profiler catching the event loop frozen in a whole-file
|
|
50
|
+
ReadFileUtf8 → split on a 5-minute timer (the ~0-CPU false-sleep signature). Fix covered by 48 tests
|
|
51
|
+
across four files: `jsonl-tail` (9 — tail correctness, partial-line drop, missing/empty file,
|
|
52
|
+
truncation flag), `CoherenceMonitor-bounded-read` (2 — a `fs.readFileSync` spy FAILS if the whole
|
|
53
|
+
12MB log is read, AND a bad pattern in a RECENT agent message at the END of a multi-MB log is still
|
|
54
|
+
detected via the tail), `CommitmentSentinel` (26), `jsonl-feedback-store` (11 — including cache-hit
|
|
55
|
+
serves zero-IO and any change re-reads). Cross-impact suites green; tsc exit 0; no-silent-fallbacks +
|
|
56
|
+
bounded-accumulation lints green.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Bounded tail-reads for the 12MB telegram-log + 14MB feedback-store — ELI16
|
|
2
|
+
|
|
3
|
+
## What this is
|
|
4
|
+
|
|
5
|
+
Your agent's server runs everything on one main thread. If any single operation makes that thread
|
|
6
|
+
wait, *everything* waits — the dashboard, your messages, every background check. When that wait is
|
|
7
|
+
long enough, the dashboard's live connection drops (the "Disconnected" flapping you may have seen).
|
|
8
|
+
|
|
9
|
+
This fixes the THIRD and FOURTH freezes behind that flapping. (The first was a slow shared terminal
|
|
10
|
+
manager; the second was reading the macOS keychain the blocking way; the third was a 13MB job-history
|
|
11
|
+
file re-read whole every minute — all already fixed.) This one is about two more big files.
|
|
12
|
+
|
|
13
|
+
## What was wrong
|
|
14
|
+
|
|
15
|
+
Your agent keeps a running log of every Telegram message it has ever sent or received, in a file
|
|
16
|
+
called `telegram-messages.jsonl`. That file has grown to about **12 megabytes**. Several background
|
|
17
|
+
checks only ever need to glance at the LAST few messages in that log — the last 50, or the last 100.
|
|
18
|
+
But the way they were written, they read the **entire 12MB file** from disk and chopped it up, just
|
|
19
|
+
to look at the tail. And some of these checks run on a **5-minute timer**, every few minutes, forever.
|
|
20
|
+
Each one froze the server for up to **20 seconds**. (A second large file, a 14MB feedback log, had
|
|
21
|
+
the same problem: it was re-read and re-parsed from scratch every processing pass even when nothing
|
|
22
|
+
had changed.)
|
|
23
|
+
|
|
24
|
+
A frozen main thread uses almost no CPU, so the freeze even looked to the agent like the laptop had
|
|
25
|
+
briefly gone to sleep — a misleading signal on top of a real problem.
|
|
26
|
+
|
|
27
|
+
## What's new
|
|
28
|
+
|
|
29
|
+
Two simple changes, both behavior-preserving:
|
|
30
|
+
|
|
31
|
+
- The background checks that only want the tail of the message log now read just the **last chunk**
|
|
32
|
+
of the file (a 512-kilobyte window — far more than enough to hold the last few hundred messages),
|
|
33
|
+
not the whole thing. So they're instant no matter how big the file gets.
|
|
34
|
+
- The 14MB feedback log now remembers the file's size and last-modified time. If nothing changed
|
|
35
|
+
since it last read it, it returns the copy it already has, reading nothing from disk.
|
|
36
|
+
|
|
37
|
+
So those per-call whole-file reads are gone from every one of these hot paths, and the freezes they
|
|
38
|
+
caused are eliminated. Everything these checks actually do — what they look for, how they parse,
|
|
39
|
+
how they recover from a corrupt file — is unchanged, and proven by tests. One of the new tests even
|
|
40
|
+
plants a problem message at the very END of a multi-megabyte log to prove the tail-read still catches
|
|
41
|
+
recent entries.
|
|
42
|
+
|
|
43
|
+
## What you need to decide
|
|
44
|
+
|
|
45
|
+
Nothing. It's self-contained and low-risk, fully covered by tests. One honest note: the log files
|
|
46
|
+
themselves still grow large over time — putting a size cap on them is a separate cleanup I've flagged
|
|
47
|
+
to track, not fixed here. Reading them is no longer a freeze; capping their growth comes next.
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Side-Effects Review — bounded tail-reads for the 12MB telegram-log + 14MB feedback-store (event-loop freeze fix)
|
|
2
|
+
|
|
3
|
+
**Slug:** `eventloop-bounded-jsonl-reads` · **Tier:** 1 (focused low-risk bounded-read class fix, no
|
|
4
|
+
spec; live-profiler root-cause). Parent principles: **Structure beats Willpower** — never block the
|
|
5
|
+
event loop (the THIRD + FOURTH distinct event-loop-blocker class behind the dashboard "disconnected"
|
|
6
|
+
flapping, after sync tmux + sync keychain + the JobRunHistory 13MB re-read); and **Bounded
|
|
7
|
+
Accumulation** (the size of an append-only log must never determine the cost of reading it).
|
|
8
|
+
|
|
9
|
+
## Summary of the change
|
|
10
|
+
|
|
11
|
+
FOUR callers each did `fs.readFileSync(messageLogPath, 'utf-8')` on the ~12MB
|
|
12
|
+
`.instar/telegram-messages.jsonl` just to inspect the last 50–200 lines:
|
|
13
|
+
- `CommitmentSentinel.parseRecentMessages` (`src/monitoring/CommitmentSentinel.ts`) — 5-minute timer,
|
|
14
|
+
only ever looks at the last `maxMessagesPerScan*10` lines.
|
|
15
|
+
- `CoherenceMonitor` output-sanity check (`src/monitoring/CoherenceMonitor.ts`) — 5-minute timer,
|
|
16
|
+
only ever looks at the last 50 agent messages.
|
|
17
|
+
- `checkLogForAgentResponse` (PresenceProxy ack path, `src/commands/server.ts`) — event-driven on
|
|
18
|
+
every PresenceProxy tier verdict, only ever looks at the last 50 lines.
|
|
19
|
+
- `TelegramAdapter.getMessageLog` (`src/messaging/TelegramAdapter.ts`) — analysis route, only ever
|
|
20
|
+
returns the last `limit` (default 100) entries.
|
|
21
|
+
|
|
22
|
+
A 12MB synchronous read + `.split('\n')` on a 5-minute timer froze the event loop for up to ~20s per
|
|
23
|
+
pass — the same ~0-CPU false-sleep signature the JobRunHistory fix removed. PLUS `JsonlFeedbackStore`
|
|
24
|
+
(`src/feedback-factory/store/JsonlFeedbackStore.ts`) re-read + re-`JSON.parse`d the entire ~14MB
|
|
25
|
+
`feedback.jsonl` at the start of every processing pass even when nothing had changed.
|
|
26
|
+
|
|
27
|
+
The fix is two behavior-preserving mechanisms:
|
|
28
|
+
|
|
29
|
+
**(A) A shared bounded tail-read utility** — `src/utils/jsonl-tail.ts` (`readJsonlTailLines` /
|
|
30
|
+
`readJsonlTailLastLines`). It `statSync`s the file (O(1)), `openSync` + `readSync`s only the trailing
|
|
31
|
+
`maxBytes` (default 512KB ≈ ~2,600 recent lines, far more than any caller needs) into a fixed buffer,
|
|
32
|
+
drops the first partial line when the window started mid-file, and returns the trailing lines in file
|
|
33
|
+
order. It NEVER loads the whole file and NEVER throws (a read failure returns an empty result,
|
|
34
|
+
matching the `@silent-fallback-ok` behavior of every former full-file caller). It mirrors
|
|
35
|
+
`CoherenceJournal.readTailTolerant`, generalized off that journal's typed-entry shape. The four
|
|
36
|
+
telegram-log readers above now call it instead of `readFileSync`.
|
|
37
|
+
|
|
38
|
+
**(B) A `(size, mtimeMs)` load cache in `JsonlFeedbackStore.loadJsonl`** — when the on-disk file is
|
|
39
|
+
byte-for-byte the one last folded, it serves a clone of the prior parse with ZERO IO/parse; any
|
|
40
|
+
change (append, shrink, delete) re-reads from disk. Mirrors the JobRunHistory cache pattern. The
|
|
41
|
+
clone-on-serve guarantees a caller mutating the returned Map can never poison the cache.
|
|
42
|
+
|
|
43
|
+
## 1. Correctness / behavioral equivalence
|
|
44
|
+
|
|
45
|
+
The telegram-log readers each consumed only a fixed tail (last 50 / last 200 / last `limit`) of the
|
|
46
|
+
log, so the 512KB window (≈ 2,600 lines) is strictly a superset of every caller's need — the parsed +
|
|
47
|
+
filtered result is identical to the old full-split-then-slice. The partial-first-line drop guarantees
|
|
48
|
+
a truncated record at the window boundary is never mis-parsed. The feedback store's load semantics
|
|
49
|
+
(per-line parse, dedup-last-wins-by-id, torn-line skip, corrupt-file recovery) are preserved exactly;
|
|
50
|
+
the cache is only consulted when the fingerprint matches and is invalidated on any change. Verified:
|
|
51
|
+
48/48 across the four touched test files (`jsonl-tail` 9, `CoherenceMonitor-bounded-read` 2,
|
|
52
|
+
`CommitmentSentinel` 26, `jsonl-feedback-store` 11) plus the cross-impact suites; tsc exit 0; lints
|
|
53
|
+
green. The two new regression tests spy on `fs.readFileSync` to FAIL if the whole telegram log is
|
|
54
|
+
read, AND prove a bad pattern in a RECENT agent message at the END of a multi-MB log is still
|
|
55
|
+
detected via the tail.
|
|
56
|
+
|
|
57
|
+
## 2. Cache-coherence / multi-writer safety
|
|
58
|
+
|
|
59
|
+
The telegram-log tail-read holds no state — every call re-reads the live tail, so a concurrent
|
|
60
|
+
appender is always reflected. The feedback-store `(size, mtimeMs)` key invalidates on any byte/mtime
|
|
61
|
+
change (append, compaction rewrite, delete-then-recreate), so an unchanged file is the only cache-hit
|
|
62
|
+
case and a stale fold can never be served. The cache is per-process in-memory (not shared) — no
|
|
63
|
+
cross-process coherence concern (each process reads its own view, same as before). `loadCache` is
|
|
64
|
+
keyed per absolute path and dropped on `existsSync` failure.
|
|
65
|
+
|
|
66
|
+
## 3. Fail-safe
|
|
67
|
+
|
|
68
|
+
`jsonl-tail.ts` never throws: missing file, stat failure, open/read failure each return an empty
|
|
69
|
+
result — exactly the prior `@silent-fallback-ok` degradation of the full-file callers (an
|
|
70
|
+
observability/housekeeping read must never endanger the observed operation). The feedback store's
|
|
71
|
+
stat-failure path falls through to a full read (`/* fall through to a full read — never let stat
|
|
72
|
+
failure skip the load */`), so a stat error degrades to the correct (slow) result, never wrong data.
|
|
73
|
+
|
|
74
|
+
## 4. Blast radius
|
|
75
|
+
|
|
76
|
+
One new utility module + its test; four read-site one-liner swaps (CommitmentSentinel, CoherenceMonitor,
|
|
77
|
+
server.ts PresenceProxy ack, TelegramAdapter.getMessageLog); one read-path cache in JsonlFeedbackStore
|
|
78
|
+
+ a test-only cache-clear export. No API/route change, no schema change, no write-path semantics
|
|
79
|
+
change, no new external surface.
|
|
80
|
+
|
|
81
|
+
## 5. Residual (tracked, NOT fixed here — out of scope)
|
|
82
|
+
|
|
83
|
+
The existing `lint-no-wholefile-sync-read` ratchet only catches LITERAL path basenames in the read
|
|
84
|
+
call, but these four sites read VARIABLE paths (`this.messageLogPath`, a `logPath` param), so the
|
|
85
|
+
lint could never have flagged them — which is why they survived the earlier sweeps. The durable
|
|
86
|
+
structural prevention is an **accessor funnel** (route all append-log reads through a single bounded
|
|
87
|
+
accessor that the lint can enforce), which is **Bounded Accumulation Increment 2** — a tracked
|
|
88
|
+
follow-up named here so it is not silently dropped. Separately, the telegram-messages.jsonl and
|
|
89
|
+
feedback.jsonl files themselves still grow UNBOUNDED — a size/retention cap is the same Bounded
|
|
90
|
+
Accumulation track. This change makes READS cheap regardless of size; it does not cap the files.
|
|
91
|
+
|
|
92
|
+
## 6. Rollback
|
|
93
|
+
|
|
94
|
+
Revert the source files. The change is purely read-path (a bounded tail-read + a fingerprint cache);
|
|
95
|
+
reverting restores the (slow but correct) full-read behavior. No data migration, no on-disk format
|
|
96
|
+
change to undo.
|