instar 0.17.13 → 0.18.1

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 (91) hide show
  1. package/README.md +2 -4
  2. package/dashboard/favicon.png +0 -0
  3. package/dashboard/index.html +7 -3
  4. package/dashboard/logo.png +0 -0
  5. package/dist/commands/init.js +16 -0
  6. package/dist/commands/init.js.map +1 -1
  7. package/dist/commands/relay.d.ts +1 -0
  8. package/dist/commands/relay.d.ts.map +1 -1
  9. package/dist/commands/relay.js +2 -0
  10. package/dist/commands/relay.js.map +1 -1
  11. package/dist/commands/server.d.ts.map +1 -1
  12. package/dist/commands/server.js +177 -4
  13. package/dist/commands/server.js.map +1 -1
  14. package/dist/core/AutoUpdater.d.ts.map +1 -1
  15. package/dist/core/AutoUpdater.js +11 -2
  16. package/dist/core/AutoUpdater.js.map +1 -1
  17. package/dist/core/Config.d.ts.map +1 -1
  18. package/dist/core/Config.js +1 -0
  19. package/dist/core/Config.js.map +1 -1
  20. package/dist/core/MessageSentinel.d.ts +14 -0
  21. package/dist/core/MessageSentinel.d.ts.map +1 -1
  22. package/dist/core/MessageSentinel.js +42 -10
  23. package/dist/core/MessageSentinel.js.map +1 -1
  24. package/dist/core/SessionManager.d.ts +13 -1
  25. package/dist/core/SessionManager.d.ts.map +1 -1
  26. package/dist/core/SessionManager.js +67 -0
  27. package/dist/core/SessionManager.js.map +1 -1
  28. package/dist/core/types.d.ts +26 -0
  29. package/dist/core/types.d.ts.map +1 -1
  30. package/dist/index.d.ts +3 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +1 -0
  33. package/dist/index.js.map +1 -1
  34. package/dist/scaffold/templates.d.ts.map +1 -1
  35. package/dist/scaffold/templates.js +40 -0
  36. package/dist/scaffold/templates.js.map +1 -1
  37. package/dist/server/AgentServer.d.ts +1 -0
  38. package/dist/server/AgentServer.d.ts.map +1 -1
  39. package/dist/server/AgentServer.js +1 -0
  40. package/dist/server/AgentServer.js.map +1 -1
  41. package/dist/server/routes.d.ts +1 -0
  42. package/dist/server/routes.d.ts.map +1 -1
  43. package/dist/server/routes.js +35 -0
  44. package/dist/server/routes.js.map +1 -1
  45. package/dist/threadline/AgentTrustManager.d.ts +40 -0
  46. package/dist/threadline/AgentTrustManager.d.ts.map +1 -1
  47. package/dist/threadline/AgentTrustManager.js +115 -0
  48. package/dist/threadline/AgentTrustManager.js.map +1 -1
  49. package/dist/threadline/ContentClassifier.d.ts +83 -0
  50. package/dist/threadline/ContentClassifier.d.ts.map +1 -0
  51. package/dist/threadline/ContentClassifier.js +201 -0
  52. package/dist/threadline/ContentClassifier.js.map +1 -0
  53. package/dist/threadline/InboundMessageGate.d.ts +69 -0
  54. package/dist/threadline/InboundMessageGate.d.ts.map +1 -0
  55. package/dist/threadline/InboundMessageGate.js +196 -0
  56. package/dist/threadline/InboundMessageGate.js.map +1 -0
  57. package/dist/threadline/RelayGroundingPreamble.d.ts +48 -0
  58. package/dist/threadline/RelayGroundingPreamble.d.ts.map +1 -0
  59. package/dist/threadline/RelayGroundingPreamble.js +68 -0
  60. package/dist/threadline/RelayGroundingPreamble.js.map +1 -0
  61. package/dist/threadline/ThreadlineBootstrap.d.ts +19 -0
  62. package/dist/threadline/ThreadlineBootstrap.d.ts.map +1 -1
  63. package/dist/threadline/ThreadlineBootstrap.js +125 -2
  64. package/dist/threadline/ThreadlineBootstrap.js.map +1 -1
  65. package/dist/threadline/ThreadlineMCPServer.d.ts +10 -0
  66. package/dist/threadline/ThreadlineMCPServer.d.ts.map +1 -1
  67. package/dist/threadline/ThreadlineMCPServer.js +289 -0
  68. package/dist/threadline/ThreadlineMCPServer.js.map +1 -1
  69. package/dist/threadline/ThreadlineRouter.d.ts +19 -1
  70. package/dist/threadline/ThreadlineRouter.d.ts.map +1 -1
  71. package/dist/threadline/ThreadlineRouter.js +42 -17
  72. package/dist/threadline/ThreadlineRouter.js.map +1 -1
  73. package/dist/threadline/client/ThreadlineClient.d.ts +13 -0
  74. package/dist/threadline/client/ThreadlineClient.d.ts.map +1 -1
  75. package/dist/threadline/client/ThreadlineClient.js +43 -0
  76. package/dist/threadline/client/ThreadlineClient.js.map +1 -1
  77. package/dist/threadline/index.d.ts +7 -1
  78. package/dist/threadline/index.d.ts.map +1 -1
  79. package/dist/threadline/index.js +6 -0
  80. package/dist/threadline/index.js.map +1 -1
  81. package/dist/threadline/mcp-stdio-entry.js +46 -0
  82. package/dist/threadline/mcp-stdio-entry.js.map +1 -1
  83. package/dist/threadline/relay/RelayRateLimiter.js +1 -1
  84. package/dist/threadline/relay/RelayRateLimiter.js.map +1 -1
  85. package/dist/threadline/relay/RelayServer.d.ts.map +1 -1
  86. package/dist/threadline/relay/RelayServer.js +4 -3
  87. package/dist/threadline/relay/RelayServer.js.map +1 -1
  88. package/package.json +14 -7
  89. package/src/data/builtin-manifest.json +48 -48
  90. package/upgrades/0.17.14.md +26 -0
  91. package/upgrades/0.18.1.md +34 -0
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "./builtin-manifest.schema.json",
3
3
  "schemaVersion": 1,
4
- "generatedAt": "2026-03-12T00:14:45.026Z",
5
- "instarVersion": "0.17.13",
4
+ "generatedAt": "2026-03-12T20:07:41.766Z",
5
+ "instarVersion": "0.18.1",
6
6
  "entryCount": 168,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -303,7 +303,7 @@
303
303
  "type": "route-group",
304
304
  "domain": "monitoring",
305
305
  "sourcePath": "src/server/routes.ts",
306
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
306
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
307
307
  "since": "2025-01-01"
308
308
  },
309
309
  "route-group:agents": {
@@ -311,7 +311,7 @@
311
311
  "type": "route-group",
312
312
  "domain": "sessions",
313
313
  "sourcePath": "src/server/routes.ts",
314
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
314
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
315
315
  "since": "2025-01-01"
316
316
  },
317
317
  "route-group:backups": {
@@ -319,7 +319,7 @@
319
319
  "type": "route-group",
320
320
  "domain": "operations",
321
321
  "sourcePath": "src/server/routes.ts",
322
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
322
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
323
323
  "since": "2025-01-01"
324
324
  },
325
325
  "route-group:git": {
@@ -327,7 +327,7 @@
327
327
  "type": "route-group",
328
328
  "domain": "coordination",
329
329
  "sourcePath": "src/server/routes.ts",
330
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
330
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
331
331
  "since": "2025-01-01"
332
332
  },
333
333
  "route-group:memory": {
@@ -335,7 +335,7 @@
335
335
  "type": "route-group",
336
336
  "domain": "memory",
337
337
  "sourcePath": "src/server/routes.ts",
338
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
338
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
339
339
  "since": "2025-01-01"
340
340
  },
341
341
  "route-group:semantic": {
@@ -343,7 +343,7 @@
343
343
  "type": "route-group",
344
344
  "domain": "memory",
345
345
  "sourcePath": "src/server/routes.ts",
346
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
346
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
347
347
  "since": "2025-01-01"
348
348
  },
349
349
  "route-group:status": {
@@ -351,7 +351,7 @@
351
351
  "type": "route-group",
352
352
  "domain": "monitoring",
353
353
  "sourcePath": "src/server/routes.ts",
354
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
354
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
355
355
  "since": "2025-01-01"
356
356
  },
357
357
  "route-group:capabilities": {
@@ -359,7 +359,7 @@
359
359
  "type": "route-group",
360
360
  "domain": "mapping",
361
361
  "sourcePath": "src/server/routes.ts",
362
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
362
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
363
363
  "since": "2025-01-01"
364
364
  },
365
365
  "route-group:project-map": {
@@ -367,7 +367,7 @@
367
367
  "type": "route-group",
368
368
  "domain": "mapping",
369
369
  "sourcePath": "src/server/routes.ts",
370
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
370
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
371
371
  "since": "2025-01-01"
372
372
  },
373
373
  "route-group:coherence": {
@@ -375,7 +375,7 @@
375
375
  "type": "route-group",
376
376
  "domain": "coherence",
377
377
  "sourcePath": "src/server/routes.ts",
378
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
378
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
379
379
  "since": "2025-01-01"
380
380
  },
381
381
  "route-group:topic-bindings": {
@@ -383,7 +383,7 @@
383
383
  "type": "route-group",
384
384
  "domain": "sessions",
385
385
  "sourcePath": "src/server/routes.ts",
386
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
386
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
387
387
  "since": "2025-01-01"
388
388
  },
389
389
  "route-group:context": {
@@ -391,7 +391,7 @@
391
391
  "type": "route-group",
392
392
  "domain": "context",
393
393
  "sourcePath": "src/server/routes.ts",
394
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
394
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
395
395
  "since": "2025-01-01"
396
396
  },
397
397
  "route-group:scope-coherence": {
@@ -399,7 +399,7 @@
399
399
  "type": "route-group",
400
400
  "domain": "coherence",
401
401
  "sourcePath": "src/server/routes.ts",
402
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
402
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
403
403
  "since": "2025-01-01"
404
404
  },
405
405
  "route-group:canonical-state": {
@@ -407,7 +407,7 @@
407
407
  "type": "route-group",
408
408
  "domain": "state",
409
409
  "sourcePath": "src/server/routes.ts",
410
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
410
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
411
411
  "since": "2025-01-01"
412
412
  },
413
413
  "route-group:ci": {
@@ -415,7 +415,7 @@
415
415
  "type": "route-group",
416
416
  "domain": "monitoring",
417
417
  "sourcePath": "src/server/routes.ts",
418
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
418
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
419
419
  "since": "2025-01-01"
420
420
  },
421
421
  "route-group:sessions": {
@@ -423,7 +423,7 @@
423
423
  "type": "route-group",
424
424
  "domain": "sessions",
425
425
  "sourcePath": "src/server/routes.ts",
426
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
426
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
427
427
  "since": "2025-01-01"
428
428
  },
429
429
  "route-group:jobs": {
@@ -431,7 +431,7 @@
431
431
  "type": "route-group",
432
432
  "domain": "scheduling",
433
433
  "sourcePath": "src/server/routes.ts",
434
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
434
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
435
435
  "since": "2025-01-01"
436
436
  },
437
437
  "route-group:skip-ledger": {
@@ -439,7 +439,7 @@
439
439
  "type": "route-group",
440
440
  "domain": "scheduling",
441
441
  "sourcePath": "src/server/routes.ts",
442
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
442
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
443
443
  "since": "2025-01-01"
444
444
  },
445
445
  "route-group:telegram": {
@@ -447,7 +447,7 @@
447
447
  "type": "route-group",
448
448
  "domain": "communication",
449
449
  "sourcePath": "src/server/routes.ts",
450
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
450
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
451
451
  "since": "2025-01-01"
452
452
  },
453
453
  "route-group:attention": {
@@ -455,7 +455,7 @@
455
455
  "type": "route-group",
456
456
  "domain": "communication",
457
457
  "sourcePath": "src/server/routes.ts",
458
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
458
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
459
459
  "since": "2025-01-01"
460
460
  },
461
461
  "route-group:relationships": {
@@ -463,7 +463,7 @@
463
463
  "type": "route-group",
464
464
  "domain": "relationships",
465
465
  "sourcePath": "src/server/routes.ts",
466
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
466
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
467
467
  "since": "2025-01-01"
468
468
  },
469
469
  "route-group:feedback": {
@@ -471,7 +471,7 @@
471
471
  "type": "route-group",
472
472
  "domain": "feedback",
473
473
  "sourcePath": "src/server/routes.ts",
474
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
474
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
475
475
  "since": "2025-01-01"
476
476
  },
477
477
  "route-group:updates": {
@@ -479,7 +479,7 @@
479
479
  "type": "route-group",
480
480
  "domain": "updates",
481
481
  "sourcePath": "src/server/routes.ts",
482
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
482
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
483
483
  "since": "2025-01-01"
484
484
  },
485
485
  "route-group:dispatches": {
@@ -487,7 +487,7 @@
487
487
  "type": "route-group",
488
488
  "domain": "dispatches",
489
489
  "sourcePath": "src/server/routes.ts",
490
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
490
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
491
491
  "since": "2025-01-01"
492
492
  },
493
493
  "route-group:quota": {
@@ -495,7 +495,7 @@
495
495
  "type": "route-group",
496
496
  "domain": "monitoring",
497
497
  "sourcePath": "src/server/routes.ts",
498
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
498
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
499
499
  "since": "2025-01-01"
500
500
  },
501
501
  "route-group:publishing": {
@@ -503,7 +503,7 @@
503
503
  "type": "route-group",
504
504
  "domain": "publishing",
505
505
  "sourcePath": "src/server/routes.ts",
506
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
506
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
507
507
  "since": "2025-01-01"
508
508
  },
509
509
  "route-group:private-views": {
@@ -511,7 +511,7 @@
511
511
  "type": "route-group",
512
512
  "domain": "publishing",
513
513
  "sourcePath": "src/server/routes.ts",
514
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
514
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
515
515
  "since": "2025-01-01"
516
516
  },
517
517
  "route-group:tunnel": {
@@ -519,7 +519,7 @@
519
519
  "type": "route-group",
520
520
  "domain": "networking",
521
521
  "sourcePath": "src/server/routes.ts",
522
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
522
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
523
523
  "since": "2025-01-01"
524
524
  },
525
525
  "route-group:events": {
@@ -527,7 +527,7 @@
527
527
  "type": "route-group",
528
528
  "domain": "networking",
529
529
  "sourcePath": "src/server/routes.ts",
530
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
530
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
531
531
  "since": "2025-01-01"
532
532
  },
533
533
  "route-group:evolution": {
@@ -535,7 +535,7 @@
535
535
  "type": "route-group",
536
536
  "domain": "evolution",
537
537
  "sourcePath": "src/server/routes.ts",
538
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
538
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
539
539
  "since": "2025-01-01"
540
540
  },
541
541
  "route-group:watchdog": {
@@ -543,7 +543,7 @@
543
543
  "type": "route-group",
544
544
  "domain": "monitoring",
545
545
  "sourcePath": "src/server/routes.ts",
546
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
546
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
547
547
  "since": "2025-01-01"
548
548
  },
549
549
  "route-group:topic-memory": {
@@ -551,7 +551,7 @@
551
551
  "type": "route-group",
552
552
  "domain": "memory",
553
553
  "sourcePath": "src/server/routes.ts",
554
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
554
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
555
555
  "since": "2025-01-01"
556
556
  },
557
557
  "route-group:state-sync": {
@@ -559,7 +559,7 @@
559
559
  "type": "route-group",
560
560
  "domain": "coordination",
561
561
  "sourcePath": "src/server/routes.ts",
562
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
562
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
563
563
  "since": "2025-01-01"
564
564
  },
565
565
  "route-group:intent": {
@@ -567,7 +567,7 @@
567
567
  "type": "route-group",
568
568
  "domain": "intent",
569
569
  "sourcePath": "src/server/routes.ts",
570
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
570
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
571
571
  "since": "2025-01-01"
572
572
  },
573
573
  "route-group:triage": {
@@ -575,7 +575,7 @@
575
575
  "type": "route-group",
576
576
  "domain": "safety",
577
577
  "sourcePath": "src/server/routes.ts",
578
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
578
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
579
579
  "since": "2025-01-01"
580
580
  },
581
581
  "route-group:operations": {
@@ -583,7 +583,7 @@
583
583
  "type": "route-group",
584
584
  "domain": "safety",
585
585
  "sourcePath": "src/server/routes.ts",
586
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
586
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
587
587
  "since": "2025-01-01"
588
588
  },
589
589
  "route-group:sentinel": {
@@ -591,7 +591,7 @@
591
591
  "type": "route-group",
592
592
  "domain": "safety",
593
593
  "sourcePath": "src/server/routes.ts",
594
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
594
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
595
595
  "since": "2025-01-01"
596
596
  },
597
597
  "route-group:trust": {
@@ -599,7 +599,7 @@
599
599
  "type": "route-group",
600
600
  "domain": "safety",
601
601
  "sourcePath": "src/server/routes.ts",
602
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
602
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
603
603
  "since": "2025-01-01"
604
604
  },
605
605
  "route-group:monitoring": {
@@ -607,7 +607,7 @@
607
607
  "type": "route-group",
608
608
  "domain": "monitoring",
609
609
  "sourcePath": "src/server/routes.ts",
610
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
610
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
611
611
  "since": "2025-01-01"
612
612
  },
613
613
  "route-group:commitments": {
@@ -615,7 +615,7 @@
615
615
  "type": "route-group",
616
616
  "domain": "commitments",
617
617
  "sourcePath": "src/server/routes.ts",
618
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
618
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
619
619
  "since": "2025-01-01"
620
620
  },
621
621
  "route-group:episodes": {
@@ -623,7 +623,7 @@
623
623
  "type": "route-group",
624
624
  "domain": "memory",
625
625
  "sourcePath": "src/server/routes.ts",
626
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
626
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
627
627
  "since": "2025-01-01"
628
628
  },
629
629
  "route-group:messages": {
@@ -631,7 +631,7 @@
631
631
  "type": "route-group",
632
632
  "domain": "coordination",
633
633
  "sourcePath": "src/server/routes.ts",
634
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
634
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
635
635
  "since": "2025-01-01"
636
636
  },
637
637
  "route-group:system-reviews": {
@@ -639,7 +639,7 @@
639
639
  "type": "route-group",
640
640
  "domain": "monitoring",
641
641
  "sourcePath": "src/server/routes.ts",
642
- "contentHash": "4b66fc5fd90ea75141514e0dc9c1892c83a074b6747d5c65380ca9e1874845c6",
642
+ "contentHash": "67e0b4a9a4367a39238508fe646c58bf5d3703da032d486bf24e5c47c6b5504f",
643
643
  "since": "2025-01-01"
644
644
  },
645
645
  "route-group:machine-mesh": {
@@ -1255,7 +1255,7 @@
1255
1255
  "type": "subsystem",
1256
1256
  "domain": "server",
1257
1257
  "sourcePath": "src/server/AgentServer.ts",
1258
- "contentHash": "3f1aeb9bc6991a547b97cb882772b6c7f527c6d274a50233a7f1cdb4ac8b1800",
1258
+ "contentHash": "69f1f81eecf45a001faa54058ff2fc79b86999a809e4b3e9aca39ca29d5178a6",
1259
1259
  "since": "2025-01-01"
1260
1260
  },
1261
1261
  "subsystem:session-manager": {
@@ -1263,7 +1263,7 @@
1263
1263
  "type": "subsystem",
1264
1264
  "domain": "sessions",
1265
1265
  "sourcePath": "src/core/SessionManager.ts",
1266
- "contentHash": "7f24ed3aa8a0d237535e38e987d58afd762964647e787773fc75fb56e3816309",
1266
+ "contentHash": "93246340e78ed252af7f033afdf258550efdfc1a0dcfa3145555618c5033bd08",
1267
1267
  "since": "2025-01-01"
1268
1268
  },
1269
1269
  "subsystem:auto-updater": {
@@ -1271,7 +1271,7 @@
1271
1271
  "type": "subsystem",
1272
1272
  "domain": "updates",
1273
1273
  "sourcePath": "src/core/AutoUpdater.ts",
1274
- "contentHash": "ab3cb4459a024cc9c7d7dbc09cb5fcb6eb63f569c7716c76cbc4ae95a9ef408a",
1274
+ "contentHash": "3ef8486700ee0bb3e2e209081c0bf5fba52d93b7a8bcf9aefdf93d7b1537c718",
1275
1275
  "since": "2025-01-01"
1276
1276
  },
1277
1277
  "subsystem:auto-dispatcher": {
@@ -0,0 +1,26 @@
1
+ # Upgrade Guide — v0.17.14
2
+
3
+ <!-- bump: patch -->
4
+
5
+ ## What Changed
6
+
7
+ ### Sentinel: Robust Category Extraction from LLM Responses
8
+
9
+ The MessageSentinel's LLM classification now uses multi-layer parsing instead of requiring an exact single-word response:
10
+
11
+ 1. **Exact match** (ideal): Response is just the category word — works as before.
12
+ 2. **Extraction** (new): For short responses (<100 chars) that contain a valid category word, the category is extracted. Example: "The classification is: normal" → extracts `normal`. Confidence is reduced (0.6 vs 0.8) to reflect the extraction.
13
+ 3. **Rejection**: Responses over 100 characters are treated as context-contaminated conversational responses and rejected (pass-through). This catches the case where the LLM gets CLAUDE.md injected and writes paragraphs instead of classifying.
14
+
15
+ Priority order when multiple categories appear in an extracted response: emergency-stop > pause > redirect > normal. This ensures safety-first ordering.
16
+
17
+ ## What to Tell Your User
18
+
19
+ - **Smarter message classification**: Your agent's safety system is now better at understanding its own internal responses, which means fewer false pauses and interruptions during normal conversation.
20
+
21
+ ## Summary of New Capabilities
22
+
23
+ | Capability | How to Use |
24
+ |-----------|-----------|
25
+ | Multi-layer LLM response parsing | Automatic — extracts valid classifications from verbose responses |
26
+ | Length-based rejection for contaminated responses | Automatic — responses >100 chars are treated as unreliable |
@@ -0,0 +1,34 @@
1
+ # Upgrade Guide — v0.18.1
2
+
3
+ <!-- bump: patch -->
4
+
5
+ ## What Changed
6
+
7
+ ### Full Relay Round-Trip Communication
8
+
9
+ The Threadline relay now supports complete bidirectional messaging, not just inbound delivery:
10
+
11
+ 1. **Reply routing via MCP**: When an agent receives a relay message and Claude processes it in a session, the `threadline_send` MCP tool now routes replies back through the relay. The MCP server calls the new `/threadline/relay-send` HTTP endpoint on the agent server, which forwards through the relay WebSocket.
12
+
13
+ 2. **Session persistence for follow-ups**: When a second message arrives from the same sender while a Claude session is still alive, the message is injected into the existing session instead of spawning a new one. This preserves conversation context across multiple exchanges.
14
+
15
+ 3. **Plaintext send for unknown agents**: Added `sendPlaintext()` and `sendAuto()` to ThreadlineClient. When replying to an agent whose E2E keys aren't known (not in `knownAgents`), the message is sent as base64-encoded JSON over the relay's transport-level security instead of requiring E2E encryption.
16
+
17
+ 4. **MCP entry point path resolution**: Fixed path resolution for npm-linked Instar installs. The bootstrap now falls back to `import.meta.url` when `node_modules/instar/dist/...` doesn't exist.
18
+
19
+ 5. **Auth rate limit increase**: Default `authAttemptsPerMinute` increased from 5 to 100 to handle development workflows where multiple agents on the same IP exhaust the limit during auto-reconnect cycles.
20
+
21
+ ## What to Tell Your User
22
+
23
+ - **Your agent can now have full conversations through the cloud relay**: Other agents on the Threadline network can message your agent, and your agent can reply back automatically. It all happens through the relay without needing to be on the same machine.
24
+
25
+ - **Conversations stay connected**: If someone sends multiple messages, they flow into the same conversation session rather than starting fresh each time. Your agent remembers the context.
26
+
27
+ ## Summary of New Capabilities
28
+
29
+ | Capability | How to Use |
30
+ |-----------|-----------|
31
+ | Relay reply routing | Automatic — Claude uses the threadline_send MCP tool, replies route through relay |
32
+ | Session persistence for relay messages | Automatic — follow-up messages from same sender inject into existing session |
33
+ | Plaintext relay send | Automatic — falls back from E2E encrypted to plaintext when recipient keys unknown |
34
+ | Relay-send HTTP endpoint | POST /threadline/relay-send with targetAgent, message, threadId |