···183183 const dids = users.map((u) => u.did);
184184185185 // Register each user individually to handle partial failures
186186- let successCount = 0;
187186 for (const did of dids) {
188187 try {
189188 await this.addRepo(did);
190190- successCount++;
191189 } catch (err) {
192190 this.logger.error(`Failed to register repo ${did} with TAP`, err);
193191 // Continue with next user even if one fails
+8-2
backend/src/users/dto/import-history.dto.ts
···9494 "duplicate_in_request",
9595 ],
9696 })
9797- code: "invalid_item" | "already_exists" | "write_failed" | "duplicate_in_request";
9797+ code:
9898+ | "invalid_item"
9999+ | "already_exists"
100100+ | "write_failed"
101101+ | "duplicate_in_request";
9810299103 @ApiProperty()
100104 message: string;
···124128 @ApiProperty({ type: [ImportSkipDto] })
125129 skipped: ImportSkipDto[];
126130127127- @ApiProperty({ description: "Count of rows returned by Trakt before filtering" })
131131+ @ApiProperty({
132132+ description: "Count of rows returned by Trakt before filtering",
133133+ })
128134 sourceCount: number;
129135}
130136
+4-1
backend/src/users/dto/user-settings.dto.ts
···5656}
57575858export class UserProfileDto {
5959- @ApiProperty({ description: "Display name shown in OpnShelf", nullable: true })
5959+ @ApiProperty({
6060+ description: "Display name shown in OpnShelf",
6161+ nullable: true,
6262+ })
6063 displayName!: string | null;
61646265 @ApiProperty({