instar 1.3.1632 → 1.3.1634
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 +3 -1
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +21 -0
- package/dist/commands/server.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts +2 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +14 -0
- package/dist/core/PostUpdateMigrator.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/monitoring/PresenceProxy.d.ts +23 -0
- package/dist/monitoring/PresenceProxy.d.ts.map +1 -1
- package/dist/monitoring/PresenceProxy.js +110 -11
- package/dist/monitoring/PresenceProxy.js.map +1 -1
- package/dist/native/InstarWedgeCanary.app/Contents/MacOS/InstarWedgeCanary +0 -0
- package/dist/native/instar-desktop-host +0 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +41 -0
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/CapabilityIndex.js +1 -1
- package/dist/server/CapabilityIndex.js.map +1 -1
- package/dist/server/mobilePairingRoutes.d.ts.map +1 -1
- package/dist/server/mobilePairingRoutes.js +2 -0
- package/dist/server/mobilePairingRoutes.js.map +1 -1
- package/dist/server/mobileSessionRoutes.d.ts +79 -0
- package/dist/server/mobileSessionRoutes.d.ts.map +1 -0
- package/dist/server/mobileSessionRoutes.js +192 -0
- package/dist/server/mobileSessionRoutes.js.map +1 -0
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +20 -20
- 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/upgrades/1.3.1633.md +21 -0
- package/upgrades/1.3.1634.md +21 -0
- package/upgrades/side-effects/mobile-open-session.eli16.md +32 -0
- package/upgrades/side-effects/mobile-open-session.md +86 -0
- package/upgrades/side-effects/presence-follows-replacement-session.md +92 -0
package/dashboard/index.html
CHANGED
|
@@ -8095,7 +8095,9 @@
|
|
|
8095
8095
|
const qs = p.toString();
|
|
8096
8096
|
history.replaceState(null, '', window.location.pathname + (qs ? '?' + qs : ''));
|
|
8097
8097
|
}
|
|
8098
|
-
} else if (++attempts <
|
|
8098
|
+
} else if (++attempts < 50) {
|
|
8099
|
+
// ~10 s: a phone opening an "Open session" link over a tunnel can take a few
|
|
8100
|
+
// seconds to receive the first session list after the PIN.
|
|
8099
8101
|
setTimeout(waitForSessions, 200);
|
|
8100
8102
|
}
|
|
8101
8103
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAwHA,OAAO,EAAE,cAAc,EAAwD,MAAM,2BAA2B,CAAC;AAgBjH,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AA6BjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AA8J7D,OAAO,KAAK,EAAW,oBAAoB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA4GtD,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAUT;AA0ID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;
|
|
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
|
@@ -562,6 +562,10 @@ let _agentServerRef = null;
|
|
|
562
562
|
// TopicReachabilityVerifier (constructed in the outer scope) can probe whether a topic
|
|
563
563
|
// is stuck-spawning. Assigned inside wireTelegramRouting; null until routing is wired.
|
|
564
564
|
let _spawningTopicsRegistryRef = null;
|
|
565
|
+
// Slack channels with a session spawn in flight (channelId -> count). Read by
|
|
566
|
+
// PresenceProxy.isSessionStarting so a session still starting for a message is
|
|
567
|
+
// never reported as "stopped".
|
|
568
|
+
const _slackSpawningChannels = new Map();
|
|
565
569
|
// Module-level reference for session resume mapping.
|
|
566
570
|
// Set once in startServer() and used by spawnSessionForTopic/respawnSessionForTopic.
|
|
567
571
|
let _topicResumeMap = null;
|
|
@@ -9428,6 +9432,9 @@ export async function startServer(options) {
|
|
|
9428
9432
|
console.warn(`[spawn-admission] slack admit error (fail-open): ${err instanceof Error ? err.message : String(err)}`);
|
|
9429
9433
|
}
|
|
9430
9434
|
}
|
|
9435
|
+
// The unanswered-message watcher reads this: a session starting for
|
|
9436
|
+
// this channel is not "stopped" (false-alarm fix, 2026-11-03).
|
|
9437
|
+
_slackSpawningChannels.set(channelId, (_slackSpawningChannels.get(channelId) ?? 0) + 1);
|
|
9431
9438
|
try {
|
|
9432
9439
|
const newSessionName = await sessionManager.spawnInteractiveSession(bootstrapMessage, targetSession, {
|
|
9433
9440
|
resumeSessionId,
|
|
@@ -9455,6 +9462,13 @@ export async function startServer(options) {
|
|
|
9455
9462
|
console.error(`[slack] Session spawn failed: ${err instanceof Error ? err.message : err}`);
|
|
9456
9463
|
return 'refused';
|
|
9457
9464
|
}
|
|
9465
|
+
finally {
|
|
9466
|
+
const left = (_slackSpawningChannels.get(channelId) ?? 1) - 1;
|
|
9467
|
+
if (left > 0)
|
|
9468
|
+
_slackSpawningChannels.set(channelId, left);
|
|
9469
|
+
else
|
|
9470
|
+
_slackSpawningChannels.delete(channelId);
|
|
9471
|
+
}
|
|
9458
9472
|
};
|
|
9459
9473
|
// Expose to the owner-side mesh bridge (a forwarded Slack message replays
|
|
9460
9474
|
// through the same dispatch on the machine that owns the conversation).
|
|
@@ -15587,6 +15601,13 @@ export async function startServer(options) {
|
|
|
15587
15601
|
return telegram?.getSessionForTopic(topicId) ?? null;
|
|
15588
15602
|
},
|
|
15589
15603
|
isSessionAlive: (name) => sessionManager.isSessionAlive(name),
|
|
15604
|
+
// A spawn in flight for this conversation is not a stopped session.
|
|
15605
|
+
isSessionStarting: (topicId) => {
|
|
15606
|
+
const slackChId = slackProxyChannelMap.get(topicId);
|
|
15607
|
+
if (slackChId)
|
|
15608
|
+
return (_slackSpawningChannels.get(slackChId) ?? 0) > 0;
|
|
15609
|
+
return _spawningTopicsRegistryRef?.has(topicId) ?? false;
|
|
15610
|
+
},
|
|
15590
15611
|
sendMessage: async (topicId, text, metadata) => {
|
|
15591
15612
|
// Check if this is a Slack synthetic ID (negative = Slack channel)
|
|
15592
15613
|
const slackChannelId = slackProxyChannelMap.get(topicId);
|