From fb798a8f293bfe99fa21e24291f6cf00c3d0393a Mon Sep 17 00:00:00 2001 From: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com> Date: Wed, 10 Jun 2026 18:49:33 +0200 Subject: [PATCH] chore: remove person workflow elements (#28974) --- .../openapi/lib/model/workflow_trigger.dart | 3 -- mobile/openapi/lib/model/workflow_type.dart | 3 -- open-api/immich-openapi-specs.json | 6 +-- packages/plugin-core/manifest.json | 25 ------------ packages/plugin-sdk/src/types.ts | 16 ++++---- packages/sdk/src/fetch-client.ts | 6 +-- server/src/enum.ts | 2 +- server/src/utils/workflow.spec.ts | 40 +++++++++---------- server/src/utils/workflow.ts | 4 +- web/src/lib/utils/workflow.ts | 12 +++--- 10 files changed, 41 insertions(+), 76 deletions(-) diff --git a/mobile/openapi/lib/model/workflow_trigger.dart b/mobile/openapi/lib/model/workflow_trigger.dart index b56d1b0dba..b9c0597b28 100644 --- a/mobile/openapi/lib/model/workflow_trigger.dart +++ b/mobile/openapi/lib/model/workflow_trigger.dart @@ -25,13 +25,11 @@ class WorkflowTrigger { static const assetCreate = WorkflowTrigger._(r'AssetCreate'); static const assetMetadataExtraction = WorkflowTrigger._(r'AssetMetadataExtraction'); - static const personRecognized = WorkflowTrigger._(r'PersonRecognized'); /// List of all possible values in this [enum][WorkflowTrigger]. static const values = [ assetCreate, assetMetadataExtraction, - personRecognized, ]; static WorkflowTrigger? fromJson(dynamic value) => WorkflowTriggerTypeTransformer().decode(value); @@ -72,7 +70,6 @@ class WorkflowTriggerTypeTransformer { switch (data) { case r'AssetCreate': return WorkflowTrigger.assetCreate; case r'AssetMetadataExtraction': return WorkflowTrigger.assetMetadataExtraction; - case r'PersonRecognized': return WorkflowTrigger.personRecognized; default: if (!allowNull) { throw ArgumentError('Unknown enum value to decode: $data'); diff --git a/mobile/openapi/lib/model/workflow_type.dart b/mobile/openapi/lib/model/workflow_type.dart index c18b07e9fb..0c87824bb1 100644 --- a/mobile/openapi/lib/model/workflow_type.dart +++ b/mobile/openapi/lib/model/workflow_type.dart @@ -24,12 +24,10 @@ class WorkflowType { String toJson() => value; static const assetV1 = WorkflowType._(r'AssetV1'); - static const assetPersonV1 = WorkflowType._(r'AssetPersonV1'); /// List of all possible values in this [enum][WorkflowType]. static const values = [ assetV1, - assetPersonV1, ]; static WorkflowType? fromJson(dynamic value) => WorkflowTypeTypeTransformer().decode(value); @@ -69,7 +67,6 @@ class WorkflowTypeTypeTransformer { if (data != null) { switch (data) { case r'AssetV1': return WorkflowType.assetV1; - case r'AssetPersonV1': return WorkflowType.assetPersonV1; default: if (!allowNull) { throw ArgumentError('Unknown enum value to decode: $data'); diff --git a/open-api/immich-openapi-specs.json b/open-api/immich-openapi-specs.json index e51914d5b4..851c195c1d 100644 --- a/open-api/immich-openapi-specs.json +++ b/open-api/immich-openapi-specs.json @@ -27273,8 +27273,7 @@ "description": "Plugin trigger type", "enum": [ "AssetCreate", - "AssetMetadataExtraction", - "PersonRecognized" + "AssetMetadataExtraction" ], "type": "string" }, @@ -27301,8 +27300,7 @@ "WorkflowType": { "description": "Workflow type", "enum": [ - "AssetV1", - "AssetPersonV1" + "AssetV1" ], "type": "string" }, diff --git a/packages/plugin-core/manifest.json b/packages/plugin-core/manifest.json index f8093496a8..db6ab203bf 100644 --- a/packages/plugin-core/manifest.json +++ b/packages/plugin-core/manifest.json @@ -203,31 +203,6 @@ }, "uiHints": ["Filter"] }, - { - "name": "filterPerson", - "title": "Filter by person", - "description": "Filter by detected person", - "types": ["AssetV1"], - "schema": { - "properties": { - "personIds": { - "type": "string", - "array": true, - "title": "Person IDs", - "description": "List of person to match", - "uiHint": "personId" - }, - "matchAny": { - "type": "boolean", - "title": "Match any", - "default": true, - "description": "Match any name (true) or require all names (false)" - } - }, - "required": ["personIds"] - }, - "uiHints": ["Filter"] - }, { "name": "assetArchive", "title": "Archive asset", diff --git a/packages/plugin-sdk/src/types.ts b/packages/plugin-sdk/src/types.ts index 67c179f4a6..0d406ce119 100644 --- a/packages/plugin-sdk/src/types.ts +++ b/packages/plugin-sdk/src/types.ts @@ -10,7 +10,7 @@ type DeepPartial = T extends Date export type WorkflowEventMap = { [WorkflowType.AssetV1]: AssetV1; - [WorkflowType.AssetPersonV1]: AssetPersonV1; + // [WorkflowType.AssetPersonV1]: AssetPersonV1; }; export type WorkflowEventData = WorkflowEventMap[T]; @@ -18,7 +18,7 @@ export type WorkflowEventData = WorkflowEventMap[T]; export enum WorkflowTrigger { AssetCreate = 'AssetCreate', AssetMetadataExtraction = 'AssetMetadataExtraction', - PersonRecognized = 'PersonRecognized', + // PersonRecognized = 'PersonRecognized', } export type WorkflowEventPayload< @@ -122,9 +122,9 @@ export type AssetV1 = { }; }; -export type AssetPersonV1 = AssetV1 & { - person: { - id: string; - name: string; - }; -}; +// export type AssetPersonV1 = AssetV1 & { +// person: { +// id: string; +// name: string; +// }; +// }; diff --git a/packages/sdk/src/fetch-client.ts b/packages/sdk/src/fetch-client.ts index 720d741ebd..c982eca2c1 100644 --- a/packages/sdk/src/fetch-client.ts +++ b/packages/sdk/src/fetch-client.ts @@ -7271,13 +7271,11 @@ export enum PartnerDirection { SharedWith = "shared-with" } export enum WorkflowType { - AssetV1 = "AssetV1", - AssetPersonV1 = "AssetPersonV1" + AssetV1 = "AssetV1" } export enum WorkflowTrigger { AssetCreate = "AssetCreate", - AssetMetadataExtraction = "AssetMetadataExtraction", - PersonRecognized = "PersonRecognized" + AssetMetadataExtraction = "AssetMetadataExtraction" } export enum QueueJobStatus { Active = "active", diff --git a/server/src/enum.ts b/server/src/enum.ts index 39238a5759..c3f56b6850 100644 --- a/server/src/enum.ts +++ b/server/src/enum.ts @@ -1174,7 +1174,7 @@ export const WorkflowTriggerSchema = z export enum WorkflowType { AssetV1 = 'AssetV1', - AssetPersonV1 = 'AssetPersonV1', + // AssetPersonV1 = 'AssetPersonV1', } export const WorkflowTypeSchema = z.enum(WorkflowType).describe('Workflow type').meta({ id: 'WorkflowType' }); diff --git a/server/src/utils/workflow.spec.ts b/server/src/utils/workflow.spec.ts index 5defe92d90..544b97f4b9 100644 --- a/server/src/utils/workflow.spec.ts +++ b/server/src/utils/workflow.spec.ts @@ -8,26 +8,26 @@ const tests: Array<{ trigger: WorkflowTrigger; types: WorkflowType[]; expected: types: [WorkflowType.AssetV1], expected: true, }, - { - trigger: WorkflowTrigger.AssetCreate, - types: [WorkflowType.AssetPersonV1], - expected: true, - }, - { - trigger: WorkflowTrigger.PersonRecognized, - types: [WorkflowType.AssetPersonV1], - expected: true, - }, - { - trigger: WorkflowTrigger.PersonRecognized, - types: [WorkflowType.AssetV1], - expected: false, - }, - { - trigger: WorkflowTrigger.PersonRecognized, - types: [WorkflowType.AssetV1, WorkflowType.AssetPersonV1], - expected: true, - }, + // { + // trigger: WorkflowTrigger.AssetCreate, + // types: [WorkflowType.AssetPersonV1], + // expected: true, + // }, + // { + // trigger: WorkflowTrigger.PersonRecognized, + // types: [WorkflowType.AssetPersonV1], + // expected: true, + // }, + // { + // trigger: WorkflowTrigger.PersonRecognized, + // types: [WorkflowType.AssetV1], + // expected: false, + // }, + // { + // trigger: WorkflowTrigger.PersonRecognized, + // types: [WorkflowType.AssetV1, WorkflowType.AssetPersonV1], + // expected: true, + // }, ]; describe(isMethodCompatible.name, () => { diff --git a/server/src/utils/workflow.ts b/server/src/utils/workflow.ts index 5383db818e..c892239c80 100644 --- a/server/src/utils/workflow.ts +++ b/server/src/utils/workflow.ts @@ -4,7 +4,7 @@ import { PluginMethodSearchResponse } from 'src/repositories/plugin.repository'; export const triggerMap: Record = { [WorkflowTrigger.AssetCreate]: [WorkflowType.AssetV1], - [WorkflowTrigger.PersonRecognized]: [WorkflowType.AssetPersonV1], + // [WorkflowTrigger.PersonRecognized]: [WorkflowType.AssetPersonV1], [WorkflowTrigger.AssetMetadataExtraction]: [WorkflowType.AssetV1], }; @@ -14,7 +14,7 @@ export const getWorkflowTriggers = () => /** some types extend other types and have implied compatibility */ const inferredMap: Record = { [WorkflowType.AssetV1]: [], - [WorkflowType.AssetPersonV1]: [WorkflowType.AssetV1], + // [WorkflowType.AssetPersonV1]: [WorkflowType.AssetV1], }; const withImpliedItems = (type: WorkflowType): WorkflowType[] => { diff --git a/web/src/lib/utils/workflow.ts b/web/src/lib/utils/workflow.ts index 85127a01c0..3fde9ce0db 100644 --- a/web/src/lib/utils/workflow.ts +++ b/web/src/lib/utils/workflow.ts @@ -6,9 +6,9 @@ export const getTriggerName = ($t: MessageFormatter, type: WorkflowTrigger) => { case WorkflowTrigger.AssetCreate: { return $t('trigger_asset_uploaded'); } - case WorkflowTrigger.PersonRecognized: { - return $t('trigger_person_recognized'); - } + // case WorkflowTrigger.PersonRecognized: { + // return $t('trigger_person_recognized'); + // } default: { return type; } @@ -20,9 +20,9 @@ export const getTriggerDescription = ($t: MessageFormatter, type: WorkflowTrigge case WorkflowTrigger.AssetCreate: { return $t('trigger_asset_uploaded_description'); } - case WorkflowTrigger.PersonRecognized: { - return $t('trigger_person_recognized_description'); - } + // case WorkflowTrigger.PersonRecognized: { + // return $t('trigger_person_recognized_description'); + // } default: { return type; }