instar 0.28.35 ā 0.28.41
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/dashboard/index.html +40 -30
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +105 -46
- package/dist/commands/server.js.map +1 -1
- package/dist/core/CoherenceGate.d.ts +7 -0
- package/dist/core/CoherenceGate.d.ts.map +1 -1
- package/dist/core/CoherenceGate.js +7 -6
- package/dist/core/CoherenceGate.js.map +1 -1
- package/dist/core/CoherenceReviewer.d.ts +20 -5
- package/dist/core/CoherenceReviewer.d.ts.map +1 -1
- package/dist/core/CoherenceReviewer.js +36 -6
- package/dist/core/CoherenceReviewer.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts +0 -14
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +2 -123
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/SessionManager.d.ts +9 -0
- package/dist/core/SessionManager.d.ts.map +1 -1
- package/dist/core/SessionManager.js +18 -0
- package/dist/core/SessionManager.js.map +1 -1
- package/dist/monitoring/CompactionSentinel.d.ts +143 -0
- package/dist/monitoring/CompactionSentinel.d.ts.map +1 -0
- package/dist/monitoring/CompactionSentinel.js +262 -0
- package/dist/monitoring/CompactionSentinel.js.map +1 -0
- package/dist/monitoring/PresenceProxy.d.ts +0 -40
- package/dist/monitoring/PresenceProxy.d.ts.map +1 -1
- package/dist/monitoring/PresenceProxy.js +4 -156
- package/dist/monitoring/PresenceProxy.js.map +1 -1
- package/dist/monitoring/PromptGate.d.ts.map +1 -1
- package/dist/monitoring/PromptGate.js +0 -75
- package/dist/monitoring/PromptGate.js.map +1 -1
- package/dist/threadline/adapters/RESTServer.d.ts +7 -1
- package/dist/threadline/adapters/RESTServer.d.ts.map +1 -1
- package/dist/threadline/adapters/RESTServer.js +62 -1
- package/dist/threadline/adapters/RESTServer.js.map +1 -1
- package/dist/threadline/relay/OfflineQueue.js +1 -1
- package/dist/threadline/relay/OfflineQueue.js.map +1 -1
- package/package.json +1 -1
- package/scripts/check-upgrade-guide.js +9 -115
- package/scripts/collect-metrics.py +25 -120
- package/scripts/upgrade-guide-validator.mjs +221 -0
- package/src/data/builtin-manifest.json +18 -18
- package/upgrades/0.28.36.md +40 -0
- package/upgrades/0.28.37.md +69 -0
- package/upgrades/0.28.38.md +41 -0
- package/upgrades/0.28.39.md +29 -0
- package/upgrades/0.28.40.md +32 -0
- package/upgrades/0.28.41.md +41 -0
- package/upgrades/NEXT.md +18 -0
- package/upgrades/0.28.10.md +0 -19
- package/upgrades/0.28.11.md +0 -19
- package/upgrades/0.28.13.md +0 -11
- package/upgrades/0.28.15.md +0 -11
- package/upgrades/0.28.18.md +0 -12
- package/upgrades/0.28.20.md +0 -19
- package/upgrades/0.28.21.md +0 -23
- package/upgrades/0.28.22.md +0 -23
- package/upgrades/0.28.23.md +0 -19
- package/upgrades/0.28.24.md +0 -18
- package/upgrades/0.28.25.md +0 -21
- package/upgrades/0.28.26.md +0 -20
- package/upgrades/0.28.27.md +0 -20
- package/upgrades/0.28.28.md +0 -20
- package/upgrades/0.28.30.md +0 -25
- package/upgrades/0.28.31.md +0 -38
- package/upgrades/0.28.32.md +0 -22
- package/upgrades/0.28.33.md +0 -22
- package/upgrades/0.28.35.md +0 -37
- package/upgrades/0.28.5.md +0 -17
- package/upgrades/0.28.7.md +0 -24
- package/upgrades/0.28.8.md +0 -21
|
@@ -39,7 +39,8 @@ export class ThreadlineRESTServer {
|
|
|
39
39
|
server = null;
|
|
40
40
|
token = '';
|
|
41
41
|
running = false;
|
|
42
|
-
|
|
42
|
+
persistTimer = null;
|
|
43
|
+
/** Thread history (for GET /threads/:id). Hydrated from disk on start, persisted debounced. */
|
|
43
44
|
threadHistory = new Map();
|
|
44
45
|
constructor(client, config) {
|
|
45
46
|
this.client = client;
|
|
@@ -48,6 +49,8 @@ export class ThreadlineRESTServer {
|
|
|
48
49
|
host: config?.host ?? '127.0.0.1',
|
|
49
50
|
tokenPath: config?.tokenPath ?? path.join(os.homedir(), '.threadline', 'api-token'),
|
|
50
51
|
maxMessageHistoryPerThread: config?.maxMessageHistoryPerThread ?? 100,
|
|
52
|
+
historyPath: config?.historyPath ?? path.join(os.homedir(), '.threadline', 'thread-history.json'),
|
|
53
|
+
persistHistory: config?.persistHistory ?? true,
|
|
51
54
|
};
|
|
52
55
|
// Track incoming messages for thread history
|
|
53
56
|
this.client.on('message', (msg) => {
|
|
@@ -60,6 +63,7 @@ export class ThreadlineRESTServer {
|
|
|
60
63
|
if (history.length > this.config.maxMessageHistoryPerThread) {
|
|
61
64
|
history.shift();
|
|
62
65
|
}
|
|
66
|
+
this.schedulePersist();
|
|
63
67
|
});
|
|
64
68
|
}
|
|
65
69
|
/**
|
|
@@ -70,6 +74,8 @@ export class ThreadlineRESTServer {
|
|
|
70
74
|
throw new Error('Server already running');
|
|
71
75
|
// Get or create auth token
|
|
72
76
|
this.token = this.getOrCreateToken();
|
|
77
|
+
// Hydrate thread history from disk (survives restarts)
|
|
78
|
+
this.loadHistoryFromDisk();
|
|
73
79
|
return new Promise((resolve) => {
|
|
74
80
|
this.server = http.createServer((req, res) => {
|
|
75
81
|
this.handleRequest(req, res);
|
|
@@ -86,6 +92,12 @@ export class ThreadlineRESTServer {
|
|
|
86
92
|
async stop() {
|
|
87
93
|
if (!this.running || !this.server)
|
|
88
94
|
return;
|
|
95
|
+
// Flush any pending persist before shutdown
|
|
96
|
+
if (this.persistTimer) {
|
|
97
|
+
clearTimeout(this.persistTimer);
|
|
98
|
+
this.persistTimer = null;
|
|
99
|
+
this.persistHistoryToDisk();
|
|
100
|
+
}
|
|
89
101
|
return new Promise((resolve) => {
|
|
90
102
|
this.server.close(() => {
|
|
91
103
|
this.server = null;
|
|
@@ -251,8 +263,57 @@ export class ThreadlineRESTServer {
|
|
|
251
263
|
}
|
|
252
264
|
handleDeleteThread(res, threadId) {
|
|
253
265
|
const deleted = this.threadHistory.delete(threadId);
|
|
266
|
+
if (deleted)
|
|
267
|
+
this.schedulePersist();
|
|
254
268
|
this.sendJson(res, 200, { deleted, threadId });
|
|
255
269
|
}
|
|
270
|
+
// āā Thread History Persistence āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
271
|
+
loadHistoryFromDisk() {
|
|
272
|
+
if (!this.config.persistHistory)
|
|
273
|
+
return;
|
|
274
|
+
try {
|
|
275
|
+
const raw = fs.readFileSync(this.config.historyPath, 'utf-8');
|
|
276
|
+
const data = JSON.parse(raw);
|
|
277
|
+
for (const [threadId, messages] of Object.entries(data)) {
|
|
278
|
+
if (Array.isArray(messages)) {
|
|
279
|
+
const trimmed = messages.slice(-this.config.maxMessageHistoryPerThread);
|
|
280
|
+
this.threadHistory.set(threadId, trimmed);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
catch {
|
|
285
|
+
// No history file yet, or unreadable ā start fresh
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
schedulePersist() {
|
|
289
|
+
if (!this.config.persistHistory)
|
|
290
|
+
return;
|
|
291
|
+
if (this.persistTimer)
|
|
292
|
+
return;
|
|
293
|
+
// Debounce writes to avoid thrashing on message bursts
|
|
294
|
+
this.persistTimer = setTimeout(() => {
|
|
295
|
+
this.persistTimer = null;
|
|
296
|
+
this.persistHistoryToDisk();
|
|
297
|
+
}, 1000);
|
|
298
|
+
}
|
|
299
|
+
persistHistoryToDisk() {
|
|
300
|
+
if (!this.config.persistHistory)
|
|
301
|
+
return;
|
|
302
|
+
try {
|
|
303
|
+
const dir = path.dirname(this.config.historyPath);
|
|
304
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
305
|
+
const data = {};
|
|
306
|
+
for (const [threadId, messages] of this.threadHistory) {
|
|
307
|
+
data[threadId] = messages;
|
|
308
|
+
}
|
|
309
|
+
const tmp = `${this.config.historyPath}.tmp`;
|
|
310
|
+
fs.writeFileSync(tmp, JSON.stringify(data), { mode: 0o600 });
|
|
311
|
+
fs.renameSync(tmp, this.config.historyPath);
|
|
312
|
+
}
|
|
313
|
+
catch {
|
|
314
|
+
// Persistence is best-effort; don't crash the server if disk is full
|
|
315
|
+
}
|
|
316
|
+
}
|
|
256
317
|
// āā Helpers āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
257
318
|
getOrCreateToken() {
|
|
258
319
|
const tokenDir = path.dirname(this.config.tokenPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RESTServer.js","sourceRoot":"","sources":["../../../src/threadline/adapters/RESTServer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RESTServer.js","sourceRoot":"","sources":["../../../src/threadline/adapters/RESTServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
// āā In-Memory Implementation āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
10
10
|
const DEFAULT_CONFIG = {
|
|
11
|
-
defaultTtlMs:
|
|
11
|
+
defaultTtlMs: 86_400_000, // 24 hours
|
|
12
12
|
maxPerSenderPerRecipient: 100,
|
|
13
13
|
maxPerRecipient: 500,
|
|
14
14
|
maxPayloadBytesPerRecipient: 10 * 1024 * 1024, // 10MB
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OfflineQueue.js","sourceRoot":"","sources":["../../../src/threadline/relay/OfflineQueue.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA6EH,wEAAwE;AAExE,MAAM,cAAc,GAAuB;IACzC,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"OfflineQueue.js","sourceRoot":"","sources":["../../../src/threadline/relay/OfflineQueue.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA6EH,wEAAwE;AAExE,MAAM,cAAc,GAAuB;IACzC,YAAY,EAAE,UAAU,EAAE,WAAW;IACrC,wBAAwB,EAAE,GAAG;IAC7B,eAAe,EAAE,GAAG;IACpB,2BAA2B,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO;CACvD,CAAC;AAEF,MAAM,OAAO,oBAAoB;IACd,MAAM,CAAqB;IAC5C,6CAA6C;IAC5B,MAAM,GAAG,IAAI,GAAG,EAAqC,CAAC;IAC/D,WAAW,GAA0C,IAAI,CAAC;IACjD,eAAe,GAAgD,EAAE,CAAC;IAEnF,YAAY,MAAoC;QAC9C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;QAE/C,yCAAyC;QACzC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;YAClC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACtC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;oBACtC,EAAE,CAAC,OAAO,CAAC,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC,EAAE,MAAM,CAAC,CAAC;IACb,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,QAA8C;QACrD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,CAAC,QAAyB,EAAE,KAAc;QAC/C,MAAM,WAAW,GAAG,QAAQ,CAAC,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC/B,MAAM,GAAG,GAAG,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,gCAAgC;QAChC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC;QAE5C,kCAAkC;QAClC,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAChD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;QAC3D,CAAC;QAED,uCAAuC;QACvC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;QAC3E,IAAI,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE,CAAC;YACxD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;QACxD,CAAC;QAED,2BAA2B;QAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;QACrD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACpE,IAAI,YAAY,GAAG,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,2BAA2B,EAAE,CAAC;YAC1E,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;QACvD,CAAC;QAED,UAAU;QACV,KAAK,CAAC,IAAI,CAAC;YACT,QAAQ;YACR,QAAQ,EAAE,GAAG;YACb,SAAS,EAAE,GAAG,GAAG,GAAG;YACpB,SAAS,EAAE,YAAY;SACxB,CAAC,CAAC;QAEH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,WAA6B;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAE5C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,kDAAkD;QAClD,MAAM,KAAK,GAAG,KAAK;aAChB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC;aAC9B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QAE3C,kBAAkB;QAClB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAEhC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,cAAc;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAsB,EAAE,CAAC;QAEtC,KAAK,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,SAAS,GAAoB,EAAE,CAAC;YACtC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,EAAE,CAAC;oBACzB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;YAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,QAAQ,CAAC,WAA6B;QACpC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,QAAQ;QACN,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,aAAa,IAAI,KAAK,CAAC,MAAM,CAAC;YAC9B,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YAChC,aAAa;YACb,UAAU;SACX,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAA6B;QACjC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -31,6 +31,12 @@
|
|
|
31
31
|
import fs from 'node:fs';
|
|
32
32
|
import path from 'node:path';
|
|
33
33
|
import { fileURLToPath } from 'node:url';
|
|
34
|
+
import {
|
|
35
|
+
REQUIRED_SECTIONS,
|
|
36
|
+
NEXT_TEMPLATE,
|
|
37
|
+
validateGuideContent,
|
|
38
|
+
parseBumpType,
|
|
39
|
+
} from './upgrade-guide-validator.mjs';
|
|
34
40
|
|
|
35
41
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
36
42
|
const ROOT = path.resolve(__dirname, '..');
|
|
@@ -42,125 +48,13 @@ const nextPath = path.join(ROOT, 'upgrades', 'NEXT.md');
|
|
|
42
48
|
const guideExists = fs.existsSync(guidePath);
|
|
43
49
|
const nextExists = fs.existsSync(nextPath);
|
|
44
50
|
|
|
45
|
-
// Required sections for a well-formed guide
|
|
46
|
-
const REQUIRED_SECTIONS = [
|
|
47
|
-
'## What Changed',
|
|
48
|
-
'## What to Tell Your User',
|
|
49
|
-
'## Summary of New Capabilities',
|
|
50
|
-
];
|
|
51
|
-
|
|
52
|
-
const MIN_LENGTH = 200;
|
|
53
|
-
|
|
54
|
-
// Template for a fresh NEXT.md after finalization
|
|
55
|
-
const NEXT_TEMPLATE = `# Upgrade Guide ā vNEXT
|
|
56
|
-
|
|
57
|
-
<!-- bump: patch -->
|
|
58
|
-
<!-- Valid values: patch, minor, major -->
|
|
59
|
-
<!-- patch = bug fixes, refactors, test additions, doc updates -->
|
|
60
|
-
<!-- minor = new features, new APIs, new capabilities (backwards-compatible) -->
|
|
61
|
-
<!-- major = breaking changes to existing APIs or behavior -->
|
|
62
|
-
|
|
63
|
-
## What Changed
|
|
64
|
-
|
|
65
|
-
<!-- Describe what changed technically. What new features, APIs, behavioral changes? -->
|
|
66
|
-
<!-- Write this for the AGENT ā they need to understand the system deeply. -->
|
|
67
|
-
|
|
68
|
-
## What to Tell Your User
|
|
69
|
-
|
|
70
|
-
<!-- Write talking points the agent should relay to their user. -->
|
|
71
|
-
<!-- This should be warm, conversational, user-facing ā not a changelog. -->
|
|
72
|
-
<!-- Focus on what THEY can now do, not internal plumbing. -->
|
|
73
|
-
<!-- -->
|
|
74
|
-
<!-- PROHIBITED in this section (will fail validation): -->
|
|
75
|
-
<!-- camelCase config keys: silentReject, maxRetries, telegramNotify -->
|
|
76
|
-
<!-- Inline code backtick references like silentReject: false -->
|
|
77
|
-
<!-- Fenced code blocks -->
|
|
78
|
-
<!-- Instructions to edit files or run commands -->
|
|
79
|
-
<!-- -->
|
|
80
|
-
<!-- CORRECT style: "I can turn that on for you" not "set X to false" -->
|
|
81
|
-
<!-- The agent relays this to their user ā keep it human. -->
|
|
82
|
-
|
|
83
|
-
- **[Feature name]**: "[Brief, friendly description of what this means for the user]"
|
|
84
|
-
|
|
85
|
-
## Summary of New Capabilities
|
|
86
|
-
|
|
87
|
-
| Capability | How to Use |
|
|
88
|
-
|-----------|-----------|
|
|
89
|
-
| [Capability] | [Endpoint, command, or "automatic"] |
|
|
90
|
-
`;
|
|
91
|
-
|
|
92
51
|
/**
|
|
93
|
-
* Validate a guide file
|
|
52
|
+
* Validate a guide file. Thin wrapper around validateGuideContent that handles
|
|
53
|
+
* the file read.
|
|
94
54
|
*/
|
|
95
55
|
function validateGuide(filePath) {
|
|
96
56
|
const content = fs.readFileSync(filePath, 'utf-8');
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
for (const section of REQUIRED_SECTIONS) {
|
|
100
|
-
if (!content.includes(section)) {
|
|
101
|
-
issues.push(`missing "${section}" section`);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
if (content.length < MIN_LENGTH) {
|
|
106
|
-
issues.push(`guide is too short (${content.length} chars, minimum ${MIN_LENGTH}) ā probably incomplete`);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
// Check for template placeholders that were never filled in
|
|
110
|
-
if (content.includes('<!-- Describe what changed')) {
|
|
111
|
-
issues.push(`"What Changed" section still contains template placeholder ā fill it in`);
|
|
112
|
-
}
|
|
113
|
-
if (content.includes('[Feature name]') || content.includes('[Brief, friendly description')) {
|
|
114
|
-
issues.push(`"What to Tell Your User" section still contains template placeholder ā fill it in`);
|
|
115
|
-
}
|
|
116
|
-
if (content.includes('[Capability]') && content.includes('[Endpoint, command')) {
|
|
117
|
-
issues.push(`"Summary of New Capabilities" section still contains template placeholder ā fill it in`);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
// Validate "What to Tell Your User" section for technical leakage.
|
|
121
|
-
// This section is relayed verbatim to users ā it must be conversational, not a config reference.
|
|
122
|
-
const userSectionMatch = content.match(/## What to Tell Your User([\s\S]*?)(?:##|$)/);
|
|
123
|
-
if (userSectionMatch) {
|
|
124
|
-
const userSection = userSectionMatch[1];
|
|
125
|
-
|
|
126
|
-
// Detect camelCase config key references (e.g. silentReject, maxRetries, telegramNotify)
|
|
127
|
-
const camelCaseConfigKey = /\b[a-z]+[A-Z][a-zA-Z]+\s*(?::|=)/.test(userSection);
|
|
128
|
-
if (camelCaseConfigKey) {
|
|
129
|
-
issues.push(
|
|
130
|
-
`"What to Tell Your User" contains a camelCase config key reference (e.g. "silentReject: false"). ` +
|
|
131
|
-
`Users should never be told to edit config directly. ` +
|
|
132
|
-
`Rephrase conversationally: "I can turn that on for you" not "set silentReject: false".`
|
|
133
|
-
);
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
// Detect inline code blocks ā config syntax, CLI commands, file paths
|
|
137
|
-
const hasInlineCode = /`[^`]+`/.test(userSection);
|
|
138
|
-
if (hasInlineCode) {
|
|
139
|
-
issues.push(
|
|
140
|
-
`"What to Tell Your User" contains inline code (\`...\`). ` +
|
|
141
|
-
`Remove code formatting ā user-facing language should be plain and conversational.`
|
|
142
|
-
);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
// Detect fenced code blocks
|
|
146
|
-
if (/```/.test(userSection)) {
|
|
147
|
-
issues.push(
|
|
148
|
-
`"What to Tell Your User" contains a fenced code block. ` +
|
|
149
|
-
`This section is for user-facing narrative ā move technical examples to "What Changed".`
|
|
150
|
-
);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
return issues;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* Parse the declared bump type from a guide's <!-- bump: TYPE --> comment.
|
|
159
|
-
* Returns 'patch' | 'minor' | 'major' | null.
|
|
160
|
-
*/
|
|
161
|
-
function parseBumpType(content) {
|
|
162
|
-
const match = /<!--\s*bump:\s*(patch|minor|major)\s*-->/.exec(content);
|
|
163
|
-
return match ? match[1] : null;
|
|
57
|
+
return validateGuideContent(content);
|
|
164
58
|
}
|
|
165
59
|
|
|
166
60
|
/**
|
|
@@ -123,76 +123,37 @@ def fetch_github_metrics():
|
|
|
123
123
|
return metrics
|
|
124
124
|
|
|
125
125
|
|
|
126
|
-
def compute_trends(
|
|
127
|
-
"""Compare current metrics to
|
|
128
|
-
|
|
129
|
-
Returns dict with:
|
|
130
|
-
- alerts: list of significant changes detected
|
|
131
|
-
- baseline_npm_day: 7-day rolling median (from prior days only)
|
|
132
|
-
- comparison: raw comparison data
|
|
133
|
-
"""
|
|
126
|
+
def compute_trends(state_dir):
|
|
127
|
+
"""Compare current metrics to previous snapshots for trend detection."""
|
|
134
128
|
history_file = Path(state_dir) / "telemetry.jsonl"
|
|
135
129
|
if not history_file.exists():
|
|
136
|
-
return
|
|
137
|
-
|
|
138
|
-
# Get today's date
|
|
139
|
-
today_str = current_snapshot.get("timestamp", "").split("T")[0]
|
|
130
|
+
return None
|
|
140
131
|
|
|
141
|
-
# Read
|
|
132
|
+
# Read last 7 entries
|
|
142
133
|
lines = history_file.read_text().strip().split("\n")
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
for line in lines:
|
|
134
|
+
recent = []
|
|
135
|
+
for line in lines[-7:]:
|
|
146
136
|
try:
|
|
147
|
-
|
|
148
|
-
snap_date = snap.get("timestamp", "").split("T")[0]
|
|
149
|
-
npm_day = snap.get("npm", {}).get("last_day")
|
|
150
|
-
if npm_day is not None:
|
|
151
|
-
# Keep the latest snapshot for each date
|
|
152
|
-
daily_values[snap_date] = npm_day
|
|
137
|
+
recent.append(json.loads(line))
|
|
153
138
|
except json.JSONDecodeError:
|
|
154
139
|
continue
|
|
155
140
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
if
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
if current_npm_day is not None and baseline > 0:
|
|
174
|
-
# Alert if >20% deviation from baseline
|
|
175
|
-
pct_change = ((current_npm_day - baseline) / baseline) * 100
|
|
176
|
-
if abs(pct_change) > 20:
|
|
177
|
-
direction = "š" if pct_change > 0 else "š"
|
|
178
|
-
alerts.append({
|
|
179
|
-
"type": "npm_anomaly",
|
|
180
|
-
"message": f"{direction} npm downloads {abs(pct_change):.0f}% from baseline ({current_npm_day} vs {baseline} median)",
|
|
181
|
-
"current": current_npm_day,
|
|
182
|
-
"baseline": baseline,
|
|
183
|
-
"pct_change": pct_change
|
|
184
|
-
})
|
|
185
|
-
|
|
186
|
-
return {
|
|
187
|
-
"alerts": alerts,
|
|
188
|
-
"baseline_npm_day": baseline,
|
|
189
|
-
"comparison": {
|
|
190
|
-
"current": current_npm_day,
|
|
191
|
-
"baseline": baseline,
|
|
192
|
-
"history_count": len(sorted_values),
|
|
193
|
-
"prior_days": len(prior_days)
|
|
194
|
-
}
|
|
195
|
-
}
|
|
141
|
+
if len(recent) < 2:
|
|
142
|
+
return None
|
|
143
|
+
|
|
144
|
+
prev = recent[-2] if len(recent) >= 2 else None
|
|
145
|
+
week_ago = recent[0] if len(recent) >= 7 else recent[0]
|
|
146
|
+
|
|
147
|
+
trends = {}
|
|
148
|
+
if prev:
|
|
149
|
+
prev_npm = prev.get("npm", {}).get("last_day")
|
|
150
|
+
trends["npm_day_prev"] = prev_npm
|
|
151
|
+
|
|
152
|
+
if week_ago:
|
|
153
|
+
week_npm = week_ago.get("npm", {}).get("last_week")
|
|
154
|
+
trends["npm_week_prev"] = week_npm
|
|
155
|
+
|
|
156
|
+
return trends
|
|
196
157
|
|
|
197
158
|
|
|
198
159
|
def save_snapshot(snapshot, state_dir):
|
|
@@ -211,49 +172,6 @@ def save_snapshot(snapshot, state_dir):
|
|
|
211
172
|
json.dump(snapshot, f, indent=2)
|
|
212
173
|
|
|
213
174
|
|
|
214
|
-
def send_telegram_notification(alerts, snapshot):
|
|
215
|
-
"""Send Telegram notification if significant alerts exist."""
|
|
216
|
-
if not alerts:
|
|
217
|
-
return
|
|
218
|
-
|
|
219
|
-
# Build message
|
|
220
|
-
ts = snapshot.get("timestamp", "").split("T")[0] # Date only
|
|
221
|
-
lines = [f"š Instar Metrics Alert ({ts})"]
|
|
222
|
-
|
|
223
|
-
for alert in alerts:
|
|
224
|
-
lines.append(f"\n{alert['message']}")
|
|
225
|
-
|
|
226
|
-
message = "\n".join(lines)
|
|
227
|
-
|
|
228
|
-
# Try multiple locations for the telegram-reply script
|
|
229
|
-
possible_paths = [
|
|
230
|
-
os.path.expanduser("~/.dawn-server/scripts/telegram-reply.py"),
|
|
231
|
-
os.path.expanduser("~/.claude/scripts/telegram-reply.py"),
|
|
232
|
-
"./.claude/scripts/telegram-reply.py",
|
|
233
|
-
]
|
|
234
|
-
|
|
235
|
-
script_path = None
|
|
236
|
-
for path in possible_paths:
|
|
237
|
-
if os.path.exists(path):
|
|
238
|
-
script_path = path
|
|
239
|
-
break
|
|
240
|
-
|
|
241
|
-
if script_path:
|
|
242
|
-
# Topic ID 2278 is the instar metrics topic
|
|
243
|
-
cmd = [
|
|
244
|
-
"python3", script_path, "2278", message
|
|
245
|
-
]
|
|
246
|
-
try:
|
|
247
|
-
result = subprocess.run(cmd, capture_output=True, text=True, timeout=10)
|
|
248
|
-
print(f"[Telegram] Sent alert notification to topic 2278")
|
|
249
|
-
if result.returncode != 0 and result.stderr:
|
|
250
|
-
print(f"[Telegram] Warning: {result.stderr}")
|
|
251
|
-
except Exception as e:
|
|
252
|
-
print(f"[Telegram] Failed to send notification: {e}")
|
|
253
|
-
else:
|
|
254
|
-
print(f"[Telegram] Script not found in any expected location (skipping notification)")
|
|
255
|
-
|
|
256
|
-
|
|
257
175
|
def format_summary(snapshot):
|
|
258
176
|
"""Format a human-readable summary."""
|
|
259
177
|
lines = []
|
|
@@ -311,30 +229,17 @@ def main():
|
|
|
311
229
|
# Collect
|
|
312
230
|
snapshot["npm"] = fetch_npm_downloads()
|
|
313
231
|
snapshot["github"] = fetch_github_metrics()
|
|
232
|
+
snapshot["trends"] = compute_trends(args.state_dir)
|
|
314
233
|
|
|
315
234
|
# Save
|
|
316
235
|
save_snapshot(snapshot, args.state_dir)
|
|
317
236
|
|
|
318
|
-
# Analyze trends and detect anomalies
|
|
319
|
-
trends_analysis = compute_trends(snapshot, args.state_dir)
|
|
320
|
-
snapshot["trends"] = trends_analysis
|
|
321
|
-
|
|
322
|
-
# Send Telegram notification if alerts detected
|
|
323
|
-
alerts = trends_analysis.get("alerts", [])
|
|
324
|
-
if alerts:
|
|
325
|
-
send_telegram_notification(alerts, snapshot)
|
|
326
|
-
|
|
327
237
|
# Output
|
|
328
238
|
if not args.quiet:
|
|
329
239
|
if args.json:
|
|
330
240
|
print(json.dumps(snapshot, indent=2))
|
|
331
241
|
else:
|
|
332
|
-
|
|
333
|
-
if alerts:
|
|
334
|
-
summary += "\n\nā ļø Alerts:\n"
|
|
335
|
-
for alert in alerts:
|
|
336
|
-
summary += f" ⢠{alert['message']}\n"
|
|
337
|
-
print(summary)
|
|
242
|
+
print(format_summary(snapshot))
|
|
338
243
|
|
|
339
244
|
return 0
|
|
340
245
|
|