@lightupai/polaris 0.0.73 → 0.0.74
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/package.json +1 -1
- package/src/service/server.ts +18 -11
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lightupai/polaris",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.74",
|
|
4
4
|
"description": "Record and stream Claude Code sessions to Slack. Like Gong for AI coding — capture every prompt, response, and tool call. Multiplayer collaboration across AI coding agents.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude-code",
|
package/src/service/server.ts
CHANGED
|
@@ -450,25 +450,32 @@ export async function startServer(opts: {
|
|
|
450
450
|
const users = await listUsers(sql, orgId);
|
|
451
451
|
const org = await getOrgFn(sql, orgId);
|
|
452
452
|
|
|
453
|
-
// Resolve Slack user info if bot token available
|
|
453
|
+
// Resolve Slack user info if bot token available (paginate through all members)
|
|
454
454
|
let slackMembers: Array<{ id: string; name: string; display_name: string; email: string; username: string }> = [];
|
|
455
455
|
if (org?.slack_bot_token) {
|
|
456
456
|
try {
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
const
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
457
|
+
type SlackMember = { id: string; name: string; real_name?: string; profile?: { display_name?: string; email?: string }; deleted?: boolean; is_bot?: boolean };
|
|
458
|
+
type SlackResponse = { ok?: boolean; members?: SlackMember[]; response_metadata?: { next_cursor?: string } };
|
|
459
|
+
let cursor = "";
|
|
460
|
+
do {
|
|
461
|
+
const url = `https://slack.com/api/users.list?limit=200${cursor ? `&cursor=${cursor}` : ""}`;
|
|
462
|
+
const slackRes = await fetch(url, {
|
|
463
|
+
headers: { Authorization: `Bearer ${org.slack_bot_token}` },
|
|
464
|
+
});
|
|
465
|
+
if (!slackRes.ok) break;
|
|
466
|
+
const slackData = (await slackRes.json()) as SlackResponse;
|
|
467
|
+
for (const m of slackData.members ?? []) {
|
|
468
|
+
if (m.deleted || m.is_bot) continue;
|
|
469
|
+
slackMembers.push({
|
|
465
470
|
id: m.id,
|
|
466
471
|
name: m.real_name ?? "",
|
|
467
472
|
display_name: m.profile?.display_name ?? "",
|
|
468
473
|
email: m.profile?.email ?? "",
|
|
469
474
|
username: m.name ?? "",
|
|
470
|
-
})
|
|
471
|
-
|
|
475
|
+
});
|
|
476
|
+
}
|
|
477
|
+
cursor = slackData.response_metadata?.next_cursor ?? "";
|
|
478
|
+
} while (cursor);
|
|
472
479
|
} catch { /* Slack API unavailable */ }
|
|
473
480
|
}
|
|
474
481
|
|