From bcb202ae6b257ba50aa000a1a1cf8a683b9bebf2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 10 Jun 2026 12:00:57 +0000 Subject: [PATCH 1/3] Initial plan From 5161c55720389d975595af5b60c1e7bd2cbddc25 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 10 Jun 2026 12:16:47 +0000 Subject: [PATCH 2/3] enhance(backend): include image dimensions in AP attachments --- CHANGELOG.md | 11 +++++++++ .../src/core/activitypub/ApRendererService.ts | 2 ++ packages/backend/src/core/activitypub/type.ts | 2 ++ packages/backend/test/unit/activitypub.ts | 23 +++++++++++++++++++ 4 files changed, 38 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b0577fe32b..10dbf22a1f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +## Unreleased + +### General +- + +### Client +- + +### Server +- Enhance: ActivityPub の画像添付に width/height を含めるように + ## 2026.6.0 ### General diff --git a/packages/backend/src/core/activitypub/ApRendererService.ts b/packages/backend/src/core/activitypub/ApRendererService.ts index 8c461b60315..45b6d0db830 100644 --- a/packages/backend/src/core/activitypub/ApRendererService.ts +++ b/packages/backend/src/core/activitypub/ApRendererService.ts @@ -172,6 +172,8 @@ export class ApRendererService { mediaType: file.webpublicType ?? file.type, url: this.driveFileEntityService.getPublicUrl(file), name: file.comment, + width: file.properties.width, + height: file.properties.height, sensitive: file.isSensitive, }; } diff --git a/packages/backend/src/core/activitypub/type.ts b/packages/backend/src/core/activitypub/type.ts index 72732b01dfe..fd76a3d9fa5 100644 --- a/packages/backend/src/core/activitypub/type.ts +++ b/packages/backend/src/core/activitypub/type.ts @@ -34,6 +34,8 @@ export interface IObject { href?: string; tag?: IObject | IObject[]; sensitive?: boolean; + width?: number; + height?: number; } /** diff --git a/packages/backend/test/unit/activitypub.ts b/packages/backend/test/unit/activitypub.ts index 1ad61001f05..ddfb374dbd4 100644 --- a/packages/backend/test/unit/activitypub.ts +++ b/packages/backend/test/unit/activitypub.ts @@ -15,6 +15,7 @@ import { Test } from '@nestjs/testing'; import { MockResolver } from '../misc/mock-resolver.js'; import type { IActor, IApDocument, ICollection, IObject, IPost } from '@/core/activitypub/type.js'; import type { MiRemoteUser } from '@/models/User.js'; +import type { MiDriveFile } from '@/models/DriveFile.js'; import { ApImageService } from '@/core/activitypub/models/ApImageService.js'; import { ApNoteService } from '@/core/activitypub/models/ApNoteService.js'; import { ApPersonService } from '@/core/activitypub/models/ApPersonService.js'; @@ -399,6 +400,28 @@ describe('ActivityPub', () => { }); describe('Images', () => { + test('Render image document with dimensions', () => { + const rendered = rendererService.renderDocument({ + id: genAidx(Date.now()), + type: 'image/png', + webpublicType: null, + url: 'https://example.test/files/image.png', + webpublicUrl: null, + comment: null, + isSensitive: false, + properties: { width: 3600, height: 1890 }, + uri: null, + userHost: null, + isLink: false, + webpublicAccessKey: null, + } as MiDriveFile); + + assert.strictEqual(rendered.type, 'Document'); + assert.strictEqual(rendered.mediaType, 'image/png'); + assert.strictEqual(rendered.width, 3600); + assert.strictEqual(rendered.height, 1890); + }); + test('Create images', async () => { const imageObject: IApDocument = { type: 'Document', From 4ec91b3725ec342c084b4f36be34dd08a8db203f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 10 Jun 2026 12:20:50 +0000 Subject: [PATCH 3/3] fix(backend): guard AP attachment dimension properties --- packages/backend/src/core/activitypub/ApRendererService.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/backend/src/core/activitypub/ApRendererService.ts b/packages/backend/src/core/activitypub/ApRendererService.ts index 45b6d0db830..601edcebe93 100644 --- a/packages/backend/src/core/activitypub/ApRendererService.ts +++ b/packages/backend/src/core/activitypub/ApRendererService.ts @@ -172,8 +172,8 @@ export class ApRendererService { mediaType: file.webpublicType ?? file.type, url: this.driveFileEntityService.getPublicUrl(file), name: file.comment, - width: file.properties.width, - height: file.properties.height, + width: file.properties?.width, + height: file.properties?.height, sensitive: file.isSensitive, }; }