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.
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +15 -2
- package/dist/commands/server.js.map +1 -1
- package/dist/core/LifelineIngressSecret.d.ts +83 -0
- package/dist/core/LifelineIngressSecret.d.ts.map +1 -0
- package/dist/core/LifelineIngressSecret.js +203 -0
- package/dist/core/LifelineIngressSecret.js.map +1 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +15 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/SingleInstanceLock.d.ts +62 -0
- package/dist/core/SingleInstanceLock.d.ts.map +1 -1
- package/dist/core/SingleInstanceLock.js +89 -4
- package/dist/core/SingleInstanceLock.js.map +1 -1
- package/dist/core/WriteDomainRegistry.d.ts.map +1 -1
- package/dist/core/WriteDomainRegistry.js +17 -0
- package/dist/core/WriteDomainRegistry.js.map +1 -1
- package/dist/core/devGatedFeatures.d.ts.map +1 -1
- package/dist/core/devGatedFeatures.js +6 -0
- package/dist/core/devGatedFeatures.js.map +1 -1
- package/dist/core/keyMaterialPaths.d.ts.map +1 -1
- package/dist/core/keyMaterialPaths.js +16 -0
- package/dist/core/keyMaterialPaths.js.map +1 -1
- package/dist/core/types.d.ts +23 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/version-skew.d.ts +4 -2
- package/dist/core/version-skew.d.ts.map +1 -1
- package/dist/core/version-skew.js +3 -1
- package/dist/core/version-skew.js.map +1 -1
- package/dist/data/standards-guard-index.json +1 -1
- package/dist/data/standards-guard-index.meta.json +2 -2
- package/dist/data/standards-registry.meta.json +1 -1
- package/dist/lifeline/ServerSupervisor.d.ts +2 -0
- package/dist/lifeline/ServerSupervisor.d.ts.map +1 -1
- package/dist/lifeline/ServerSupervisor.js +42 -3
- package/dist/lifeline/ServerSupervisor.js.map +1 -1
- package/dist/lifeline/TelegramLifeline.d.ts +49 -0
- package/dist/lifeline/TelegramLifeline.d.ts.map +1 -1
- package/dist/lifeline/TelegramLifeline.js +202 -17
- package/dist/lifeline/TelegramLifeline.js.map +1 -1
- package/dist/lifeline/forwardErrors.d.ts +11 -0
- package/dist/lifeline/forwardErrors.d.ts.map +1 -1
- package/dist/lifeline/forwardErrors.js +15 -1
- package/dist/lifeline/forwardErrors.js.map +1 -1
- package/dist/monitoring/guardManifest.d.ts.map +1 -1
- package/dist/monitoring/guardManifest.js +24 -0
- package/dist/monitoring/guardManifest.js.map +1 -1
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +4 -0
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/LifelineIngressGuard.d.ts +326 -0
- package/dist/server/LifelineIngressGuard.d.ts.map +1 -0
- package/dist/server/LifelineIngressGuard.js +713 -0
- package/dist/server/LifelineIngressGuard.js.map +1 -0
- package/dist/server/TelegramCallbackDedupe.d.ts +58 -0
- package/dist/server/TelegramCallbackDedupe.d.ts.map +1 -0
- package/dist/server/TelegramCallbackDedupe.js +151 -0
- package/dist/server/TelegramCallbackDedupe.js.map +1 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +218 -10
- package/dist/server/routes.js.map +1 -1
- package/dist/testing/selfActionRegistry.d.ts.map +1 -1
- package/dist/testing/selfActionRegistry.js +98 -0
- package/dist/testing/selfActionRegistry.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +64 -64
- package/src/data/standards-guard-index.json +1 -1
- package/src/data/standards-guard-index.meta.json +2 -2
- package/src/data/standards-registry.meta.json +1 -1
- package/src/data/state-coherence-registry.json +19 -0
- package/src/scaffold/templates.ts +4 -0
- package/upgrades/1.3.1349.md +59 -0
- package/upgrades/side-effects/single-instance-lock-pid-reuse.md +170 -0
- 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":"AAwGA,OAAO,EAAE,cAAc,EAAwD,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/server.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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) => {
|