Merge feature/split-signal-improvements into combined branch

Combines Signal split/merge improvements with keycloak auth,
baileys-7 updates, and signal notifications support.

Resolved conflicts:
- Kept LID user ID support in bridge-whatsapp
- Kept bridge-dev.yml docker compose addition
- Used 3.5.0-beta.1 version from split-signal-improvements
This commit is contained in:
Darren Clarke 2026-01-28 09:01:51 +01:00
commit 38efae02d4
26 changed files with 1604 additions and 24 deletions

View file

@ -1,6 +1,6 @@
{
"name": "@link-stack/bridge-frontend",
"version": "3.4.0-beta.7",
"version": "3.5.0-beta.1",
"type": "module",
"scripts": {
"dev": "next dev",

View file

@ -1,6 +1,6 @@
{
"name": "@link-stack/bridge-migrations",
"version": "3.4.0-beta.7",
"version": "3.5.0-beta.1",
"type": "module",
"scripts": {
"migrate:up:all": "tsx migrate.ts up:all",

View file

@ -1,17 +1,17 @@
{
"name": "@link-stack/bridge-whatsapp",
"version": "3.4.0-beta.7",
"type": "module",
"version": "3.5.0-beta.1",
"main": "build/main/index.js",
"author": "Darren Clarke <darren@redaranj.com>",
"license": "AGPL-3.0-or-later",
"dependencies": {
"@adiwajshing/keyed-db": "0.2.4",
"@hapi/hapi": "^21.4.3",
"@hapipal/schmervice": "^3.0.0",
"@hapipal/toys": "^4.0.0",
"@link-stack/bridge-common": "workspace:*",
"@link-stack/logger": "workspace:*",
"@whiskeysockets/baileys": "7.0.0-rc.9",
"@whiskeysockets/baileys": "6.7.21",
"hapi-pino": "^13.0.0",
"link-preview-js": "^3.1.0"
},
@ -19,12 +19,15 @@
"@link-stack/eslint-config": "workspace:*",
"@link-stack/jest-config": "workspace:*",
"@link-stack/typescript-config": "workspace:*",
"@types/long": "^5",
"@types/node": "*",
"dotenv-cli": "^10.0.0",
"tsx": "^4.20.6",
"typescript": "^5.9.3"
},
"scripts": {
"build": "tsc -p tsconfig.json",
"dev": "node --env-file=.env --experimental-transform-types src/index.ts",
"dev": "dotenv -- tsx src/index.ts",
"start": "node build/main/index.js"
}
}

View file

@ -1,6 +1,6 @@
{
"name": "@link-stack/bridge-worker",
"version": "3.4.0-beta.7",
"version": "3.5.0-beta.1",
"type": "module",
"main": "build/main/index.js",
"author": "Darren Clarke <darren@redaranj.com>",

View file

@ -283,6 +283,35 @@ const sendSignalMessageTask = async ({
},
"Message sent successfully",
);
// Update group name to use consistent template with ticket number
// This ensures groups created by receive-signal-message get renamed
// to match the template (e.g., "Support Request: 94085")
if (finalTo.startsWith("group.") && conversationId) {
try {
const expectedGroupName = buildSignalGroupName(conversationId);
await groupsClient.v1GroupsNumberGroupidPut({
number: bot.phoneNumber,
groupid: finalTo,
data: {
name: expectedGroupName,
},
});
logger.debug(
{ groupId: finalTo, newName: expectedGroupName },
"Updated group name",
);
} catch (renameError) {
// Non-fatal - group name update is best-effort
logger.warn(
{
error: renameError instanceof Error ? renameError.message : renameError,
groupId: finalTo,
},
"Could not update group name",
);
}
}
} catch (error: any) {
// Try to get the actual error message from the response
if (error.response) {

View file

@ -1,6 +1,6 @@
{
"name": "@link-stack/link",
"version": "3.4.0-beta.7",
"version": "3.5.0-beta.1",
"type": "module",
"scripts": {
"dev": "next dev -H 0.0.0.0",