diff --git a/packages/server/src/db/migrate.ts b/packages/server/src/db/migrate.ts index fb3b4593..1ef6b294 100644 --- a/packages/server/src/db/migrate.ts +++ b/packages/server/src/db/migrate.ts @@ -203,7 +203,7 @@ export function runMigrations(db: Database.Database): void { { name: 'instance_settings', columns: [ - { name: 'federation_relay_enabled', type: 'INTEGER NOT NULL DEFAULT 0' }, + { name: 'federation_relay_enabled', type: 'INTEGER NOT NULL DEFAULT 1' }, { name: 'federation_relay_ttl_days', type: 'INTEGER NOT NULL DEFAULT 30' }, ] }, @@ -483,6 +483,15 @@ export function runMigrations(db: Database.Database): void { db.exec(`CREATE INDEX IF NOT EXISTS idx_outbox_retry ON federation_outbox(next_retry_at)`); db.exec(`CREATE INDEX IF NOT EXISTS idx_mutation_log_time ON federation_mutation_log(mutated_at)`); + // ─── Ensure federation relay is enabled (fix: was incorrectly defaulting to 0) ─ + try { + const relayState = db.prepare('SELECT federation_relay_enabled FROM instance_settings WHERE id = 1').get() as { federation_relay_enabled: number } | undefined; + if (relayState && relayState.federation_relay_enabled === 0) { + db.prepare('UPDATE instance_settings SET federation_relay_enabled = 1 WHERE id = 1').run(); + console.log('Federation: Enabled relay (was incorrectly defaulting to disabled)'); + } + } catch { /* column may not exist yet on first run */ } + // ─── Backfill federation mutation log for existing DM messages (idempotent) ─ try { const mutationLogExists = (db.pragma('table_info(federation_mutation_log)') as { name: string }[]).length > 0; diff --git a/packages/server/src/db/schema.ts b/packages/server/src/db/schema.ts index fcfdef89..c7c13730 100644 --- a/packages/server/src/db/schema.ts +++ b/packages/server/src/db/schema.ts @@ -266,7 +266,7 @@ export const instanceSettings = sqliteTable('instance_settings', { bitrateMatrixOverrides: text('bitrate_matrix_overrides'), allowCustomBitrate: integer('allow_custom_bitrate').notNull().default(1), maxUploadSizeBytes: integer('max_upload_size_bytes'), - federationRelayEnabled: integer('federation_relay_enabled').notNull().default(0), + federationRelayEnabled: integer('federation_relay_enabled').notNull().default(1), federationRelayTtlDays: integer('federation_relay_ttl_days').notNull().default(30), updatedAt: integer('updated_at').notNull(), });