instar 1.3.561 → 1.3.563

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.
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiCH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAS3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAuBjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAiH7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAsBtD;;;;;;;;;;;;;;;;;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;AAy3CD,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,GACpD,IAAI,CA8eN;AA2lBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAg5btE;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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAkCH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAS3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAuBjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAiH7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAsBtD;;;;;;;;;;;;;;;;;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;AAy3CD,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,GACpD,IAAI,CA8eN;AA2lBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA26btE;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"}
@@ -18,6 +18,7 @@ import { loadConfig, ensureStateDir, detectTmuxPath, detectGeminiPath } from '..
18
18
  import { isNonFatalUncaught, shouldLogStackForUncaught } from '../core/uncaughtExceptionPolicy.js';
19
19
  import { resolveDevAgentGate, resolveStateSyncStores } from '../core/devAgentGate.js';
20
20
  import { parseProfileTrigger, platformMessageIdFrom } from '../core/topicProfileIngress.js';
21
+ import { slugifyChannelName } from '../messaging/slack/sanitize.js';
21
22
  import { TopicProfileOrchestrator, resolvedToApplied, } from '../core/TopicProfileOrchestrator.js';
22
23
  import { CodexResumeMap } from '../core/CodexResumeMap.js';
23
24
  import { paneIdleWithEmptyInput } from '../core/ModelSwapService.js';
@@ -2357,7 +2358,7 @@ async function ensureSlackAttentionChannel(slack, state) {
2357
2358
  }
2358
2359
  try {
2359
2360
  const agentName = slack.config?.workspaceName?.replace(/-agent$/, '') || 'agent';
2360
- const channelId = await slack.createChannel(`${agentName}-sys-attention`);
2361
+ const channelId = await slack.createChannel(slugifyChannelName(`${agentName}-sys-attention`));
2361
2362
  state.set('slack-attention-channel', channelId);
2362
2363
  await slack.sendToChannel(channelId, `Attention channel active. Blocked tasks, critical errors, quota alerts, and anything that needs your attention will appear here.`);
2363
2364
  console.log(pc.green(` Created Slack Attention channel: ${channelId}`));
@@ -2375,7 +2376,7 @@ async function ensureSlackUpdatesChannel(slack, state) {
2375
2376
  return;
2376
2377
  try {
2377
2378
  const agentName = slack.config?.workspaceName?.replace(/-agent$/, '') || 'agent';
2378
- const channelId = await slack.createChannel(`${agentName}-sys-updates`);
2379
+ const channelId = await slack.createChannel(slugifyChannelName(`${agentName}-sys-updates`));
2379
2380
  state.set('slack-updates-channel', channelId);
2380
2381
  await slack.sendToChannel(channelId, `Updates channel active. Version updates, new features, and system announcements will appear here.`);
2381
2382
  console.log(` Created Slack Updates channel: ${channelId}`);
@@ -15031,7 +15032,34 @@ export async function startServer(options) {
15031
15032
  // wouldEnqueue/wouldHold/wouldRefuse counters ARE the promotion
15032
15033
  // evidence and /pool/queue must serve them. The boot sweep already
15033
15034
  // gate-expired any live→dry-run residual rows.
15034
- if (qcfg.enabled && _sessionPoolStage() !== 'dark') {
15035
+ //
15036
+ // BOOT-ORDER FIX: do NOT consult `_sessionPoolStage()` here — at this
15037
+ // point in the synchronous boot flow it is still the line-~443 stub
15038
+ // (`() => 'dark'`); the real impl is only assigned ~350 lines BELOW
15039
+ // (the `_sessionPoolStage = () => { ... }` reassignment after the
15040
+ // peer-presence puller is wired). Reading the stub made the gate
15041
+ // ALWAYS false, so the inbound-queue engine never constructed even
15042
+ // when correctly configured, and `/pool/queue` 503'd forever. Resolve
15043
+ // the stage INLINE from config here — mirroring the line-~16045 impl
15044
+ // exactly (liveConfig override with the static config block as the
15045
+ // fallback) — instead of depending on the not-yet-wired ref.
15046
+ const _sessionPoolStageNow = (() => {
15047
+ try {
15048
+ const fallback = (config.multiMachine?.sessionPool ?? {});
15049
+ const live = liveConfig.get('multiMachine.sessionPool', fallback);
15050
+ return iqcMod.resolveSessionPoolStage(live);
15051
+ }
15052
+ catch {
15053
+ // @silent-fallback-ok: a config-read failure resolves the stage
15054
+ // to 'dark' (the inert default) → the queue simply does not
15055
+ // construct this boot, byte-identical to the ships-dark default.
15056
+ // This is the SAFE direction (fail-closed: no queue), not a
15057
+ // degraded capability worth a DegradationReporter event. Mirrors
15058
+ // the live _sessionPoolStage getter's identical guard below.
15059
+ return 'dark';
15060
+ }
15061
+ })();
15062
+ if (qcfg.enabled && _sessionPoolStageNow !== 'dark') {
15035
15063
  const inv = iqcMod.validateInboundQueueInvariants(qcfg, hcfg);
15036
15064
  if (!inv.ok) {
15037
15065
  for (const v of inv.violations) {
@@ -15364,11 +15392,12 @@ export async function startServer(options) {
15364
15392
  const peerPresenceTimer = setInterval(() => { void peerPresencePuller.pullOnce(); }, 30_000);
15365
15393
  if (typeof peerPresenceTimer.unref === 'function')
15366
15394
  peerPresenceTimer.unref();
15395
+ const { resolveSessionPoolStage: _resolveSessionPoolStage } = await import('../core/inboundQueueConfig.js');
15367
15396
  _sessionPoolStage = () => {
15368
15397
  try {
15369
15398
  const fallback = (config.multiMachine?.sessionPool ?? {});
15370
15399
  const live = liveConfig.get('multiMachine.sessionPool', fallback);
15371
- return live?.enabled && live?.stage ? String(live.stage) : 'dark';
15400
+ return _resolveSessionPoolStage(live);
15372
15401
  }
15373
15402
  catch {
15374
15403
  return 'dark';