Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release: 4.12.0 #491

Merged
merged 364 commits into from
Oct 8, 2024
Merged

Release: 4.12.0 #491

merged 364 commits into from
Oct 8, 2024

Conversation

noridev
Copy link
Collaborator

@noridev noridev commented Aug 28, 2024

기반 Misskey 버전: 2024.9.0

NOTE

  • Enable condensed line의 기본값이 꺼짐으로 변경됨
    • 활성화하면 글자를 표시하기 위한 여유 공간이 좁을 때 디자인이 상대적으로 어색하게 보일 수 있으며, 실험실 기능이므로 이 기능이 변경하는 부분을 확실히 알고 있는 사용자만 활성화할 것을 권장합니다.
  • 비밀번호 해싱 알고리즘이 bcrypt에서 argon2로 변경됨
    • 이 변경으로 이후에 비밀번호를 변경하거나 신규로 가입한 사용자는 argon2를 사용하여 비밀번호 해시가 생성됩니다.
    • 이전에 가입한 사용자는 로그인 시 자동으로 bcypt에서 argon2로 해시가 변경됩니다.

General

Client

  • Enhance: CherryPick 업데이트 페이지를 제어판 목록에 추가함
  • Enhance: Webhook 추가 버튼을 헤더로 이동해 디자인 개선
  • Enhance: 노트 번역 영역에서도 이모지를 눌러 이모지 메뉴를 열 수 있음
  • Enhance: 노트 상세 페이지에서 InstanceTicker를 클릭해 리모트에서 노트를 볼 수 있음
  • Enhance: 리액션 수신 범위에 따라 리액션 버튼의 툴팁 내용이 변경됨
  • Enhance: 설정 페이지 개선
    • 일반 설정에 있던 설정 중 디자인과 관련된 설정을 모양으로 옮겼습니다.
  • Enhance: 외부 사이트로 이동할 때 경고 표시 (feat: 外部サイトへのリンクは移動の前に警告を表示するように misskey-dev/misskey#13557)
  • Enhance: 이미지의 확장자를 더욱 정확하게 표시함
    • APNG 형식의 이미지가 GIF로 표시되던 것을 APNG로 표시하도록 변경
  • Enhance: 이미지 뷰어가 파일 이름과 캡션을 동시에 표시하도록 변경
  • Enhance: 노트를 작성할 때 첨부한 파일에 캡션이 존재하는 경우 파일 목록에 아이콘을 표시함
  • Enhance: 미디어 숨기기 버튼의 디자인을 개선함
  • Enhance: 갤러리를 노트로 공유할 때 노트 내용에 줄바꿈을 적용함
  • Enhance: 노트 내용에 検索, 검색, search이 포함되면 의도하지 않게 검색 블록이 활성화되는 문제를 개선함
    • 이제 노트에서 검색 블록을 활성화하려면 [検索], [검색], [search]으로만 사용할 수 있습니다.
  • Enhance: 설정 페이지의 하단 여백 디자인을 조정함
  • Enhance: 노트 작성 시 본문 미리보기를 활성화한 경우, 본문에 내용이 있을 때만 표시되도록 변경함
  • Enhance: 노트 작성 폼의 일부 기능 버튼을 드롭 다운 메뉴로 이동함
  • Enhance: 노트나 프로필의 번역 버튼을 누르면 자동으로 내용을 펼침
  • Fix: 환경설정 백업 시 일부 설정이 누락되어 백업될 수 있음
  • Fix: 이미지 자르기를 할 때 이미지 크기 전체를 표시하지 못할 수 있음
  • Fix: 페이지에서 페이지 생성 버튼이 본문에 중복으로 표시됨
  • Fix: 노트 본문의 사용자 멘션 영역을 클릭하면 노트 상세 페이지가 표시됨
  • Fix: 역할 권한에 의해 번역 기능을 사용할 수 없을 때도 번역 버튼이 표시됨

Server

Copy link
Contributor

github-actions bot commented Aug 28, 2024

이 PR에 의한 api.json 차이

차이점은 여기에서 볼 수 있음
--- base
+++ head
@@ -1,8 +1,7 @@
 {
   "openapi": "3.1.0",
   "info": {
-    "version": "4.11.1",
-    "description": "2024.8.0",
+    "version": "4.12.0 (2024.9.0)",
     "title": "CherryPick API"
   },
   "externalDocs": {
@@ -483,6 +482,9 @@
                     "perUserListTimelineCacheMax": {
                       "type": "number"
                     },
+                    "enableReactionsBuffering": {
+                      "type": "boolean"
+                    },
                     "notesPerOneAd": {
                       "type": "number"
                     },
@@ -626,6 +628,15 @@
                         "null"
                       ]
                     },
+                    "federation": {
+                      "type": "string"
+                    },
+                    "federationHosts": {
+                      "type": "array",
+                      "items": {
+                        "type": "string"
+                      }
+                    },
                     "doNotSendNotificationEmailsForAbuseReport": {
                       "type": "boolean"
                     },
@@ -646,6 +657,18 @@
                         "string",
                         "null"
                       ]
+                    },
+                    "trustedLinkUrlPatterns": {
+                      "type": "array",
+                      "items": {
+                        "type": "string"
+                      }
+                    },
+                    "customSplashText": {
+                      "type": "array",
+                      "items": {
+                        "type": "string"
+                      }
                     }
                   },
                   "required": [
@@ -728,6 +751,7 @@
                     "perRemoteUserUserTimelineCacheMax",
                     "perUserHomeTimelineCacheMax",
                     "perUserListTimelineCacheMax",
+                    "enableReactionsBuffering",
                     "notesPerOneAd",
                     "backgroundImageUrl",
                     "deeplAuthKey",
@@ -757,10 +781,14 @@
                     "urlPreviewRequireContentLength",
                     "urlPreviewUserAgent",
                     "urlPreviewSummaryProxyUrl",
+                    "federation",
+                    "federationHosts",
                     "doNotSendNotificationEmailsForAbuseReport",
                     "emailToReceiveAbuseReport",
                     "enableReceivePrerelease",
-                    "skipVersion"
+                    "skipVersion",
+                    "trustedLinkUrlPatterns",
+                    "customSplashText"
                   ]
                 }
               }
@@ -11367,16 +11395,15 @@
                   "type": "array",
                   "items": {
                     "type": "array",
-                    "items": {
-                      "anyOf": [
-                        {
-                          "type": "string"
-                        },
-                        {
-                          "type": "number"
-                        }
-                      ]
-                    }
+                    "prefixItems": [
+                      {
+                        "type": "string"
+                      },
+                      {
+                        "type": "number"
+                      }
+                    ],
+                    "unevaluatedItems": false
                   },
                   "example": [
                     [
@@ -11522,16 +11549,15 @@
                   "type": "array",
                   "items": {
                     "type": "array",
-                    "items": {
-                      "anyOf": [
-                        {
-                          "type": "string"
-                        },
-                        {
-                          "type": "number"
-                        }
-                      ]
-                    }
+                    "prefixItems": [
+                      {
+                        "type": "string"
+                      },
+                      {
+                        "type": "number"
+                      }
+                    ],
+                    "unevaluatedItems": false
                   },
                   "example": [
                     [
@@ -13418,6 +13444,12 @@
                     "emailVerified": {
                       "type": "boolean"
                     },
+                    "followedMessage": {
+                      "type": [
+                        "string",
+                        "null"
+                      ]
+                    },
                     "autoAcceptFollowed": {
                       "type": "boolean"
                     },
@@ -14181,6 +14213,7 @@
                   "required": [
                     "email",
                     "emailVerified",
+                    "followedMessage",
                     "autoAcceptFollowed",
                     "noCrawle",
                     "preventAiLearning",
@@ -15459,6 +15492,9 @@
                   "perUserListTimelineCacheMax": {
                     "type": "integer"
                   },
+                  "enableReactionsBuffering": {
+                    "type": "boolean"
+                  },
                   "notesPerOneAd": {
                     "type": "integer"
                   },
@@ -15511,6 +15547,20 @@
                       "null"
                     ]
                   },
+                  "federation": {
+                    "type": "string",
+                    "enum": [
+                      "all",
+                      "none",
+                      "specified"
+                    ]
+                  },
+                  "federationHosts": {
+                    "type": "array",
+                    "items": {
+                      "type": "string"
+                    }
+                  },
                   "doNotSendNotificationEmailsForAbuseReport": {
                     "type": "boolean"
                   },
@@ -15531,6 +15581,24 @@
                       "string",
                       "null"
                     ]
+                  },
+                  "trustedLinkUrlPatterns": {
+                    "type": [
+                      "array",
+                      "null"
+                    ],
+                    "items": {
+                      "type": "string"
+                    }
+                  },
+                  "customSplashText": {
+                    "type": [
+                      "array",
+                      "null"
+                    ],
+                    "items": {
+                      "type": "string"
+                    }
                   }
                 }
               }
@@ -18417,6 +18485,204 @@
         }
       }
     },
+    "/admin/system-webhook/test": {
+      "post": {
+        "operationId": "admin___system-webhook___test",
+        "summary": "admin/system-webhook/test",
+        "description": "No description provided.\n\n**Internal Endpoint**: This endpoint is an API for the cherrypick mainframe and is not intended for use by third parties.\n**Credential required**: *Yes* / **Permission**: *read:admin:system-webhook*",
+        "externalDocs": {
+          "description": "Source code",
+          "url": "https://github.com/kokonect-link/cherrypick/blob/develop/packages/backend/src/server/api/endpoints/admin/system-webhook/test.ts"
+        },
+        "tags": [
+          "webhooks"
+        ],
+        "security": [
+          {
+            "bearerAuth": []
+          }
+        ],
+        "requestBody": {
+          "required": true,
+          "content": {
+            "application/json": {
+              "schema": {
+                "type": "object",
+                "properties": {
+                  "webhookId": {
+                    "type": "string",
+                    "format": "misskey:id"
+                  },
+                  "type": {
+                    "type": "string",
+                    "enum": [
+                      "abuseReport",
+                      "abuseReportResolved",
+                      "userCreated"
+                    ]
+                  },
+                  "override": {
+                    "type": "object",
+                    "properties": {
+                      "url": {
+                        "type": "string"
+                      },
+                      "secret": {
+                        "type": "string"
+                      }
+                    }
+                  }
+                },
+                "required": [
+                  "webhookId",
+                  "type"
+                ]
+              }
+            }
+          }
+        },
+        "responses": {
+          "204": {
+            "description": "OK (without any results)"
+          },
+          "400": {
+            "description": "Client error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "NO_SUCH_WEBHOOK": {
+                    "value": {
+                      "error": {
+                        "message": "No such webhook.",
+                        "code": "NO_SUCH_WEBHOOK",
+                        "id": "0c52149c-e913-18f8-5dc7-74870bfe0cf9"
+                      }
+                    }
+                  },
+                  "INVALID_PARAM": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid param.",
+                        "code": "INVALID_PARAM",
+                        "id": "3d81ceae-475f-4600-b2a8-2bc116157532"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Authentication error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "CREDENTIAL_REQUIRED": {
+                    "value": {
+                      "error": {
+                        "message": "Credential required.",
+                        "code": "CREDENTIAL_REQUIRED",
+                        "id": "1384574d-a912-4b81-8601-c7b1c4085df1"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "AUTHENTICATION_FAILED": {
+                    "value": {
+                      "error": {
+                        "message": "Authentication failed. Please ensure your token is correct.",
+                        "code": "AUTHENTICATION_FAILED",
+                        "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "418": {
+            "description": "I'm Ai",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "I_AM_AI": {
+                    "value": {
+                      "error": {
+                        "message": "You sent a request to Ai-chan, CherryPick's showgirl, instead of the server.",
+                        "code": "I_AM_AI",
+                        "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "429": {
+            "description": "To many requests",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "RATE_LIMIT_EXCEEDED": {
+                    "value": {
+                      "error": {
+                        "message": "Rate limit exceeded. Please try again later.",
+                        "code": "RATE_LIMIT_EXCEEDED",
+                        "id": "d5826d14-3982-4d2e-8011-b9e9f02499ef"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal server error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INTERNAL_ERROR": {
+                    "value": {
+                      "error": {
+                        "message": "Internal error occurred. Please contact us if the error persists.",
+                        "code": "INTERNAL_ERROR",
+                        "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    },
     "/announcements": {
       "post": {
         "operationId": "announcements",
@@ -18897,6 +19163,15 @@
                       }
                     }
                   },
+                  "EMPTY_KEYWORD": {
+                    "value": {
+                      "error": {
+                        "message": "Either keywords or excludeKeywords is required.",
+                        "code": "EMPTY_KEYWORD",
+                        "id": "53ee222e-1ddd-4f9a-92e5-9fb82ddb463a"
+                      }
+                    }
+                  },
                   "INVALID_PARAM": {
                     "value": {
                       "error": {
@@ -19790,6 +20065,15 @@
                       }
                     }
                   },
+                  "EMPTY_KEYWORD": {
+                    "value": {
+                      "error": {
+                        "message": "Either keywords or excludeKeywords is required.",
+                        "code": "EMPTY_KEYWORD",
+                        "id": "721aaff6-4e1b-4d88-8de6-877fae9f68c4"
+                      }
+                    }
+                  },
                   "NO_SUCH_USER_GROUP": {
                     "value": {
                       "error": {
@@ -47453,6 +47737,7 @@
                         "groupInvited",
                         "roleAssigned",
                         "achievementEarned",
+                        "exportCompleted",
                         "app",
                         "test",
                         "pollVote"
@@ -47477,6 +47762,7 @@
                         "groupInvited",
                         "roleAssigned",
                         "achievementEarned",
+                        "exportCompleted",
                         "app",
                         "test",
                         "pollVote"
@@ -47692,6 +47978,7 @@
                         "groupInvited",
                         "roleAssigned",
                         "achievementEarned",
+                        "exportCompleted",
                         "app",
                         "test",
                         "reaction:grouped",
@@ -47718,6 +48005,7 @@
                         "groupInvited",
                         "roleAssigned",
                         "achievementEarned",
+                        "exportCompleted",
                         "app",
                         "test",
                         "reaction:grouped",
@@ -51032,6 +51320,14 @@
                     "minLength": 1,
                     "maxLength": 1500
                   },
+                  "followedMessage": {
+                    "type": [
+                      "string",
+                      "null"
+                    ],
+                    "minLength": 1,
+                    "maxLength": 256
+                  },
                   "location": {
                     "type": [
                       "string",
@@ -53816,6 +54112,209 @@
         }
       }
     },
+    "/i/webhooks/test": {
+      "post": {
+        "operationId": "i___webhooks___test",
+        "summary": "i/webhooks/test",
+        "description": "No description provided.\n\n**Internal Endpoint**: This endpoint is an API for the cherrypick mainframe and is not intended for use by third parties.\n**Credential required**: *Yes* / **Permission**: *read:account*",
+        "externalDocs": {
+          "description": "Source code",
+          "url": "https://github.com/kokonect-link/cherrypick/blob/develop/packages/backend/src/server/api/endpoints/i/webhooks/test.ts"
+        },
+        "tags": [
+          "webhooks"
+        ],
+        "security": [
+          {
+            "bearerAuth": []
+          }
+        ],
+        "requestBody": {
+          "required": true,
+          "content": {
+            "application/json": {
+              "schema": {
+                "type": "object",
+                "properties": {
+                  "webhookId": {
+                    "type": "string",
+                    "format": "misskey:id"
+                  },
+                  "type": {
+                    "type": "string",
+                    "enum": [
+                      "mention",
+                      "unfollow",
+                      "follow",
+                      "followed",
+                      "note",
+                      "reply",
+                      "renote",
+                      "reaction"
+                    ]
+                  },
+                  "override": {
+                    "type": "object",
+                    "properties": {
+                      "url": {
+                        "type": "string"
+                      },
+                      "secret": {
+                        "type": "string"
+                      }
+                    }
+                  }
+                },
+                "required": [
+                  "webhookId",
+                  "type"
+                ]
+              }
+            }
+          }
+        },
+        "responses": {
+          "204": {
+            "description": "OK (without any results)"
+          },
+          "400": {
+            "description": "Client error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "NO_SUCH_WEBHOOK": {
+                    "value": {
+                      "error": {
+                        "message": "No such webhook.",
+                        "code": "NO_SUCH_WEBHOOK",
+                        "id": "0c52149c-e913-18f8-5dc7-74870bfe0cf9"
+                      }
+                    }
+                  },
+                  "INVALID_PARAM": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid param.",
+                        "code": "INVALID_PARAM",
+                        "id": "3d81ceae-475f-4600-b2a8-2bc116157532"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Authentication error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "CREDENTIAL_REQUIRED": {
+                    "value": {
+                      "error": {
+                        "message": "Credential required.",
+                        "code": "CREDENTIAL_REQUIRED",
+                        "id": "1384574d-a912-4b81-8601-c7b1c4085df1"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "AUTHENTICATION_FAILED": {
+                    "value": {
+                      "error": {
+                        "message": "Authentication failed. Please ensure your token is correct.",
+                        "code": "AUTHENTICATION_FAILED",
+                        "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "418": {
+            "description": "I'm Ai",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "I_AM_AI": {
+                    "value": {
+                      "error": {
+                        "message": "You sent a request to Ai-chan, CherryPick's showgirl, instead of the server.",
+                        "code": "I_AM_AI",
+                        "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "429": {
+            "description": "To many requests",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "RATE_LIMIT_EXCEEDED": {
+                    "value": {
+                      "error": {
+                        "message": "Rate limit exceeded. Please try again later.",
+                        "code": "RATE_LIMIT_EXCEEDED",
+                        "id": "d5826d14-3982-4d2e-8011-b9e9f02499ef"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal server error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INTERNAL_ERROR": {
+                    "value": {
+                      "error": {
+                        "message": "Internal error occurred. Please contact us if the error persists.",
+                        "code": "INTERNAL_ERROR",
+                        "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    },
     "/invite/create": {
       "post": {
         "operationId": "invite___create",
@@ -58480,6 +58979,27 @@
                         "type": "object"
                       }
                     }
+                  },
+                  "scheduledDelete": {
+                    "type": [
+                      "object",
+                      "null"
+                    ],
+                    "properties": {
+                      "deleteAt": {
+                        "type": [
+                          "integer",
+                          "null"
+                        ]
+                      },
+                      "deleteAfter": {
+                        "type": [
+                          "integer",
+                          "null"
+                        ],
+                        "minimum": 1
+                      }
+                    }
                   }
                 },
                 "if": {
@@ -58669,6 +59189,15 @@
                       }
                     }
                   },
+                  "CANNOT_SCHEDULE_DELETE_EARLIER_THAN_NOW": {
+                    "value": {
+                      "error": {
+                        "message": "Cannot specify delete time earlier than now.",
+                        "code": "CANNOT_SCHEDULE_DELETE_EARLIER_THAN_NOW",
+                        "id": "9f04994a-3aa2-11ef-a495-177eea74788f"
+                      }
+                    }
+                  },
                   "INVALID_PARAM": {
                     "value": {
                       "error": {
@@ -82748,6 +83277,12 @@
               "$ref": "#/components/schemas/RoleLite"
             }
           },
+          "followedMessage": {
+            "type": [
+              "string",
+              "null"
+            ]
+          },
           "memo": {
             "type": [
               "string",
@@ -82845,6 +83380,12 @@
             ],
             "format": "id"
           },
+          "followedMessage": {
+            "type": [
+              "string",
+              "null"
+            ]
+          },
           "isModerator": {
             "type": [
               "boolean",
@@ -83681,6 +84222,7 @@
         "required": [
           "avatarId",
           "bannerId",
+          "followedMessage",
           "isModerator",
           "isAdmin",
           "injectFeaturedNote",
@@ -84417,6 +84959,13 @@
               "string",
               "null"
             ]
+          },
+          "deleteAt": {
+            "type": [
+              "string",
+              "null"
+            ],
+            "format": "date-time"
           }
         },
         "required": [
@@ -84861,6 +85410,12 @@
               "userId": {
                 "type": "string",
                 "format": "id"
+              },
+              "message": {
+                "type": [
+                  "string",
+                  "null"
+                ]
               }
             },
             "required": [
@@ -84868,7 +85423,8 @@
               "createdAt",
               "type",
               "user",
-              "userId"
+              "userId",
+              "message"
             ]
           },
           {
@@ -84918,7 +85474,88 @@
                 ]
               },
               "achievement": {
-                "type": "string"
+                "type": "string",
+                "enum": [
+                  "notes1",
+                  "notes10",
+                  "notes100",
+                  "notes500",
+                  "notes1000",
+                  "notes5000",
+                  "notes10000",
+                  "notes20000",
+                  "notes30000",
+                  "notes40000",
+                  "notes50000",
+                  "notes60000",
+                  "notes70000",
+                  "notes80000",
+                  "notes90000",
+                  "notes100000",
+                  "login3",
+                  "login7",
+                  "login15",
+                  "login30",
+                  "login60",
+                  "login100",
+                  "login200",
+                  "login300",
+                  "login400",
+                  "login500",
+                  "login600",
+                  "login700",
+                  "login800",
+                  "login900",
+                  "login1000",
+                  "passedSinceAccountCreated1",
+                  "passedSinceAccountCreated2",
+                  "passedSinceAccountCreated3",
+                  "loggedInOnBirthday",
+                  "loggedInOnNewYearsDay",
+                  "noteClipped1",
+                  "noteFavorited1",
+                  "myNoteFavorited1",
+                  "profileFilled",
+                  "markedAsCat",
+                  "following1",
+                  "following10",
+                  "following50",
+                  "following100",
+                  "following300",
+                  "followers1",
+                  "followers10",
+                  "followers50",
+                  "followers100",
+                  "followers300",
+                  "followers500",
+                  "followers1000",
+                  "collectAchievements30",
+                  "viewAchievements3min",
+                  "iLoveCherryPick",
+                  "foundTreasure",
+                  "client30min",
+                  "client60min",
+                  "noteDeletedWithin1min",
+                  "postedAtLateNight",
+                  "postedAt0min0sec",
+                  "selfQuote",
+                  "htl20npm",
+                  "viewInstanceChart",
+                  "outputHelloWorldOnScratchpad",
+                  "open3windows",
+                  "driveFolderCircularReference",
+                  "reactWithoutRead",
+                  "clickedClickHere",
+                  "justPlainLucky",
+                  "setNameToSyuilo",
+                  "setNameToNoriDev",
+                  "cookieClicked",
+                  "brainDiver",
+                  "smashTestNotificationButton",
+                  "tutorialCompleted",
+                  "bubbleGameExplodingHead",
+                  "bubbleGameDoubleExplodingHead"
+                ]
               }
             },
             "required": [
@@ -84942,6 +85579,50 @@
               "type": {
                 "type": "string",
                 "enum": [
+                  "exportCompleted"
+                ]
+              },
+              "exportedEntity": {
+                "type": "string",
+                "enum": [
+                  "antenna",
+                  "blocking",
+                  "clip",
+                  "customEmoji",
+                  "favorite",
+                  "following",
+                  "muting",
+                  "note",
+                  "userList"
+                ]
+              },
+              "fileId": {
+                "type": "string",
+                "format": "id"
+              }
+            },
+            "required": [
+              "id",
+              "createdAt",
+              "type",
+              "exportedEntity",
+              "fileId"
+            ]
+          },
+          {
+            "type": "object",
+            "properties": {
+              "id": {
+                "type": "string",
+                "format": "id"
+              },
+              "createdAt": {
+                "type": "string",
+                "format": "date-time"
+              },
+              "type": {
+                "type": "string",
+                "enum": [
                   "app"
                 ]
               },
@@ -84949,10 +85630,16 @@
                 "type": "string"
               },
               "header": {
-                "type": "string"
+                "type": [
+                  "string",
+                  "null"
+                ]
               },
               "icon": {
-                "type": "string"
+                "type": [
+                  "string",
+                  "null"
+                ]
               }
             },
             "required": [
@@ -86860,6 +87547,9 @@
           "canUseTranslator": {
             "type": "boolean"
           },
+          "canUseAutoTranslate": {
+            "type": "boolean"
+          },
           "canHideAds": {
             "type": "boolean"
           },
@@ -86902,6 +87592,21 @@
           "avatarDecorationLimit": {
             "type": "integer"
           },
+          "canImportAntennas": {
+            "type": "boolean"
+          },
+          "canImportBlocking": {
+            "type": "boolean"
+          },
+          "canImportFollowing": {
+            "type": "boolean"
+          },
+          "canImportMuting": {
+            "type": "boolean"
+          },
+          "canImportUserLists": {
+            "type": "boolean"
+          },
           "canEditNote": {
             "type": "boolean"
           }
@@ -86919,6 +87624,7 @@
           "canManageAvatarDecorations",
           "canSearchNotes",
           "canUseTranslator",
+          "canUseAutoTranslate",
           "canHideAds",
           "driveCapacityMb",
           "alwaysMarkNsfw",
@@ -86933,6 +87639,11 @@
           "userEachUserListsLimit",
           "rateLimitFactor",
           "avatarDecorationLimit",
+          "canImportAntennas",
+          "canImportBlocking",
+          "canImportFollowing",
+          "canImportMuting",
+          "canImportUserLists",
           "canEditNote"
         ]
       },
@@ -87445,6 +88156,12 @@
               ]
             }
           },
+          "trustedLinkUrlPatterns": {
+            "type": "array",
+            "items": {
+              "type": "string"
+            }
+          },
           "notesPerOneAd": {
             "type": "number",
             "default": 0
@@ -87517,6 +88234,9 @@
               "global"
             ],
             "default": "local"
+          },
+          "maxFileSize": {
+            "type": "number"
           }
         },
         "required": [
@@ -87555,6 +88275,7 @@
           "iconUrl",
           "maxNoteTextLength",
           "ads",
+          "trustedLinkUrlPatterns",
           "notesPerOneAd",
           "enableEmail",
           "enableServiceWorker",
@@ -87569,7 +88290,8 @@
           "serverRules",
           "themeColor",
           "policies",
-          "noteSearchableScope"
+          "noteSearchableScope",
+          "maxFileSize"
         ]
       },
       "MetaDetailedOnly": {

Get diff files from Workflow Page

@noridev noridev marked this pull request as draft August 28, 2024 08:09
Copy link

codecov bot commented Sep 5, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 59.25%. Comparing base (86312de) to head (61b993f).
Report is 686 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #491      +/-   ##
==========================================
- Coverage   63.21%   59.25%   -3.97%     
==========================================
  Files        1048      880     -168     
  Lines      123406    99516   -23890     
  Branches     5933     2423    -3510     
==========================================
- Hits        78015    58971   -19044     
+ Misses      43569    40485    -3084     
+ Partials     1822       60    -1762     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

kakkokari-gtyih and others added 22 commits September 18, 2024 19:23
* feat: UserWebhook/SystemWebhookのテスト送信機能を追加

* fix CHANGELOG.md

* 一部設定をパラメータから上書き出来るように修正

* remove async

* regenerate autogen
* wip

* wip

* Update ReactionsBufferingService.ts

* Update ReactionsBufferingService.ts

* wip

* wip

* wip

* Update ReactionsBufferingService.ts

* wip

* wip

* wip

* Update NoteEntityService.ts

* wip

* wip

* wip

* wip

* Update CHANGELOG.md
* enhance: インポート操作の実行可否をロールで制御できるように

* Update Changelog
* upd: don't ignore new lines on file info

* Update Changelog

* ✌️

---------

Co-authored-by: Marie <[email protected]>
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.0.3 to 4.0.4.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@v4.0.3...v4.0.4)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.0.12 to 5.4.6.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.6/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.6/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* move rate-limit-exceeded error reporting, earlier

a rate-limit-exceeded error has `kind:'client'`, so the branch that
adds the `Retry-After` would never get taken

(cherry picked from commit 8a982c61c01909e7540ff1be9f019df07c3f0624)

* Update Changelog

* fix

* indent

---------

Co-authored-by: dakkar <[email protected]>
noridev added 28 commits October 6, 2024 19:55
  - 노트 자동 번역은 번역 서비스의 API 제한을 방지하기 위해 자동으로 활성화되지 않으며, 기본적으로 비활성화되어 있습니다.
  - `역할`에서 `자동 번역 기능 이용 가능 여부`를 활성화 하면 자동 번역을 사용할 수 있는 상태가 됩니다.
  - 이후, 각 사용자별로 `설정` - `일반`에서 `노트 자동 번역`을 활성화한 사용자는 자동 번역을 사용할 수 있습니다.
  - 노트가 아래와 같이 설정된 경우에는 노트 자동 번역을 사용하지 않습니다.
    - 노트가 `내용 가리기`로 설정되어 있음
    - 노트의 내용이 긺
    - 노트에 파일이 포함되어 있음
  - `자동 번역 기능 이용 가능 여부` 역할의 권한을 상실하게 되면 모든 사용자의 `노트 자동 번역` 설정도 자동으로 비활성화 됩니다.
  - `답글을 자동으로 더 보기`를 활성화하면 `더 보기` 버튼을 누르지 않아도 노트 내 답글을 전부 표시합니다.
  - `대화를 자동으로 더 보기`를 활성화하면 `대화 보기` 버튼을 누르지 않아도 노트 내 대화를 전부 표시합니다.
@noridev noridev marked this pull request as ready for review October 8, 2024 05:32
@noridev noridev merged commit 6d0de6a into master Oct 8, 2024
33 of 41 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.