instar 1.3.1347 → 1.3.1349

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 (75) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +15 -2
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/core/LifelineIngressSecret.d.ts +83 -0
  5. package/dist/core/LifelineIngressSecret.d.ts.map +1 -0
  6. package/dist/core/LifelineIngressSecret.js +203 -0
  7. package/dist/core/LifelineIngressSecret.js.map +1 -0
  8. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  9. package/dist/core/PostUpdateMigrator.js +15 -0
  10. package/dist/core/PostUpdateMigrator.js.map +1 -1
  11. package/dist/core/SingleInstanceLock.d.ts +62 -0
  12. package/dist/core/SingleInstanceLock.d.ts.map +1 -1
  13. package/dist/core/SingleInstanceLock.js +89 -4
  14. package/dist/core/SingleInstanceLock.js.map +1 -1
  15. package/dist/core/WriteDomainRegistry.d.ts.map +1 -1
  16. package/dist/core/WriteDomainRegistry.js +17 -0
  17. package/dist/core/WriteDomainRegistry.js.map +1 -1
  18. package/dist/core/devGatedFeatures.d.ts.map +1 -1
  19. package/dist/core/devGatedFeatures.js +6 -0
  20. package/dist/core/devGatedFeatures.js.map +1 -1
  21. package/dist/core/keyMaterialPaths.d.ts.map +1 -1
  22. package/dist/core/keyMaterialPaths.js +16 -0
  23. package/dist/core/keyMaterialPaths.js.map +1 -1
  24. package/dist/core/types.d.ts +23 -0
  25. package/dist/core/types.d.ts.map +1 -1
  26. package/dist/core/types.js.map +1 -1
  27. package/dist/core/version-skew.d.ts +4 -2
  28. package/dist/core/version-skew.d.ts.map +1 -1
  29. package/dist/core/version-skew.js +3 -1
  30. package/dist/core/version-skew.js.map +1 -1
  31. package/dist/data/standards-guard-index.json +1 -1
  32. package/dist/data/standards-guard-index.meta.json +2 -2
  33. package/dist/data/standards-registry.meta.json +1 -1
  34. package/dist/lifeline/ServerSupervisor.d.ts +2 -0
  35. package/dist/lifeline/ServerSupervisor.d.ts.map +1 -1
  36. package/dist/lifeline/ServerSupervisor.js +42 -3
  37. package/dist/lifeline/ServerSupervisor.js.map +1 -1
  38. package/dist/lifeline/TelegramLifeline.d.ts +49 -0
  39. package/dist/lifeline/TelegramLifeline.d.ts.map +1 -1
  40. package/dist/lifeline/TelegramLifeline.js +202 -17
  41. package/dist/lifeline/TelegramLifeline.js.map +1 -1
  42. package/dist/lifeline/forwardErrors.d.ts +11 -0
  43. package/dist/lifeline/forwardErrors.d.ts.map +1 -1
  44. package/dist/lifeline/forwardErrors.js +15 -1
  45. package/dist/lifeline/forwardErrors.js.map +1 -1
  46. package/dist/monitoring/guardManifest.d.ts.map +1 -1
  47. package/dist/monitoring/guardManifest.js +24 -0
  48. package/dist/monitoring/guardManifest.js.map +1 -1
  49. package/dist/scaffold/templates.d.ts.map +1 -1
  50. package/dist/scaffold/templates.js +4 -0
  51. package/dist/scaffold/templates.js.map +1 -1
  52. package/dist/server/LifelineIngressGuard.d.ts +326 -0
  53. package/dist/server/LifelineIngressGuard.d.ts.map +1 -0
  54. package/dist/server/LifelineIngressGuard.js +713 -0
  55. package/dist/server/LifelineIngressGuard.js.map +1 -0
  56. package/dist/server/TelegramCallbackDedupe.d.ts +58 -0
  57. package/dist/server/TelegramCallbackDedupe.d.ts.map +1 -0
  58. package/dist/server/TelegramCallbackDedupe.js +151 -0
  59. package/dist/server/TelegramCallbackDedupe.js.map +1 -0
  60. package/dist/server/routes.d.ts.map +1 -1
  61. package/dist/server/routes.js +218 -10
  62. package/dist/server/routes.js.map +1 -1
  63. package/dist/testing/selfActionRegistry.d.ts.map +1 -1
  64. package/dist/testing/selfActionRegistry.js +98 -0
  65. package/dist/testing/selfActionRegistry.js.map +1 -1
  66. package/package.json +1 -1
  67. package/src/data/builtin-manifest.json +64 -64
  68. package/src/data/standards-guard-index.json +1 -1
  69. package/src/data/standards-guard-index.meta.json +2 -2
  70. package/src/data/standards-registry.meta.json +1 -1
  71. package/src/data/state-coherence-registry.json +19 -0
  72. package/src/scaffold/templates.ts +4 -0
  73. package/upgrades/1.3.1349.md +59 -0
  74. package/upgrades/side-effects/single-instance-lock-pid-reuse.md +170 -0
  75. package/upgrades/side-effects/telegram-internal-route-lifeline-secret.md +187 -0
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"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"}
@@ -87,6 +87,7 @@ import { closeAllSqlite } from '../core/SqliteRegistry.js';
87
87
  import { DP_SUBSCRIPTION_RELOGIN_ACTION, DP_TELEGRAM_ORIGIN_RECOVERY } from '../data/provenanceCoverage.js';
88
88
  import { buildBoundedContext, buildStructuredSha256Identity } from '../core/JudgmentProvenanceLog.js';
89
89
  import { SessionManager, IDLE_PROMPT_PATTERNS } from '../core/SessionManager.js';
90
+ import { sharedLifelineIngressSecretHolder, LIFELINE_SECRET_HEADER, LIFELINE_INGRESS_CALLER_HEADER, LIFELINE_INGRESS_CALLER_SERVER_SELF, } from '../core/LifelineIngressSecret.js';
90
91
  import { configureSyncOpMarker, defaultInflightMarkerReader } from '../core/InFlightSyncOpMarker.js';
91
92
  import { StateManager } from '../core/StateManager.js';
92
93
  import { StuckInputSentinel } from '../core/StuckInputSentinel.js';
@@ -2264,7 +2265,10 @@ getHubClassifierDeps) {
2264
2265
  return;
2265
2266
  const text = msg.content;
2266
2267
  // Resolve user profile for context injection (Gap 8)
2267
- const telegramUserId = msg.metadata?.telegramUserId ?? 0;
2268
+ // An inbound the lifeline-secret gate accepted WITHOUT proof of the
2269
+ // lifeline carries `senderUnverified` and no sender id: it is delivered,
2270
+ // but nothing here may treat it as coming from a known person.
2271
+ const telegramUserId = msg.metadata?.senderUnverified === true ? 0 : (msg.metadata?.telegramUserId ?? 0);
2268
2272
  const resolvedUser = telegramUserId && userManager
2269
2273
  ? userManager.resolveFromTelegramUserId(telegramUserId)
2270
2274
  : null;
@@ -2297,7 +2301,8 @@ getHubClassifierDeps) {
2297
2301
  // no store / unauthorized / error → no-op and routing continues.
2298
2302
  try {
2299
2303
  const opStore = getTopicOperatorStore?.() ?? null;
2300
- if (opStore && operatorAutoBindPermitted(signedByAgent) && telegramUserId && telegram.isAuthorizedSender(telegramUserId)) {
2304
+ // An inbound the lifeline-secret gate accepted WITHOUT proof never seats an operator.
2305
+ if (opStore && msg.metadata?.senderUnverified !== true && operatorAutoBindPermitted(signedByAgent) && telegramUserId && telegram.isAuthorizedSender(telegramUserId)) {
2301
2306
  // A lifeline-forwarded Message.id may contain a Date.now fallback used
2302
2307
  // only for internal routing. Establishment evidence must use the raw
2303
2308
  // Telegram id carried separately; absent stays absent and fails closed.
@@ -10828,11 +10833,19 @@ export async function startServer(options) {
10828
10833
  }
10829
10834
  console.log(`[injectionDropped] Session "${info.sessionName}" died with unanswered message for topic ${info.topicId}. Triggering respawn.`);
10830
10835
  // Re-trigger the telegram-forward endpoint internally using fetch
10836
+ // The route requires the lifeline ingress secret; this is the server
10837
+ // calling itself, so it reads the same file and labels the call so it
10838
+ // is not counted as proof the LIFELINE sends the secret.
10839
+ // The SAME in-memory holder the route's guard checks against, so a
10840
+ // momentarily unreadable file cannot make the server refuse itself.
10841
+ const selfIngressSecret = sharedLifelineIngressSecretHolder(config.stateDir).get();
10831
10842
  fetch(`http://localhost:${config.port}/internal/telegram-forward`, {
10832
10843
  method: 'POST',
10833
10844
  headers: {
10834
10845
  'Content-Type': 'application/json',
10835
10846
  'Authorization': `Bearer ${config.authToken}`,
10847
+ ...(selfIngressSecret ? { [LIFELINE_SECRET_HEADER]: selfIngressSecret } : {}),
10848
+ [LIFELINE_INGRESS_CALLER_HEADER]: LIFELINE_INGRESS_CALLER_SERVER_SELF,
10836
10849
  },
10837
10850
  body: JSON.stringify({ topicId: info.topicId, text: info.text, fromFirstName: 'User' }),
10838
10851
  }).then(async (res) => {