From 10a7a036a26954f5bdd7bd2e2a715639ac7b6b9b Mon Sep 17 00:00:00 2001 From: yukineko <27853966+hideki0403@users.noreply.github.com> Date: Mon, 20 Nov 2023 17:48:52 +0900 Subject: [PATCH 1/9] =?UTF-8?q?feat:=20=E3=83=87=E3=82=B3=E3=83=AC?= =?UTF-8?q?=E3=83=BC=E3=82=B7=E3=83=A7=E3=83=B3=E3=83=9A=E3=83=BC=E3=82=B8?= =?UTF-8?q?=E3=81=8B=E3=82=89=E7=9B=B4=E6=8E=A5=E3=83=95=E3=82=A1=E3=82=A4?= =?UTF-8?q?=E3=83=AB=E3=82=92=E3=82=A2=E3=83=83=E3=83=97=E3=83=AD=E3=83=BC?= =?UTF-8?q?=E3=83=89=E3=81=8A=E3=82=88=E3=81=B3=E8=A8=AD=E5=AE=9A=E3=81=A7?= =?UTF-8?q?=E3=81=8D=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/frontend/src/pages/avatar-decorations.vue | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/frontend/src/pages/avatar-decorations.vue b/packages/frontend/src/pages/avatar-decorations.vue index 715f2344932f..291b1c8d40dc 100644 --- a/packages/frontend/src/pages/avatar-decorations.vue +++ b/packages/frontend/src/pages/avatar-decorations.vue @@ -13,6 +13,7 @@ SPDX-License-Identifier: AGPL-3.0-only
+ {{ i18n.ts.selectFile }} @@ -38,9 +39,7 @@ import { } from 'vue'; import MkButton from '@/components/MkButton.vue'; import MkInput from '@/components/MkInput.vue'; import MkTextarea from '@/components/MkTextarea.vue'; -import MkSwitch from '@/components/MkSwitch.vue'; -import MkRadios from '@/components/MkRadios.vue'; -import MkInfo from '@/components/MkInfo.vue'; +import { selectFile } from '@/scripts/select-file.js'; import * as os from '@/os.js'; import { i18n } from '@/i18n.js'; import { definePageMetadata } from '@/scripts/page-metadata.js'; @@ -48,6 +47,13 @@ import MkFolder from '@/components/MkFolder.vue'; let avatarDecorations: any[] = $ref([]); +async function selectImage(decoration, ev) { + const file = await selectFile(ev.currentTarget ?? ev.target, null); + const candidate = file.name.replace(/\.(.+)$/, ''); + decoration.name = candidate; + decoration.url = file.url; +} + function add() { avatarDecorations.unshift({ _id: Math.random().toString(36), From 1c1259493d3b7f1413067e210851b147e9f56bf4 Mon Sep 17 00:00:00 2001 From: yukineko <27853966+hideki0403@users.noreply.github.com> Date: Mon, 20 Nov 2023 18:03:05 +0900 Subject: [PATCH 2/9] update: CHANGELOG.md --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0bdbb2aade36..3c364ef98825 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,7 +19,8 @@ - Feat: モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能を追加 (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/e0eb5a752f6e5616d6312bb7c9790302f9dbff83) ### Client -- fix: 「設定のバックアップ」で一部の項目がバックアップに含まれていなかった問題を修正 +- Feat: コントロールパネルのアイコンデコレーションページから直接ファイルをアップロードおよび設定できるように +- Fix: 「設定のバックアップ」で一部の項目がバックアップに含まれていなかった問題を修正 ### Server - From 625e1054db84591e7407985e06ebfaed159409f9 Mon Sep 17 00:00:00 2001 From: yukineko <27853966+hideki0403@users.noreply.github.com> Date: Mon, 20 Nov 2023 18:10:40 +0900 Subject: [PATCH 3/9] =?UTF-8?q?refactor:=20=E4=B8=8D=E8=A6=81=E3=81=AA?= =?UTF-8?q?=E5=AE=9A=E7=BE=A9=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/frontend/src/pages/avatar-decorations.vue | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/frontend/src/pages/avatar-decorations.vue b/packages/frontend/src/pages/avatar-decorations.vue index 291b1c8d40dc..046d74a7397b 100644 --- a/packages/frontend/src/pages/avatar-decorations.vue +++ b/packages/frontend/src/pages/avatar-decorations.vue @@ -49,8 +49,7 @@ let avatarDecorations: any[] = $ref([]); async function selectImage(decoration, ev) { const file = await selectFile(ev.currentTarget ?? ev.target, null); - const candidate = file.name.replace(/\.(.+)$/, ''); - decoration.name = candidate; + decoration.name = file.name.replace(/\.(.+)$/, ''); decoration.url = file.url; } From 03d1c493a2d1b030aef11528a4e71a7b4f8ce6d0 Mon Sep 17 00:00:00 2001 From: yukineko <27853966+hideki0403@users.noreply.github.com> Date: Thu, 18 Apr 2024 19:46:00 +0900 Subject: [PATCH 4/9] =?UTF-8?q?feat:=20=E4=B8=8B=E6=9B=B8=E3=81=8D?= =?UTF-8?q?=E6=A9=9F=E8=83=BD=20(#144)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add: 下書きに関する関数等の切り離し * feat: 下書きピッカーを実装 * refactor: indexedDbに移行 * change: uniqueIdの指定を必須に * fix: マイグレーションが正常に行えない問題を修正 * enhance: 下書きピッカーを改善 * feat: 投稿フォームに下書きを適用できるように * feat: 下書きを自動保存するかどうかを設定できるように * feat: 「下書きとして保存」ボタンを実装 * enhance: 既に入力されている内容がある場合に上書き警告を出すように * add: 翻訳を追加 --- locales/index.d.ts | 26 ++ locales/ja-JP.yml | 10 +- .../frontend/src/components/MkPostForm.vue | 296 +++++++++++------- .../src/components/MkPostFormDialog.vue | 1 + .../src/components/MkPostFormDrafts.vue | 155 +++++++++ .../frontend/src/pages/settings/post-form.vue | 7 + packages/frontend/src/scripts/note-drafts.ts | 99 ++++++ packages/frontend/src/scripts/post-form.ts | 4 + packages/frontend/src/store.ts | 4 + 9 files changed, 485 insertions(+), 117 deletions(-) create mode 100644 packages/frontend/src/components/MkPostFormDrafts.vue create mode 100644 packages/frontend/src/scripts/note-drafts.ts diff --git a/locales/index.d.ts b/locales/index.d.ts index 0cef75506fb9..5e8d32cea23b 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -5316,6 +5316,22 @@ export interface Locale extends ILocale { * リアクションをホバーした際のユーザー一覧と、ノート詳細ページのリアクションタブにあるリアクションをしたユーザー一覧を非表示にします */ "hideReactionUsersDescription": string; + /** + * 下書き + */ + "drafts": string; + /** + * 下書きの保存に関する動作 + */ + "draftSavingBehavior": string; + /** + * 下書きとして保存 + */ + "saveAsDraft": string; + /** + * 下書きを適用すると現在入力されている内容はリセットされます。よろしいですか? + */ + "draftOverwriteConfirm": string; "_bubbleGame": { /** * 遊び方 @@ -10310,6 +10326,16 @@ export interface Locale extends ILocale { */ "all": string; }; + "_draftSavingBehavior": { + /** + * 自動的に保存する + */ + "auto": string; + /** + * 都度確認する + */ + "manual": string; + }; } declare const locales: { [lang: string]: Locale; diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 699ba9c7446c..06a2822f5500 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -1323,8 +1323,12 @@ postFormBottomSettingsDescription: "投稿フォームの下部に表示され clearPost: "投稿フォームをリセット" addToEmojiPicker: "絵文字ピッカーに追加" hideReactionCount: "リアクション数の非表示" -hideReactionUsers: 誰がリアクションをしたのかを非表示にする +hideReactionUsers: "誰がリアクションをしたのかを非表示にする" hideReactionUsersDescription: "リアクションをホバーした際のユーザー一覧と、ノート詳細ページのリアクションタブにあるリアクションをしたユーザー一覧を非表示にします" +drafts: "下書き" +draftSavingBehavior: "下書きの保存に関する動作" +saveAsDraft: "下書きとして保存" +draftOverwriteConfirm: "下書きを適用すると現在入力されている内容はリセットされます。よろしいですか?" _bubbleGame: howToPlay: "遊び方" @@ -2747,3 +2751,7 @@ _hideReactionCount: self: "自分のノートのみ" others: "自分以外のノートのみ" all: "全てのノート" + +_draftSavingBehavior: + auto: "自動的に保存する" + manual: "都度確認する" diff --git a/packages/frontend/src/components/MkPostForm.vue b/packages/frontend/src/components/MkPostForm.vue index da11a33e755f..5f7f30f4e675 100644 --- a/packages/frontend/src/components/MkPostForm.vue +++ b/packages/frontend/src/components/MkPostForm.vue @@ -32,6 +32,7 @@ SPDX-License-Identifier: AGPL-3.0-only {{ channel.name }} +
{{ i18n.ts.postFormBottomSettingsDescription }}
+ + + + + {{ i18n.ts.disableNoteDrafting }} @@ -37,6 +42,7 @@ import { computed, defineAsyncComponent, ref } from 'vue'; import MkButton from '@/components/MkButton.vue'; import MkSwitch from '@/components/MkSwitch.vue'; +import MkSelect from '@/components/MkSelect.vue'; import FormSlot from '@/components/form/slot.vue'; import MkContainer from '@/components/MkContainer.vue'; import { bottomItemDef } from '@/scripts/post-form.js'; @@ -46,6 +52,7 @@ import { i18n } from '@/i18n.js'; import { definePageMetadata } from '@/scripts/page-metadata.js'; const disableNoteDrafting = computed(defaultStore.makeGetterSetter('disableNoteDrafting')); +const draftSavingBehavior = computed(defaultStore.makeGetterSetter('draftSavingBehavior')); const Sortable = defineAsyncComponent(() => import('vuedraggable').then(x => x.default)); diff --git a/packages/frontend/src/scripts/note-drafts.ts b/packages/frontend/src/scripts/note-drafts.ts new file mode 100644 index 000000000000..67abc004a3ca --- /dev/null +++ b/packages/frontend/src/scripts/note-drafts.ts @@ -0,0 +1,99 @@ +import * as Misskey from 'misskey-js'; +import type { PollEditorModelValue } from '@/components/MkPollEditor.vue'; +import type { DeleteScheduleEditorModelValue } from '@/components/MkDeleteScheduleEditor.vue'; +import { miLocalStorage } from '@/local-storage.js'; +import { get as idbGet, set as idbSet } from '@/scripts/idb-proxy.js'; + +export type NoteDraft = { + updatedAt: Date; + type: keyof NoteKeys; + uniqueId: string; + auxId: string | null; + data: { + text: string; + useCw: boolean; + cw: string | null; + visibility: (typeof Misskey.noteVisibilities)[number]; + localOnly: boolean; + files: Misskey.entities.DriveFile[]; + poll: PollEditorModelValue | null; + scheduledNoteDelete: DeleteScheduleEditorModelValue | null; + }; +}; + +type NoteKeys = { + note: () => unknown, + reply: (replyId: string) => unknown, + quote: (renoteId: string) => unknown, + channel: (channelId: string) => unknown, +} + +export async function migrate(userId: string) { + const raw = miLocalStorage.getItem('drafts'); + if (!raw) return; + + const drafts = JSON.parse(raw) as Record; + const keys = Object.keys(drafts); + const newDrafts: Record = {}; + + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + const [type, id] = key.split(':'); + if (type === 'note' && id !== userId) continue; + const keyType = type === 'renote' ? 'quote' : type as keyof NoteKeys; + const keyId = type === 'note' ? null : id; + const uniqueId = Date.now().toString() + i.toString(); + const newKey = getKey(keyType, uniqueId, keyId as string); + newDrafts[newKey] = { + ...drafts[key], + uniqueId, + type: keyType, + auxId: keyId, + }; + delete drafts[key]; + } + + if (Object.keys(newDrafts).length === 0) return; + await idbSet(`drafts::${userId}`, newDrafts); + miLocalStorage.setItem('drafts', JSON.stringify(drafts)); +} + +function getKey(type: T, uniqueId: string, ...args: Parameters) { + let key = `${type}:${uniqueId}`; + for (const arg of args) { + if (arg != null) key += `:${arg}`; + } + return key; +} + +export async function getAll(userId: string) { + const drafts = await idbGet(`drafts::${userId}`); + return (drafts ?? {}) as Record; +} + +export async function get(type: T, userId: string, uniqueId: string, ...args: Parameters) { + const key = getKey(type, uniqueId, ...args); + const draft = await getAll(userId); + return draft[key] ?? null; +} + +export async function set(type: T, userId: string, uniqueId: string, draft: NoteDraft['data'], ...args: Parameters) { + const drafts = await getAll(userId); + const key = getKey(type, uniqueId, ...args); + drafts[key] = { + updatedAt: new Date(), + type, + uniqueId, + auxId: args[0] ?? null, + data: JSON.parse(JSON.stringify(draft)) as NoteDraft['data'], + }; + console.log(drafts); + await idbSet(`drafts::${userId}`, drafts); +} + +export async function remove(type: T, userId: string, uniqueId: string, ...args: Parameters) { + const drafts = await getAll(userId); + const key = getKey(type, uniqueId, ...args); + delete drafts[key]; + await idbSet(`drafts::${userId}`, drafts); +} diff --git a/packages/frontend/src/scripts/post-form.ts b/packages/frontend/src/scripts/post-form.ts index 1d998aca65a7..40c63acb393d 100644 --- a/packages/frontend/src/scripts/post-form.ts +++ b/packages/frontend/src/scripts/post-form.ts @@ -41,4 +41,8 @@ export const bottomItemDef = { title: i18n.ts.clearPost, icon: 'ti-trash', }, + saveAsDraft: { + title: i18n.ts.saveAsDraft, + icon: 'ti-note', + }, }; diff --git a/packages/frontend/src/store.ts b/packages/frontend/src/store.ts index 6f46b5611226..348e4fc23039 100644 --- a/packages/frontend/src/store.ts +++ b/packages/frontend/src/store.ts @@ -101,6 +101,10 @@ export const defaultStore = markRaw(new Storage('base', { where: 'account', default: false, }, + draftSavingBehavior: { + where: 'account', + default: 'auto' as 'auto' | 'manual', + }, rememberNoteVisibility: { where: 'account', default: false, From fa35be70be68ab02f766840325c3c1147936de99 Mon Sep 17 00:00:00 2001 From: yukineko <27853966+hideki0403@users.noreply.github.com> Date: Thu, 18 Apr 2024 19:50:58 +0900 Subject: [PATCH 5/9] =?UTF-8?q?fix:=20=E7=A6=85=E3=83=A2=E3=83=BC=E3=83=89?= =?UTF-8?q?=E6=99=82=E3=81=AB=E3=83=A1=E3=83=8B=E3=83=A5=E3=83=BC=E3=83=90?= =?UTF-8?q?=E3=83=BC=E3=81=AB=E3=83=9B=E3=83=BC=E3=83=A0=E3=82=A2=E3=82=A4?= =?UTF-8?q?=E3=82=B3=E3=83=B3=E3=81=8C2=E3=81=A4=E8=A1=A8=E7=A4=BA?= =?UTF-8?q?=E3=81=95=E3=82=8C=E3=81=A6=E3=81=97=E3=81=BE=E3=81=86=E5=95=8F?= =?UTF-8?q?=E9=A1=8C=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/frontend/src/ui/universal-zen.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/frontend/src/ui/universal-zen.vue b/packages/frontend/src/ui/universal-zen.vue index 8899544444d3..b17b4b0bf4d7 100644 --- a/packages/frontend/src/ui/universal-zen.vue +++ b/packages/frontend/src/ui/universal-zen.vue @@ -24,7 +24,6 @@ - From 0c2aa715d48644f6dbcb08881845dcabee5f91aa Mon Sep 17 00:00:00 2001 From: yukineko <27853966+hideki0403@users.noreply.github.com> Date: Thu, 18 Apr 2024 20:00:01 +0900 Subject: [PATCH 6/9] =?UTF-8?q?fix:=20=E4=B8=8B=E6=9B=B8=E3=81=8D=E9=81=A9?= =?UTF-8?q?=E7=94=A8=E6=99=82=E3=81=AB=E5=BC=95=E7=94=A8=E3=83=BB=E3=83=AA?= =?UTF-8?q?=E3=83=97=E3=83=A9=E3=82=A4=E3=81=8C=E8=A7=A3=E9=99=A4=E3=81=95?= =?UTF-8?q?=E3=82=8C=E3=81=AA=E3=81=84=E5=95=8F=E9=A1=8C=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/frontend/src/components/MkPostForm.vue | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/frontend/src/components/MkPostForm.vue b/packages/frontend/src/components/MkPostForm.vue index 5f7f30f4e675..e81263a7fdc7 100644 --- a/packages/frontend/src/components/MkPostForm.vue +++ b/packages/frontend/src/components/MkPostForm.vue @@ -777,18 +777,19 @@ function chooseDraft() { async function applyDraft(draft: noteDrafts.NoteDraft, native = false) { if (!native) { + reply.value = undefined; + renote.value = undefined; + switch (draft.type) { case 'quote': { await os.apiWithDialog('notes/show', { noteId: draft.auxId as string }).then(note => { renote.value = note; - reply.value = undefined; }); break; } case 'reply': { await os.apiWithDialog('notes/show', { noteId: draft.auxId as string }).then(note => { reply.value = note; - renote.value = undefined; }); break; } From 891eaaee303095b18de03fc77209d04c89d4c1c8 Mon Sep 17 00:00:00 2001 From: yukineko <27853966+hideki0403@users.noreply.github.com> Date: Thu, 18 Apr 2024 20:28:24 +0900 Subject: [PATCH 7/9] =?UTF-8?q?fix:=20aria-disabled=E3=81=8Ctrue=E3=81=AE?= =?UTF-8?q?=E6=99=82=E3=81=AB=E4=B8=8B=E6=9B=B8=E3=81=8D=E3=81=AE=E5=89=8A?= =?UTF-8?q?=E9=99=A4=E3=81=8C=E5=87=BA=E6=9D=A5=E3=81=AA=E3=81=84=E3=82=88?= =?UTF-8?q?=E3=81=86=E3=81=AB=E8=A6=8B=E3=81=88=E3=81=A6=E3=81=97=E3=81=BE?= =?UTF-8?q?=E3=81=86=E5=95=8F=E9=A1=8C=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/MkPostFormDrafts.vue | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/packages/frontend/src/components/MkPostFormDrafts.vue b/packages/frontend/src/components/MkPostFormDrafts.vue index 27bcbe132452..cefedbafb733 100644 --- a/packages/frontend/src/components/MkPostFormDrafts.vue +++ b/packages/frontend/src/components/MkPostFormDrafts.vue @@ -11,8 +11,8 @@
{{ i18n.ts.loading }}
{{ i18n.ts.nothing }}
-
-
+
+
{{ i18n.ts.quote }}
{{ i18n.ts.reply }}
{{ i18n.ts.channel }}
@@ -99,17 +99,7 @@ onMounted(async () => { .wrapper { display: flex; border-radius: 12px; - background-color: var(--buttonBg); cursor: pointer; - - &:hover:not([aria-disabled="true"]) { - background-color: var(--buttonHoverBg); - } - - &[aria-disabled="true"] { - opacity: 0.5; - cursor: not-allowed; - } } .note { @@ -119,6 +109,16 @@ onMounted(async () => { padding: 10px; gap: 6px; flex-grow: 1; + background-color: var(--buttonBg); + + &:hover:not([aria-disabled="true"]) { + background-color: var(--buttonHoverBg); + } + + &[aria-disabled="true"] { + opacity: 0.5; + cursor: not-allowed; + } } .subtext { @@ -145,6 +145,7 @@ onMounted(async () => { align-items: center; justify-content: center; padding: 16px; + background-color: var(--buttonBg); color: var(--error); &:hover { From 84f379007938c9a81781ceb261cca6454d09e96e Mon Sep 17 00:00:00 2001 From: yukineko <27853966+hideki0403@users.noreply.github.com> Date: Thu, 18 Apr 2024 20:33:24 +0900 Subject: [PATCH 8/9] =?UTF-8?q?docs:=20=E3=83=89=E3=82=AD=E3=83=A5?= =?UTF-8?q?=E3=83=A1=E3=83=B3=E3=83=88=E3=82=92=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG_KAKUREGA.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/CHANGELOG_KAKUREGA.md b/CHANGELOG_KAKUREGA.md index 0c9b225ba8e7..984d352b4418 100644 --- a/CHANGELOG_KAKUREGA.md +++ b/CHANGELOG_KAKUREGA.md @@ -1,3 +1,28 @@ +## 1.36.0 +Release: 2024/04/18 +Base: 2024.3.1 + +### 新機能 +- ノートの下書き機能を強化 + - 投稿フォーム上部にある「下書き」から一覧を表示できるようになりました + ![image](https://media.kakurega.app/static/misskey/1a62c8f0-af85-4dd5-92ea-beca1f4a7b9b.png) + ![image](https://media.kakurega.app/static/misskey/4a420105-fb50-409b-a14c-5e00a551de2e.png) + +- 投稿フォーム下部のボタンに「下書きとして追加」を実装 + - 任意のタイミングで、現在の入力内容を下書きとして保存できるようになりました + - このボタンは 設定 → 全般 → 投稿フォーム から追加できます + ![image](https://media.kakurega.app/static/misskey/766d2296-166a-4478-9442-df0987ad347f.png) + +- 下書きの保存に関する動作を設定できるように + - これまでは全ての下書きが自動的に保存されていましたが、投稿フォームを閉じたタイミングで都度保存するかどうかを確認することができるようになりました + - 設定 → 全般 → 投稿フォーム から設定できます + ![image](https://media.kakurega.app/static/misskey/57cf0a36-cd59-4c6c-a03e-6710d7aea47e.png) + +- 【サーバー管理者向け】アイコンデコレーションページから直接ファイルをアップロードおよび設定できるように + +### 修正 +- 禅モード時にメニューバーにホームアイコンが2つ表示されてしまう問題を修正 + ## 1.35.0 Release: 2024/04/14 Base: 2024.3.1 From 8bafdff0a144e3b635f4a2c79ce3c662a3dff80f Mon Sep 17 00:00:00 2001 From: yukineko <27853966+hideki0403@users.noreply.github.com> Date: Thu, 18 Apr 2024 20:33:41 +0900 Subject: [PATCH 9/9] release: v1.36.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6dd72385b71b..ee3f469cedb4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "2024.3.1-kakurega.1.35.0", + "version": "2024.3.1-kakurega.1.36.0", "codename": "nasubi", "repository": { "type": "git",