instar 1.3.768 → 1.3.770
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 +18 -0
- package/dist/commands/server.js.map +1 -1
- package/dist/core/slackRefreshBinding.d.ts +20 -0
- package/dist/core/slackRefreshBinding.d.ts.map +1 -1
- package/dist/core/slackRefreshBinding.js +31 -0
- package/dist/core/slackRefreshBinding.js.map +1 -1
- package/package.json +1 -1
- package/scripts/lint-machine-local-justification.js +273 -0
- package/scripts/lint-self-heal-fields.js +259 -0
- package/src/data/builtin-manifest.json +2 -2
- package/upgrades/1.3.769.md +62 -0
- package/upgrades/1.3.770.md +40 -0
- package/upgrades/eli16/act1174-lint-floors.eli16.md +75 -0
- package/upgrades/side-effects/act1174-lint-floors.md +124 -0
- package/upgrades/side-effects/slack-respawn-bind-token.eli16.md +46 -0
- package/upgrades/side-effects/slack-respawn-bind-token.md +121 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAwDH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAU3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAyBjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AA6H7D,OAAO,KAAK,EAAW,oBAAoB,EAAe,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAgFtD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAUT;AAyID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAgmDD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,oBAAoB,GAAG,IAAI,GACxC;IACD,YAAY,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB,CAqBA;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,cAAc,EAC9B,YAAY,CAAC,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAGvE,UAAU,CAAC,EAAE,MAAM,OAAO,8BAA8B,EAAE,WAAW,GAAG,IAAI,EAK5E,qBAAqB,CAAC,EAAE,MAAM,OAAO,gCAAgC,EAAE,kBAAkB,GAAG,IAAI,EAKhG,mBAAmB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,EAQrD,oBAAoB,CAAC,EAAE,MAAM;IAC3B,YAAY,EAAE,OAAO,kBAAkB,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACrE,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,IAAI,GACP,IAAI,CAonBN;AA2lBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA66lBtE;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD5E"}
|
package/dist/commands/server.js
CHANGED
|
@@ -21,6 +21,7 @@ const execFileAsync = promisify(execFile);
|
|
|
21
21
|
import { loadConfig, ensureStateDir, detectTmuxPath, detectGeminiPath } from '../core/Config.js';
|
|
22
22
|
import { handleProcessLevelError } from '../core/uncaughtExceptionPolicy.js';
|
|
23
23
|
import { planInboundLossNotices } from '../core/inboundLossRouting.js';
|
|
24
|
+
import { slackRespawnBootstrapIds } from '../core/slackRefreshBinding.js';
|
|
24
25
|
import { configureHostSpawnSemaphore } from '../core/hostSpawnSemaphore.js';
|
|
25
26
|
import { SpawningTopicsRegistry } from '../core/SpawningTopicsRegistry.js';
|
|
26
27
|
import { TopicReachabilityVerifier } from '../monitoring/TopicReachabilityVerifier.js';
|
|
@@ -15749,10 +15750,27 @@ export async function startServer(options) {
|
|
|
15749
15750
|
const sep = routingKey.indexOf(':');
|
|
15750
15751
|
const slackChannelId = sep === -1 ? routingKey : routingKey.slice(0, sep);
|
|
15751
15752
|
const slackThreadTs = sep === -1 ? undefined : routingKey.slice(sep + 1);
|
|
15753
|
+
// durable-conversation-identity §7 (slack-respawn-bind-token fix): a
|
|
15754
|
+
// FRESH Slack spawn passes `bootstrapConversationIds: [conversationId]`
|
|
15755
|
+
// (server.ts fresh-dispatch path) so the session mints INSTAR_BIND_TOKEN
|
|
15756
|
+
// + INSTAR_CONVERSATION_ID and can open durable state (a commitment)
|
|
15757
|
+
// bound to the minted id. This RESPAWN path (used by /sessions/refresh,
|
|
15758
|
+
// quota-swap, restart, restart-all — all funnel through SessionRefresh →
|
|
15759
|
+
// slackRespawner) previously OMITTED it, so a refreshed/quota-swapped
|
|
15760
|
+
// Slack session came up token-less and its durable binds were refused
|
|
15761
|
+
// (fail-closed) → the follow-through fell back to a fragile session-local
|
|
15762
|
+
// timer that dies on the next restart (the live-proven S7 gap). Telegram's
|
|
15763
|
+
// respawn is unaffected because it passes telegramTopicId, which
|
|
15764
|
+
// bindTokenEnvFlags uses as a fallback; Slack has no such fallback.
|
|
15765
|
+
// mintForInbound is an idempotent get-or-create → the SAME minted id the
|
|
15766
|
+
// fresh dispatch resolved for this routingKey. (Helper is unit-tested in
|
|
15767
|
+
// slackRefreshBinding.ts.)
|
|
15768
|
+
const bootstrapIds = slackRespawnBootstrapIds(routingKey, (k) => conversationRegistry.mintForInbound(k));
|
|
15752
15769
|
const newSessionName = await sessionManager.spawnInteractiveSession(followUpPrompt ?? 'Session refreshed — continue where you left off.', undefined, {
|
|
15753
15770
|
resumeSessionId,
|
|
15754
15771
|
slackChannelId,
|
|
15755
15772
|
slackThreadTs,
|
|
15773
|
+
...(bootstrapIds ? { bootstrapConversationIds: bootstrapIds } : {}),
|
|
15756
15774
|
...(accountSwap?.configHome ? { configHome: accountSwap.configHome } : {}),
|
|
15757
15775
|
...(accountSwap?.accountId ? { subscriptionAccountId: accountSwap.accountId } : {}),
|
|
15758
15776
|
});
|