@mininglamp-oss/cc-channel-octo 1.0.1 → 1.0.2-dev.0af5b14

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/index.js CHANGED
@@ -6,7 +6,9 @@
6
6
  * Orchestrates: loadConfig → createAdapter → SessionStore.init →
7
7
  * OctoGateway.start → setMessageHandler wiring the full pipeline.
8
8
  */
9
- import { loadConfig, resolveBotConfigs } from './config.js';
9
+ import { loadConfig, resolveBotConfigs, DEFAULT_CONFIG_PATH } from './config.js';
10
+ import { BotManager } from './bot-manager.js';
11
+ import { watchConfig } from './config-watcher.js';
10
12
  import { createAdapter } from './db-adapter.js';
11
13
  import { SessionStore } from './session-store.js';
12
14
  import { OctoGateway } from './gateway.js';
@@ -29,6 +31,23 @@ import { buildInlinedFileBody, truncateUtf8ByBytes, assembleUserMessage, MAX_USE
29
31
  import { join } from 'node:path';
30
32
  import { mkdirSync, realpathSync } from 'node:fs';
31
33
  import { pathToFileURL, fileURLToPath } from 'node:url';
34
+ /**
35
+ * Resolve a single bot's concrete Config by its configId (config.json
36
+ * `bots[].id`). Re-reads via resolveBotConfigs so a bot added after boot picks
37
+ * up the latest global+per-bot merge. Throws if the id is absent — the manager
38
+ * treats that as a failed add (rolled back), never starts a half-bot.
39
+ */
40
+ export function resolveBotConfigById(config, configId) {
41
+ const match = resolveBotConfigs(config).find((c) => c.botId === configId);
42
+ if (!match) {
43
+ throw new Error(`bot config not found for id "${configId}"`);
44
+ }
45
+ return match;
46
+ }
47
+ /** Absolute path to the global config.json the watcher should observe. */
48
+ function configPathForWatch() {
49
+ return DEFAULT_CONFIG_PATH;
50
+ }
32
51
  async function main() {
33
52
  // --- Q8: Global unhandled rejection handler ---
34
53
  process.on('unhandledRejection', (reason) => {
@@ -36,84 +55,69 @@ async function main() {
36
55
  });
37
56
  // --- Config ---
38
57
  const config = loadConfig();
39
- // v0.3 multi-bot: expand into one concrete Config per bot. Single-bot configs
40
- // resolve to a 1-element array, so the loop below is the same code path.
41
- const botConfigs = resolveBotConfigs(config);
42
- const multi = botConfigs.length > 1;
43
- if (multi) {
44
- console.log(`[cc-channel-octo] Multi-bot mode: starting ${botConfigs.length} bots`);
45
- }
46
- // Each bot runs a fully independent stack (gateway + router + store + cwd
47
- // cleanup), isolated by its own dataDir/cwdBase. They share nothing stateful,
48
- // so per-user history and sandboxes never cross between bots.
49
- //
50
- // Two-phase startup so no WebSocket ACKs a message before its handler is
51
- // ready: startBot() registers over REST (gets botId) and installs the message
52
- // handler, but does NOT open the socket. We then cross-register sibling bot
53
- // ids, and only AFTER that connect every socket.
54
- // Start each bot's pipeline. startBot() acquires the gateway.lock, opens the
55
- // SQLite store, and arms the cwd-cleanup interval BEFORE any socket connects
56
- // so if one bot's startBot() rejects (bad token, taken lock), the bots that
57
- // already succeeded must be torn down, or their locks/stores/intervals leak.
58
- // Promise.all would discard the resolved stacks on first rejection, so settle
59
- // all and clean up the successful ones before rethrowing.
60
- const startResults = await Promise.allSettled(botConfigs.map((c) => startBot(c, multi)));
61
- const stacks = [];
62
- let startError;
63
- for (const r of startResults) {
64
- if (r.status === 'fulfilled')
65
- stacks.push(r.value);
66
- else
67
- startError = startError ?? r.reason;
58
+ // #157 hot-reload: a single long-lived BotManager owns the live bot set for
59
+ // the whole process lifetime. Bots are added/removed at runtime by a
60
+ // config.json watcher — provisioning a new bot no longer restarts the gateway.
61
+ // The manager always runs under multi-bot signal ownership (main() owns the
62
+ // shutdown signals; per-gateway handlers are disabled) so a bot added later is
63
+ // governed the same way as one present at boot.
64
+ const manager = new BotManager(async (configId) => {
65
+ // Re-read config from disk: a bot added after boot is not in the boot-time
66
+ // config object. loadConfig() here reflects the latest config.json the
67
+ // watcher reacted to. startBot does register + handler install but does NOT
68
+ // open the socket — BotManager.addBot opens it (via stack.connect) AFTER
69
+ // cross-registering the loop-guard, preserving the two-phase ordering.
70
+ const botConfig = resolveBotConfigById(loadConfig(), configId);
71
+ return startBot(botConfig, /* multi (main owns signals) */ true);
72
+ });
73
+ // Initial sync: bring up the configured bots as ONE two-phase batch (start all
74
+ // cross-register all connect all), so no bot opens its socket before every
75
+ // sibling knows its robotUid (loop guard). resolveBotConfigs throws on an
76
+ // invalid config; let that fail boot.
77
+ const initialIds = resolveBotConfigs(config).map((c) => c.botId).filter((id) => !!id);
78
+ const { failed } = await manager.addBotsBatch(initialIds);
79
+ for (const f of failed) {
80
+ // Multi-bot resilience: one bot failing to start must not abort the others.
81
+ console.error(`[cc-channel-octo] bot "${f.configId}" failed to start, skipping: ${f.error instanceof Error ? f.error.message : String(f.error)}`);
68
82
  }
69
- if (startError) {
70
- console.error('[cc-channel-octo] Startup failed; cleaning up bots that did start...');
71
- await Promise.allSettled(stacks.map((s) => s.shutdown()));
72
- throw startError;
83
+ // Preserve pre-#157 semantics: an EMPTY config is a healthy idle state, but a
84
+ // NON-empty config where every bot failed is a boot failure (don't silently
85
+ // run idle while the operator believes bots are configured). The watcher still
86
+ // self-heals the empty/idle case on the next provision.
87
+ if (initialIds.length > 0 && manager.size() === 0) {
88
+ throw failed[0]?.error ?? new Error('no bots started');
73
89
  }
74
- // Multi-bot loop guard: make every router aware of ALL bot ids in this
75
- // process, so a mention-free group can't let one bot reply to another's
76
- // messages (knownBotUids → looksLikeBot → dropped). botIds are known after
77
- // register() (REST), before any socket is open.
78
- if (multi) {
79
- const allBotIds = stacks.map((s) => s.botId);
80
- for (const s of stacks) {
81
- for (const id of allBotIds) {
82
- if (id !== s.botId)
83
- s.router.registerKnownBot(id);
84
- }
85
- }
90
+ if (manager.size() === 0) {
91
+ console.log('[cc-channel-octo] idle (no bots configured) awaiting provision');
86
92
  }
87
- // Handlers are wired and siblings registered — now open every socket. From
88
- // this point inbound messages are dispatched, never ACK'd-and-dropped. Awaited
89
- // so a connection failure surfaces as a startup error. On a partial failure
90
- // (e.g. one bot's lock is held), shut down the stacks that did start so we
91
- // don't leave open sockets / stores dangling before the fatal exit.
92
- const connected = [];
93
- try {
94
- for (const s of stacks) {
95
- await s.connect();
96
- connected.push(s);
97
- }
98
- }
99
- catch (err) {
100
- console.error('[cc-channel-octo] Startup failed during socket connect; cleaning up...');
101
- await Promise.allSettled(connected.map((s) => s.shutdown()));
102
- throw err;
93
+ else {
94
+ console.log(`[cc-channel-octo] Ready ${manager.size()} bot(s) running`);
103
95
  }
104
- // Wire a single process-wide shutdown that drains every bot, so N gateways
105
- // don't each call process.exit. The per-gateway signal handlers are disabled
106
- // in multi-bot mode (handleSignals=false); we own the signals here.
107
- if (multi) {
108
- const shutdownAll = async (signal) => {
109
- console.log(`[cc-channel-octo] Received ${signal}, shutting down ${stacks.length} bots...`);
110
- await Promise.allSettled(stacks.map((s) => s.shutdown()));
111
- process.exit(0);
96
+ // #157: watch config.json and reconcile the running set on change. loadDesired
97
+ // re-reads + re-validates inside the watcher; an invalid/half-written config
98
+ // keeps the current bots (see config-watcher). The directory is watched (not
99
+ // the file) so an atomic temp+rename swap doesn't drop the subscription.
100
+ const watcher = watchConfig({
101
+ configPath: configPathForWatch(),
102
+ manager,
103
+ loadDesired: () => resolveBotConfigs(loadConfig()).map((c) => c.botId).filter((id) => !!id),
104
+ log: (m) => console.log(`[cc-channel-octo] ${m}`),
105
+ });
106
+ // Single process-wide shutdown: stop the watcher, drain every live bot, exit.
107
+ // keepalive holds the event loop even when zero bots are running (idle state
108
+ // is now a steady runtime state, not just a boot branch).
109
+ await new Promise((resolve) => {
110
+ const keepalive = setInterval(() => { }, 60_000); // ref'd → keeps loop alive while idle
111
+ const bye = async (signal) => {
112
+ console.log(`[cc-channel-octo] Received ${signal}, shutting down ${manager.size()} bot(s)...`);
113
+ clearInterval(keepalive);
114
+ watcher.close();
115
+ await manager.shutdownAll();
116
+ resolve();
112
117
  };
113
- process.once('SIGINT', () => void shutdownAll('SIGINT'));
114
- process.once('SIGTERM', () => void shutdownAll('SIGTERM'));
115
- }
116
- console.log('[cc-channel-octo] Ready — listening for messages');
118
+ process.once('SIGINT', () => void bye('SIGINT'));
119
+ process.once('SIGTERM', () => void bye('SIGTERM'));
120
+ });
117
121
  }
118
122
  /**
119
123
  * Start one bot's full pipeline. `ownSignals` is true for the single-bot case
@@ -136,131 +140,167 @@ async function startBot(config, multi) {
136
140
  }, CWD_CLEANUP_INTERVAL_MS);
137
141
  cwdCleanupTimer.unref();
138
142
  // --- Database (per-bot dataDir → no cross-bot history) ---
143
+ // createAdapter / new SessionStore are created INSIDE the try below, so a
144
+ // SQLite open failure (inaccessible dataDir, locked db, …) is caught and the
145
+ // cwd-cleanup timer is released — otherwise a skipped bot would leak the
146
+ // interval for the surviving gateway's lifetime.
139
147
  const dbPath = join(config.dataDir, 'cc-octo.db');
140
- const adapter = createAdapter(dbPath);
141
- const store = new SessionStore(adapter);
142
- store.init();
143
- const cleaned = store.cleanExpired();
144
- if (cleaned > 0) {
145
- console.log(`[cc-channel-octo] ${label}Cleaned ${cleaned} expired session(s)`);
146
- }
147
- // --- Auto-memory base (create eagerly so a deleted/unmounted memory volume
148
- // fails loudly at boot instead of silently disabling recall at message time). ---
149
- const memoryBase = config.memoryBase ?? join(config.dataDir, 'memory');
150
- mkdirSync(memoryBase, { recursive: true });
151
- // --- Group context ---
152
- const groupContext = new GroupContext(adapter, config.context.maxContextChars);
153
- groupContext.loadAllFromDb();
154
- // --- #115: cron (opt-in). Store is shared by the per-turn cron tool (writes)
155
- // and the scheduler (reads + fires). Scheduler is armed after the handler is
156
- // installed (see below), stopped in shutdown. ---
148
+ let storeForCleanup;
149
+ // #115: cron handles (hoisted so the failure-cleanup catch below can stop the
150
+ // scheduler). Store is shared by the per-turn cron tool (writes) and the
151
+ // scheduler (reads + fires); armed after the handler is installed, stopped in
152
+ // shutdown.
157
153
  let cronStore;
158
154
  let cronScheduler;
159
- if (config.sdk.cron && config.botId) {
160
- cronStore = new CronStore(join(config.baseDir, config.botId, 'cron.json'));
161
- }
162
- // --- Stream relay ---
163
- const streamRelay = new StreamRelay();
164
- // --- Gateway. In multi-bot mode main() owns shutdown signals, so the gateway
165
- // must NOT register its own (N gateways racing process.exit). ---
166
- const gateway = new OctoGateway(config, { handleSignals: !multi });
167
- // Phase 1: register over REST (gets botId) — does NOT open the socket yet, so
168
- // no message can arrive before the handler below is installed.
169
- await gateway.register();
170
- console.log(`[cc-channel-octo] ${label}Bot registered: id=${gateway.botId}`);
171
- // #115: cron creation/deletion is owner-gated on gateway.ownerUid. If the
172
- // registration didn't return an owner_uid, the gate can never pass and the
173
- // cron tool is silently unusable — warn loudly so the operator isn't left
174
- // wondering why every cron_create is rejected.
175
- if (config.sdk.cron && !gateway.ownerUid) {
176
- console.warn(`[cc-channel-octo] ${label}sdk.cron is enabled but the bot has no owner_uid ` +
177
- `(registration returned none) — cron_create/delete will be rejected for everyone. ` +
178
- `The cron tool is effectively disabled until the bot has an owner.`);
179
- }
180
- // #86: prefetch the media CDN host (best-effort). Octo serves media from a
181
- // separate CDN than apiUrl; without this, inbound image URLs on the CDN host
182
- // are rejected by buildMediaUrl and the agent can't see them. The STS
183
- // upload-credentials response carries cdnBaseUrl; we only need its host. A
184
- // failure leaves mediaCdnHost undefined (same-host-only media), never fatal.
155
+ // Set right after gateway construction; releaseLock is nonce-guarded so it is
156
+ // a no-op until register() actually acquires the lock, and the catch can call
157
+ // it to release that lock if a later step throws before return.
158
+ let releaseGatewayLock;
159
+ // Multi-bot mode no longer exits the process when one bot fails to start, so
160
+ // a failed startBot() must release the durable resources it already acquired
161
+ // (the cwd-cleanup timer, the sqlite handle, and once register() acquired
162
+ // it — the per-bot gateway lock) instead of leaking them for the lifetime of
163
+ // the surviving bots.
185
164
  try {
186
- const creds = await getUploadCredentials({
187
- apiUrl: config.apiUrl,
188
- botToken: config.botToken,
189
- // The credentials endpoint validates the filename's type; use an image
190
- // name so the probe isn't rejected (file_type_unsupported). We only read
191
- // cdnBaseUrl from the response — nothing is uploaded.
192
- filename: 'probe.png',
193
- });
194
- if (creds.cdnBaseUrl) {
195
- config.mediaCdnHost = new URL(creds.cdnBaseUrl).host;
196
- console.log(`[cc-channel-octo] ${label}Media CDN host: ${config.mediaCdnHost}`);
165
+ const adapter = createAdapter(dbPath);
166
+ const store = new SessionStore(adapter);
167
+ storeForCleanup = store;
168
+ store.init();
169
+ const cleaned = store.cleanExpired();
170
+ if (cleaned > 0) {
171
+ console.log(`[cc-channel-octo] ${label}Cleaned ${cleaned} expired session(s)`);
172
+ }
173
+ // --- Auto-memory base (create eagerly so a deleted/unmounted memory volume
174
+ // fails loudly at boot instead of silently disabling recall at message time). ---
175
+ const memoryBase = config.memoryBase ?? join(config.dataDir, 'memory');
176
+ mkdirSync(memoryBase, { recursive: true });
177
+ // --- Group context ---
178
+ const groupContext = new GroupContext(adapter, config.context.maxContextChars);
179
+ groupContext.loadAllFromDb();
180
+ // --- #115: cron (opt-in). ---
181
+ if (config.sdk.cron && config.botId) {
182
+ cronStore = new CronStore(join(config.baseDir, config.botId, 'cron.json'));
183
+ }
184
+ // --- Stream relay ---
185
+ const streamRelay = new StreamRelay();
186
+ // --- Gateway. In multi-bot mode main() owns shutdown signals, so the gateway
187
+ // must NOT register its own (N gateways racing process.exit). ---
188
+ const gateway = new OctoGateway(config, { handleSignals: !multi });
189
+ releaseGatewayLock = () => gateway.releaseLock();
190
+ // Phase 1: register over REST (gets botId) — does NOT open the socket yet, so
191
+ // no message can arrive before the handler below is installed.
192
+ await gateway.register();
193
+ console.log(`[cc-channel-octo] ${label}Bot registered: id=${gateway.botId}`);
194
+ // #115: cron creation/deletion is owner-gated on gateway.ownerUid. If the
195
+ // registration didn't return an owner_uid, the gate can never pass and the
196
+ // cron tool is silently unusable — warn loudly so the operator isn't left
197
+ // wondering why every cron_create is rejected.
198
+ if (config.sdk.cron && !gateway.ownerUid) {
199
+ console.warn(`[cc-channel-octo] ${label}sdk.cron is enabled but the bot has no owner_uid ` +
200
+ `(registration returned none) — cron_create/delete will be rejected for everyone. ` +
201
+ `The cron tool is effectively disabled until the bot has an owner.`);
202
+ }
203
+ // #86: prefetch the media CDN host (best-effort). Octo serves media from a
204
+ // separate CDN than apiUrl; without this, inbound image URLs on the CDN host
205
+ // are rejected by buildMediaUrl and the agent can't see them. The STS
206
+ // upload-credentials response carries cdnBaseUrl; we only need its host. A
207
+ // failure leaves mediaCdnHost undefined (same-host-only media), never fatal.
208
+ try {
209
+ const creds = await getUploadCredentials({
210
+ apiUrl: config.apiUrl,
211
+ botToken: config.botToken,
212
+ // The credentials endpoint validates the filename's type; use an image
213
+ // name so the probe isn't rejected (file_type_unsupported). We only read
214
+ // cdnBaseUrl from the response — nothing is uploaded.
215
+ filename: 'probe.png',
216
+ });
217
+ if (creds.cdnBaseUrl) {
218
+ config.mediaCdnHost = new URL(creds.cdnBaseUrl).host;
219
+ console.log(`[cc-channel-octo] ${label}Media CDN host: ${config.mediaCdnHost}`);
220
+ }
221
+ }
222
+ catch (err) {
223
+ console.warn(`[cc-channel-octo] ${label}Could not prefetch media CDN host (inbound media limited to apiUrl host): ${err instanceof Error ? err.message : String(err)}`);
224
+ }
225
+ // --- Session router ---
226
+ const router = new SessionRouter(config, gateway.botId, gateway.ownerUid);
227
+ // --- Active handler tracking (Q6: in-flight drain on shutdown) ---
228
+ const activeHandlers = new Set();
229
+ // Install the message handler NOW (before the socket opens). The socket is
230
+ // opened later via connect(), after main() has cross-registered sibling bot
231
+ // ids — so there is no window where a message is ACK'd and dropped, nor one
232
+ // where a sibling bot's message slips through unrecognized.
233
+ const onInbound = (msg) => {
234
+ if (gateway.draining)
235
+ return;
236
+ // Drop self-authored messages. OctoGateway.handleMessage() already filters
237
+ // these on the WS path; guard here too for safety (otherwise a bot's own
238
+ // group message could be cached into group context as un-processed chatter).
239
+ if (msg.from_uid === gateway.botId)
240
+ return;
241
+ const p = handleMessage(msg, config, store, router, groupContext, streamRelay, gateway.botId, cronStore)
242
+ .catch((err) => {
243
+ console.error(`[cc-channel-octo] ${label}Unhandled message handler error:`, err instanceof Error ? err.message : err);
244
+ })
245
+ .finally(() => {
246
+ activeHandlers.delete(p);
247
+ });
248
+ activeHandlers.add(p);
249
+ };
250
+ gateway.setMessageHandler(onInbound);
251
+ // #115: arm the cron scheduler now that onInbound exists. Fired tasks go
252
+ // through the exact same pipeline as real inbound messages. The fire callback
253
+ // returns a tracked promise that REJECTS on handler error (distinct from
254
+ // onInbound, which swallows) so the scheduler can attribute a delivery failure
255
+ // to the specific task. Still tracked in activeHandlers for shutdown drain.
256
+ if (cronStore) {
257
+ cronScheduler = new CronScheduler({
258
+ cronStore,
259
+ onFire: (msg) => {
260
+ if (gateway.draining)
261
+ return Promise.resolve();
262
+ const p = handleMessage(msg, config, store, router, groupContext, streamRelay, gateway.botId, cronStore)
263
+ .finally(() => { activeHandlers.delete(p); });
264
+ activeHandlers.add(p);
265
+ return p;
266
+ },
267
+ label,
268
+ });
269
+ cronScheduler.start();
197
270
  }
271
+ // Phase 2 (called by main() after cross-registration): open the WebSocket.
272
+ // Async + awaited so a connection failure fails startup instead of leaving
273
+ // the process "ready" with no inbound endpoint.
274
+ const connect = async () => {
275
+ gateway.connect();
276
+ console.log(`[cc-channel-octo] ${label}Bot connected: id=${gateway.botId}`);
277
+ };
278
+ const shutdown = async () => {
279
+ clearInterval(cwdCleanupTimer);
280
+ cronScheduler?.stop();
281
+ await gateway.stop(activeHandlers);
282
+ store.close();
283
+ };
284
+ // Single-bot: the gateway's own SIGINT/SIGTERM handler invokes this.
285
+ gateway.setShutdownCallback(shutdown);
286
+ return { robotUid: gateway.botId, router, connect, shutdown };
198
287
  }
199
288
  catch (err) {
200
- console.warn(`[cc-channel-octo] ${label}Could not prefetch media CDN host (inbound media limited to apiUrl host): ${err instanceof Error ? err.message : String(err)}`);
201
- }
202
- // --- Session router ---
203
- const router = new SessionRouter(config, gateway.botId, gateway.ownerUid);
204
- // --- Active handler tracking (Q6: in-flight drain on shutdown) ---
205
- const activeHandlers = new Set();
206
- // Install the message handler NOW (before the socket opens). The socket is
207
- // opened later via connect(), after main() has cross-registered sibling bot
208
- // ids — so there is no window where a message is ACK'd and dropped, nor one
209
- // where a sibling bot's message slips through unrecognized.
210
- const onInbound = (msg) => {
211
- if (gateway.draining)
212
- return;
213
- // Drop self-authored messages. OctoGateway.handleMessage() already filters
214
- // these on the WS path; guard here too for safety (otherwise a bot's own
215
- // group message could be cached into group context as un-processed chatter).
216
- if (msg.from_uid === gateway.botId)
217
- return;
218
- const p = handleMessage(msg, config, store, router, groupContext, streamRelay, gateway.botId, cronStore)
219
- .catch((err) => {
220
- console.error(`[cc-channel-octo] ${label}Unhandled message handler error:`, err instanceof Error ? err.message : err);
221
- })
222
- .finally(() => {
223
- activeHandlers.delete(p);
224
- });
225
- activeHandlers.add(p);
226
- };
227
- gateway.setMessageHandler(onInbound);
228
- // #115: arm the cron scheduler now that onInbound exists. Fired tasks go
229
- // through the exact same pipeline as real inbound messages. The fire callback
230
- // returns a tracked promise that REJECTS on handler error (distinct from
231
- // onInbound, which swallows) so the scheduler can attribute a delivery failure
232
- // to the specific task. Still tracked in activeHandlers for shutdown drain.
233
- if (cronStore) {
234
- cronScheduler = new CronScheduler({
235
- cronStore,
236
- onFire: (msg) => {
237
- if (gateway.draining)
238
- return Promise.resolve();
239
- const p = handleMessage(msg, config, store, router, groupContext, streamRelay, gateway.botId, cronStore)
240
- .finally(() => { activeHandlers.delete(p); });
241
- activeHandlers.add(p);
242
- return p;
243
- },
244
- label,
245
- });
246
- cronScheduler.start();
247
- }
248
- // Phase 2 (called by main() after cross-registration): open the WebSocket.
249
- // Async + awaited so a connection failure fails startup instead of leaving
250
- // the process "ready" with no inbound endpoint.
251
- const connect = async () => {
252
- gateway.connect();
253
- console.log(`[cc-channel-octo] ${label}Bot connected: id=${gateway.botId}`);
254
- };
255
- const shutdown = async () => {
289
+ // Release the durable resources acquired above so a failed bot doesn't leak
290
+ // them in multi-bot mode (the surviving bots keep the process alive).
256
291
  clearInterval(cwdCleanupTimer);
257
292
  cronScheduler?.stop();
258
- await gateway.stop(activeHandlers);
259
- store.close();
260
- };
261
- // Single-bot: the gateway's own SIGINT/SIGTERM handler invokes this.
262
- gateway.setShutdownCallback(shutdown);
263
- return { botId: gateway.botId, router, connect, shutdown };
293
+ // register() releases its own lock when IT fails; this covers the window
294
+ // where register() succeeded (lock held) but a later step threw.
295
+ releaseGatewayLock?.();
296
+ try {
297
+ storeForCleanup?.close();
298
+ }
299
+ catch {
300
+ /* best effort — store may not have opened */
301
+ }
302
+ throw err;
303
+ }
264
304
  }
265
305
  /**
266
306
  * Process a single inbound message through the full pipeline: route → context →
@@ -705,7 +745,17 @@ export async function handleMessage(msg, config, store, router, groupContext, st
705
745
  }
706
746
  }
707
747
  // --- Stream output to Octo ---
708
- await streamRelay.deliver(channelId, channelType, teeChunks(), config.apiUrl, config.botToken, config.maxResponseChars);
748
+ // A8 (#143): in groups, resolve v1 @name against the member list and
749
+ // validate v2 @[uid:name] uids against membership — a hallucinated uid not
750
+ // in the group is downgraded to plain text (no bogus @ notify). The member
751
+ // list is kept authoritative by refreshMembers (prunes departed members),
752
+ // best-effort fresh (1h refresh throttle). DMs have no member list and no
753
+ // @ semantics, so both args stay undefined (skip).
754
+ const outboundNameToUid = isGroup ? groupContext.getNameToUidMap(channelId) : undefined;
755
+ const isValidMentionUid = isGroup
756
+ ? (uid) => groupContext.isMember(channelId, uid)
757
+ : undefined;
758
+ await streamRelay.deliver(channelId, channelType, teeChunks(), config.apiUrl, config.botToken, config.maxResponseChars, outboundNameToUid, isValidMentionUid);
709
759
  // G8: Send read receipt after processing (fire-and-forget)
710
760
  if (msg.message_id && msg.channel_id && msg.channel_type !== undefined) {
711
761
  sendReadReceipt({
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}