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.
Files changed (71) hide show
  1. package/dashboard/index.html +40 -30
  2. package/dist/commands/server.d.ts.map +1 -1
  3. package/dist/commands/server.js +105 -46
  4. package/dist/commands/server.js.map +1 -1
  5. package/dist/core/CoherenceGate.d.ts +7 -0
  6. package/dist/core/CoherenceGate.d.ts.map +1 -1
  7. package/dist/core/CoherenceGate.js +7 -6
  8. package/dist/core/CoherenceGate.js.map +1 -1
  9. package/dist/core/CoherenceReviewer.d.ts +20 -5
  10. package/dist/core/CoherenceReviewer.d.ts.map +1 -1
  11. package/dist/core/CoherenceReviewer.js +36 -6
  12. package/dist/core/CoherenceReviewer.js.map +1 -1
  13. package/dist/core/PostUpdateMigrator.d.ts +0 -14
  14. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  15. package/dist/core/PostUpdateMigrator.js +2 -123
  16. package/dist/core/PostUpdateMigrator.js.map +1 -1
  17. package/dist/core/SessionManager.d.ts +9 -0
  18. package/dist/core/SessionManager.d.ts.map +1 -1
  19. package/dist/core/SessionManager.js +18 -0
  20. package/dist/core/SessionManager.js.map +1 -1
  21. package/dist/monitoring/CompactionSentinel.d.ts +143 -0
  22. package/dist/monitoring/CompactionSentinel.d.ts.map +1 -0
  23. package/dist/monitoring/CompactionSentinel.js +262 -0
  24. package/dist/monitoring/CompactionSentinel.js.map +1 -0
  25. package/dist/monitoring/PresenceProxy.d.ts +0 -40
  26. package/dist/monitoring/PresenceProxy.d.ts.map +1 -1
  27. package/dist/monitoring/PresenceProxy.js +4 -156
  28. package/dist/monitoring/PresenceProxy.js.map +1 -1
  29. package/dist/monitoring/PromptGate.d.ts.map +1 -1
  30. package/dist/monitoring/PromptGate.js +0 -75
  31. package/dist/monitoring/PromptGate.js.map +1 -1
  32. package/dist/threadline/adapters/RESTServer.d.ts +7 -1
  33. package/dist/threadline/adapters/RESTServer.d.ts.map +1 -1
  34. package/dist/threadline/adapters/RESTServer.js +62 -1
  35. package/dist/threadline/adapters/RESTServer.js.map +1 -1
  36. package/dist/threadline/relay/OfflineQueue.js +1 -1
  37. package/dist/threadline/relay/OfflineQueue.js.map +1 -1
  38. package/package.json +1 -1
  39. package/scripts/check-upgrade-guide.js +9 -115
  40. package/scripts/collect-metrics.py +25 -120
  41. package/scripts/upgrade-guide-validator.mjs +221 -0
  42. package/src/data/builtin-manifest.json +18 -18
  43. package/upgrades/0.28.36.md +40 -0
  44. package/upgrades/0.28.37.md +69 -0
  45. package/upgrades/0.28.38.md +41 -0
  46. package/upgrades/0.28.39.md +29 -0
  47. package/upgrades/0.28.40.md +32 -0
  48. package/upgrades/0.28.41.md +41 -0
  49. package/upgrades/NEXT.md +18 -0
  50. package/upgrades/0.28.10.md +0 -19
  51. package/upgrades/0.28.11.md +0 -19
  52. package/upgrades/0.28.13.md +0 -11
  53. package/upgrades/0.28.15.md +0 -11
  54. package/upgrades/0.28.18.md +0 -12
  55. package/upgrades/0.28.20.md +0 -19
  56. package/upgrades/0.28.21.md +0 -23
  57. package/upgrades/0.28.22.md +0 -23
  58. package/upgrades/0.28.23.md +0 -19
  59. package/upgrades/0.28.24.md +0 -18
  60. package/upgrades/0.28.25.md +0 -21
  61. package/upgrades/0.28.26.md +0 -20
  62. package/upgrades/0.28.27.md +0 -20
  63. package/upgrades/0.28.28.md +0 -20
  64. package/upgrades/0.28.30.md +0 -25
  65. package/upgrades/0.28.31.md +0 -38
  66. package/upgrades/0.28.32.md +0 -22
  67. package/upgrades/0.28.33.md +0 -22
  68. package/upgrades/0.28.35.md +0 -37
  69. package/upgrades/0.28.5.md +0 -17
  70. package/upgrades/0.28.7.md +0 -24
  71. 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
- /** In-memory thread history (for GET /threads/:id) */
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: 3_600_000, // 1 hour
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":"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"}
1
+ {"version":3,"file":"OfflineQueue.js","sourceRoot":"","sources":["../../../src/threadline/relay/OfflineQueue.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "0.28.35",
3
+ "version": "0.28.41",
4
4
  "description": "Persistent autonomy infrastructure for AI agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -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 and return any issues found.
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
- const issues = [];
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(current_snapshot, state_dir):
127
- """Compare current metrics to historical baseline using rolling median.
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 {"alerts": [], "baseline_npm_day": None}
137
-
138
- # Get today's date
139
- today_str = current_snapshot.get("timestamp", "").split("T")[0]
130
+ return None
140
131
 
141
- # Read all entries and dedupe by date, keeping one per day
132
+ # Read last 7 entries
142
133
  lines = history_file.read_text().strip().split("\n")
143
- daily_values = {} # date -> npm_last_day
144
-
145
- for line in lines:
134
+ recent = []
135
+ for line in lines[-7:]:
146
136
  try:
147
- snap = json.loads(line)
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
- # Get values from prior days only (exclude today)
157
- prior_days = {k: v for k, v in daily_values.items() if k < today_str}
158
- if len(prior_days) < 1:
159
- return {"alerts": [], "baseline_npm_day": None}
160
-
161
- # Calculate median from last 7 prior days
162
- sorted_values = sorted(prior_days.values())
163
- if len(sorted_values) > 7:
164
- sorted_values = sorted_values[-7:] # Last 7 days
165
-
166
- median_idx = len(sorted_values) // 2
167
- baseline = sorted_values[median_idx]
168
-
169
- # Check for significant changes
170
- current_npm_day = current_snapshot.get("npm", {}).get("last_day")
171
- alerts = []
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
- summary = format_summary(snapshot)
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