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.15.0 #558

Draft
wants to merge 106 commits into
base: master
Choose a base branch
from
Draft

Release: 4.15.0 #558

wants to merge 106 commits into from

Conversation

noridev
Copy link
Collaborator

@noridev noridev commented Jan 19, 2025

기반 Misskey 버전: 2025.1.0

General

  • Feat: 계정 정리 기능 (yodangang-express/cherrypick@dc51c907)
    • 다이렉트 메시지고정된 노트와 관련된 파일을 제외한 모든 노트와 파일을 자동으로 삭제할 수 있음

Client

  • Enhance: 사용자 페이지에서 이름, 자기소개, 팔로우 메시지, 추가 정보에 포함된 외부 이모지를 가져올 수 있음
  • Enhance: 노트에 여러 장의 이미지가 있을 때 미디어 탭에서 이미지 수를 숫자로 표시함
  • Fix: 노트 헤더의 사용자 이름을 클릭하면 페이지가 중복으로 이동됨
  • Fix: CherryPick 클라이언트 업데이트 알림이 잘못 반환될 수 있음
    • 출시 전 빌드 태그가 고려되지 않음(alpha, beta, rc)
      • 예: 4.14.2 < 4.14.3-alpha.0 계산 시 4.14.2가 더 큰 것으로 계산됨
  • Fix: 파일을 포함한 노트에서 일부 기능이 제대로 작동하지 않을 수 있음 (Fix: ユーザーTLファイル付きノートTLの修正 #552)
    • 사용자 페이지에서 다음 기능이 제대로 작동하지 않을 수 있는 문제가 수정됨
      • 민감한 미디어 표시 설정이 반영되지 않음
      • 민감한 콘텐츠로 표시된 미디어를 열 때 설정이 반영되지 않음
      • 데이터 절약 모드 설정이 반영되지 않음
    • 미디어 왼쪽 상단에 ALT/GIF/APNG/NSFW 표시

Server

noridev and others added 30 commits January 3, 2025 01:09
…ress@dc51c90))

  - `다이렉트 메시지` 및 `고정된 노트`와 관련된 파일을 제외한 모든 노트와 파일을 자동으로 삭제할 수 있음
  - 출시 전 빌드 태그가 고려되지 않음(`alpha`, `beta`, `rc`)
    - 예: `4.14.2 < 4.14.3-alpha.0` 계산 시 `4.14.2`가 더 큰 것으로 계산됨
…15205)

* Use LIKE-LOWER instead of ILIKE, which pg_bigm doesn't support.

* changelog: Enhance: pg_bigmが利用できるよう、ノートの検索をILIKE演算子でなくLIKE演算子でLOWER()をかけたテキストに対して行うように
* fix(frontend/AiScript): Ui:C:selectの値が切り替わらない問題を修正

* Update Changelog
* feat(MiAuth): アクセストークンの発行に失敗した場合コールバックに遷移しないようにする (MisskeyIO#831)

Cherry-picked from TeamNijimiss/misskey@8003596

Co-authored-by: nafu-at <[email protected]>

* Update Changelog

* Update Changelog

---------

Co-authored-by: あわわわとーにゅ <[email protected]>
Co-authored-by: nafu-at <[email protected]>
* fix(frontend): ノート検索が使用できない場合でもチャンネルのノート検索欄がでていた問題を修正

* Update Changelog

---------

Co-authored-by: syuilo <[email protected]>
* enhance(frontend/aiscript): セーブ内容を削除できる`Mk:remove`を追加

* fix

* Update Changelog
* fix(frontend): ファイルの添付可能数を超えたらノートボタンを押せないように

* Update Changelog

* Update MkPostForm.vue
* fix(frontend): アカウント一覧画面で、ユーザー情報の取得に失敗したアカウントが表示されない問題を修正

* Update Changelog

* 🎨
* fix(backend): disableClustering設定時の初期化ロジックを調整

* onlyServer かつ enableCluster な場合、メインプロセスでlistenするとワーカープロセス側のlistenと衝突するため、メインプロセスはforkのみに制限する(listenしない)

* ログの追加

* fix CHANGELOG.md

* fix comment
…2にする (#15215)

* fix(frontend): frontend / frontend-embedにあるtsconfig.jsonのmoduleをES2022にする

* fixed errors

* fixed errors

* fixed errors
*/
@bindThis
public async enqueueUserWebhook<T extends WebhookEventTypes>(
userId: MiUser['id'],

Check failure

Code scanning / CodeQL

Insecure randomness High

This uses a cryptographically insecure random number generated at
Math.random()
in a security context.
This uses a cryptographically insecure random number generated at
Math.random()
in a security context.
This uses a cryptographically insecure random number generated at
Math.random()
in a security context.

Copilot Autofix AI 11 days ago

To fix the problem, we need to replace the use of Math.random() with a cryptographically secure random number generator. In Node.js, we can use the crypto module to generate secure random values. Specifically, we can use crypto.randomBytes to generate random bytes and convert them to hexadecimal strings.

  1. Replace the getRandom function in packages/backend/src/misc/id/meid.ts to use crypto.randomBytes instead of Math.random().
  2. Ensure that the new implementation maintains the same functionality and output format as the original code.
Suggested changeset 1
packages/backend/src/misc/id/meid.ts
Outside changed files

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/packages/backend/src/misc/id/meid.ts b/packages/backend/src/misc/id/meid.ts
--- a/packages/backend/src/misc/id/meid.ts
+++ b/packages/backend/src/misc/id/meid.ts
@@ -21,10 +21,6 @@
 
-function getRandom() {
-	let str = '';
-
-	for (let i = 0; i < 12; i++) {
-		str += CHARS[Math.floor(Math.random() * CHARS.length)];
-	}
+import { randomBytes } from 'crypto';
 
-	return str;
+function getRandom() {
+	return randomBytes(6).toString('hex');
 }
EOF
@@ -21,10 +21,6 @@

function getRandom() {
let str = '';

for (let i = 0; i < 12; i++) {
str += CHARS[Math.floor(Math.random() * CHARS.length)];
}
import { randomBytes } from 'crypto';

return str;
function getRandom() {
return randomBytes(6).toString('hex');
}
Copilot is powered by AI and may make mistakes. Always verify output.
Positive Feedback
Negative Feedback

Provide additional feedback

Please help us improve GitHub Copilot by sharing more details about this comment.

Please select one or more of the options
Copy link
Contributor

github-actions bot commented Jan 19, 2025

이 PR에 의한 api.json 차이

차이점은 여기에서 볼 수 있음
--- base
+++ head
@@ -1,7 +1,7 @@
 {
   "openapi": "3.1.0",
   "info": {
-    "version": "4.14.2 (2024.11.1-alpha.0)",
+    "version": "4.15.0-beta.0 (2025.1.0-beta.1)",
     "title": "CherryPick API"
   },
   "externalDocs": {
@@ -5736,6 +5736,492 @@
         }
       }
     },
+    "/admin/captcha/current": {
+      "post": {
+        "operationId": "admin___captcha___current",
+        "summary": "admin/captcha/current",
+        "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *read:admin:meta*",
+        "externalDocs": {
+          "description": "Source code",
+          "url": "https://github.com/kokonect-link/cherrypick/blob/develop/packages/backend/src/server/api/endpoints/admin/captcha/current.ts"
+        },
+        "tags": [
+          "admin"
+        ],
+        "security": [
+          {
+            "bearerAuth": []
+          }
+        ],
+        "responses": {
+          "200": {
+            "description": "OK (with results)",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "type": "object",
+                  "properties": {
+                    "provider": {
+                      "type": "string",
+                      "enum": [
+                        "none",
+                        "hcaptcha",
+                        "mcaptcha",
+                        "recaptcha",
+                        "turnstile",
+                        "testcaptcha"
+                      ]
+                    },
+                    "hcaptcha": {
+                      "type": "object",
+                      "properties": {
+                        "siteKey": {
+                          "type": [
+                            "string",
+                            "null"
+                          ]
+                        },
+                        "secretKey": {
+                          "type": [
+                            "string",
+                            "null"
+                          ]
+                        }
+                      },
+                      "required": [
+                        "siteKey",
+                        "secretKey"
+                      ]
+                    },
+                    "mcaptcha": {
+                      "type": "object",
+                      "properties": {
+                        "siteKey": {
+                          "type": [
+                            "string",
+                            "null"
+                          ]
+                        },
+                        "secretKey": {
+                          "type": [
+                            "string",
+                            "null"
+                          ]
+                        },
+                        "instanceUrl": {
+                          "type": [
+                            "string",
+                            "null"
+                          ]
+                        }
+                      },
+                      "required": [
+                        "siteKey",
+                        "secretKey",
+                        "instanceUrl"
+                      ]
+                    },
+                    "recaptcha": {
+                      "type": "object",
+                      "properties": {
+                        "siteKey": {
+                          "type": [
+                            "string",
+                            "null"
+                          ]
+                        },
+                        "secretKey": {
+                          "type": [
+                            "string",
+                            "null"
+                          ]
+                        }
+                      },
+                      "required": [
+                        "siteKey",
+                        "secretKey"
+                      ]
+                    },
+                    "turnstile": {
+                      "type": "object",
+                      "properties": {
+                        "siteKey": {
+                          "type": [
+                            "string",
+                            "null"
+                          ]
+                        },
+                        "secretKey": {
+                          "type": [
+                            "string",
+                            "null"
+                          ]
+                        }
+                      },
+                      "required": [
+                        "siteKey",
+                        "secretKey"
+                      ]
+                    }
+                  },
+                  "required": [
+                    "provider",
+                    "hcaptcha",
+                    "mcaptcha",
+                    "recaptcha",
+                    "turnstile"
+                  ]
+                }
+              }
+            }
+          },
+          "400": {
+            "description": "Client error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "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"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "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"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/admin/captcha/save": {
+      "post": {
+        "operationId": "admin___captcha___save",
+        "summary": "admin/captcha/save",
+        "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *write:admin:meta*",
+        "externalDocs": {
+          "description": "Source code",
+          "url": "https://github.com/kokonect-link/cherrypick/blob/develop/packages/backend/src/server/api/endpoints/admin/captcha/save.ts"
+        },
+        "tags": [
+          "admin"
+        ],
+        "security": [
+          {
+            "bearerAuth": []
+          }
+        ],
+        "requestBody": {
+          "required": true,
+          "content": {
+            "application/json": {
+              "schema": {
+                "type": "object",
+                "properties": {
+                  "provider": {
+                    "type": "string",
+                    "enum": [
+                      "none",
+                      "hcaptcha",
+                      "mcaptcha",
+                      "recaptcha",
+                      "turnstile",
+                      "testcaptcha"
+                    ]
+                  },
+                  "captchaResult": {
+                    "type": [
+                      "string",
+                      "null"
+                    ]
+                  },
+                  "sitekey": {
+                    "type": [
+                      "string",
+                      "null"
+                    ]
+                  },
+                  "secret": {
+                    "type": [
+                      "string",
+                      "null"
+                    ]
+                  },
+                  "instanceUrl": {
+                    "type": [
+                      "string",
+                      "null"
+                    ]
+                  }
+                },
+                "required": [
+                  "provider"
+                ]
+              }
+            }
+          }
+        },
+        "responses": {
+          "204": {
+            "description": "OK (without any results)"
+          },
+          "400": {
+            "description": "Client error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INVALID_PROVIDER": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid provider.",
+                        "code": "INVALID_PROVIDER",
+                        "id": "14bf7ae1-80cc-4363-acb2-4fd61d086af0",
+                        "httpStatusCode": 400
+                      }
+                    }
+                  },
+                  "INVALID_PARAMETERS": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid parameters.",
+                        "code": "INVALID_PARAMETERS",
+                        "id": "26654194-410e-44e2-b42e-460ff6f92476",
+                        "httpStatusCode": 400
+                      }
+                    }
+                  },
+                  "NO_RESPONSE_PROVIDED": {
+                    "value": {
+                      "error": {
+                        "message": "No response provided.",
+                        "code": "NO_RESPONSE_PROVIDED",
+                        "id": "40acbba8-0937-41fb-bb3f-474514d40afe",
+                        "httpStatusCode": 400
+                      }
+                    }
+                  },
+                  "REQUEST_FAILED": {
+                    "value": {
+                      "error": {
+                        "message": "Request failed.",
+                        "code": "REQUEST_FAILED",
+                        "id": "0f4fe2f1-2c15-4d6e-b714-efbfcde231cd",
+                        "httpStatusCode": 500
+                      }
+                    }
+                  },
+                  "VERIFICATION_FAILED": {
+                    "value": {
+                      "error": {
+                        "message": "Verification failed.",
+                        "code": "VERIFICATION_FAILED",
+                        "id": "c41c067f-24f3-4150-84b2-b5a3ae8c2214",
+                        "httpStatusCode": 400
+                      }
+                    }
+                  },
+                  "UNKNOWN": {
+                    "value": {
+                      "error": {
+                        "message": "unknown",
+                        "code": "UNKNOWN",
+                        "id": "f868d509-e257-42a9-99c1-42614b031a97",
+                        "httpStatusCode": 500
+                      }
+                    }
+                  },
+                  "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"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "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"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    },
     "/admin/delete-all-files-of-a-user": {
       "post": {
         "operationId": "admin___delete-all-files-of-a-user",
@@ -51693,6 +52179,156 @@
         }
       }
     },
+    "/i/truncate-account": {
+      "post": {
+        "operationId": "i___truncate-account",
+        "summary": "i/truncate-account",
+        "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*",
+        "externalDocs": {
+          "description": "Source code",
+          "url": "https://github.com/kokonect-link/cherrypick/blob/develop/packages/backend/src/server/api/endpoints/i/truncate-account.ts"
+        },
+        "security": [
+          {
+            "bearerAuth": []
+          }
+        ],
+        "requestBody": {
+          "required": true,
+          "content": {
+            "application/json": {
+              "schema": {
+                "type": "object",
+                "properties": {
+                  "password": {
+                    "type": "string"
+                  },
+                  "token": {
+                    "type": [
+                      "string",
+                      "null"
+                    ]
+                  }
+                },
+                "required": [
+                  "password"
+                ]
+              }
+            }
+          }
+        },
+        "responses": {
+          "204": {
+            "description": "OK (without any results)"
+          },
+          "400": {
+            "description": "Client error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "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"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "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"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    },
     "/i/unpin": {
       "post": {
         "operationId": "i___unpin",
@@ -90623,6 +91259,14 @@
           "maxFileSize": {
             "type": "number"
           },
+          "federation": {
+            "type": "string",
+            "enum": [
+              "all",
+              "specified",
+              "none"
+            ]
+          },
           "disableRegistrationWhenInactive": {
             "type": "boolean"
           },
@@ -90688,6 +91332,7 @@
           "policies",
           "noteSearchableScope",
           "maxFileSize",
+          "federation",
           "disableRegistrationWhenInactive",
           "disablePublicNoteWhenInactive",
           "moderatorInactivityLimitDays"

Get diff files from Workflow Page

noridev and others added 9 commits January 20, 2025 01:42
* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* fix

* fix

* fix

* fix size

* fix register logs

* fix img autosize

* fix row selection

* support delete

* fix border rendering

* fix display:none

* tweak comments

* support choose pc file and drive file

* support directory drag-drop

* fix

* fix comment

* support context menu on data area

* fix autogen

* wip イベント整理

* イベントの整理

* refactor grid

* fix cell re-render bugs

* fix row remove

* fix comment

* fix validation

* fix utils

* list maximum

* add mimetype check

* fix

* fix number cell focus

* fix over 100 file drop

* remove log

* fix patchData

* fix performance

* fix

* support update and delete

* support remote import

* fix layout

* heightやめる

* fix performance

* add list v2 endpoint

* support pagination

* fix api call

* fix no clickable input text

* fix limit

* fix paging

* fix

* fix

* support search

* tweak logs

* tweak cell selection

* fix range select

* block delete

* add comment

* fix

* support import log

* fix dialog

* refactor

* add confirm dialog

* fix name

* fix autogen

* wip

* support image change and highlight row

* add columns

* wip

* support sort

* add role name

* add index to emoji

* refine context menu setting

* support role select

* remove unused buttons

* fix url

* fix MkRoleSelectDialog.vue

* add route

* refine remote page

* enter key search

* fix paste bugs

* fix copy/paste

* fix keyEvent

* fix copy/paste and delete

* fix comment

* fix MkRoleSelectDialog.vue and storybook scenario

* fix MkRoleSelectDialog.vue and storybook scenario

* add MkGrid.stories.impl.ts

* fix

* [wip] add custom-emojis-manager2.stories.impl.ts

* [wip] add custom-emojis-manager2.stories.impl.ts

* wip

* 課題はまだ残っているが、ひとまず完了

* fix validation and register roles

* fix upload

* optimize import

* patch from dev

* i18n

* revert excess fixes

* separate sort order component

* add SPDX

* revert excess fixes

* fix pre test

* fix bugs

* add type column

* fix types

* fix CHANGELOG.md

* fix lit

* lint

* tweak style

* refactor

* fix ci

* autogen

* Update types.ts

* CSS Module化

* fix log

* 縦スクロールを無効化

* MkStickyContainer化

* regenerate locales index.d.ts

* fix

* fix

* テスト

* ランダム値によるUI変更の抑制

* テスト

* tableタグやめる

* fix last-child css

* fix overflow css

* fix endpoint.ts

* tweak css

* 最新への追従とレイアウト微調整

* ソートキーの指定方法を他と合わせた

* fix focus

* fix layout

* v2エンドポイントのルールに対応

* 表示条件などを微調整

* fix MkDataCell.vue

* fix error code

* fix error

* add comment to MkModal.vue

* Update index.d.ts

* fix CHANGELOG.md

* fix color theme

* fix CHANGELOG.md

* fix CHANGELOG.md

* fix center

* fix: テーブルにフォーカスがあり、通常状態であるときはキーイベントの伝搬を止める

* fix: ロール選択用のダイアログにてコンディショナルロールを×ボタンで除外できなかったのを修正

* fix remote list folder

* sticky footers

* chore: fix ci error(just single line-break diff)

* fix loading

* fix like

* comma to space

* fix ci

* fix ci

* removed align-center

---------

Co-authored-by: osamu <[email protected]>
Co-authored-by: syuilo <[email protected]>
Co-authored-by: Sayamame-beans <[email protected]>
…ng Endpoints (#15301)

* chore: reorder endpoints to lexicographic code unit order

* refactor: import endpoints in one module and use them for generating EndpointsModule and endpoints
Copy link
Contributor

github-actions bot commented Jan 20, 2025

api.json 간 차이점을 생성하는 도중 오류가 발생했습니다. 자세한 내용은 Workflow 로그를 확인해 주세요.

noellabo and others added 6 commits January 21, 2025 00:30
* feat: クエリパラメータでuiを一時的に変更できるように

* docs(changelog): クエリパラメータでuiを一時的に変更できるように

* Update packages/frontend/src/boot/main-boot.ts

Co-authored-by: かっこかり <[email protected]>

---------

Co-authored-by: かっこかり <[email protected]>
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.0.3 to 4.1.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@v4.0.3...v4.1.0)

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

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/cache](https://github.com/actions/cache) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](actions/cache@v4.1.0...v4.2.0)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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.