Merge branch 'develop' into fix/15018-check-local-only

This commit is contained in:
おさむのひと 2024-11-25 08:49:57 +09:00 committed by GitHub
commit 26e0b77d83
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 83 additions and 75 deletions

View file

@ -15,6 +15,8 @@ on:
jobs:
build:
# chromatic is not likely to be available for fork repositories, so we disable for fork repositories.
if: github.repository == 'misskey-dev/misskey'
runs-on: ubuntu-latest
env:

View file

@ -4,12 +4,15 @@
-
### Client
-
- Fix: 画面サイズが変わった際にナビゲーションバーが自動で折りたたまれない問題を修正
- Fix: サーバー情報メニューに区切り線が不足していたのを修正
### Server
- Fix: ユーザーのプロフィール画面をアドレス入力などで直接表示した際に概要タブの描画に失敗する問題の修正( #15032 )
- Fix: 起動前の疎通チェックが機能しなくなっていた問題を修正
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/737)
- Fix: 連合OFFで投稿されたートに対する冗長な処理を抑止 ( #15018 )
## 2024.11.0
### Note

View file

@ -53,4 +53,4 @@ const promises = Array
connectToPostgres()
]);
await Promise.allSettled(promises);
await Promise.all(promises);

View file

@ -28,7 +28,7 @@ export class S3Service {
? `${meta.objectStorageUseSSL ? 'https' : 'http'}://${meta.objectStorageEndpoint}`
: `${meta.objectStorageUseSSL ? 'https' : 'http'}://example.net`; // dummy url to select http(s) agent
const agent = this.httpRequestService.getAgentByUrl(new URL(u), !meta.objectStorageUseProxy);
const agent = this.httpRequestService.getAgentByUrl(new URL(u), !meta.objectStorageUseProxy, true);
const handlerOption: NodeHttpHandlerOptions = {};
if (meta.objectStorageUseSSL) {
handlerOption.httpsAgent = agent as https.Agent;

View file

@ -189,14 +189,12 @@ export class WebAuthnService {
*/
@bindThis
public async verifySignInWithPasskeyAuthentication(context: string, response: AuthenticationResponseJSON): Promise<MiUser['id'] | null> {
const challenge = await this.redisClient.get(`webauthn:challenge:${context}`);
const challenge = await this.redisClient.getdel(`webauthn:challenge:${context}`);
if (!challenge) {
throw new IdentifiableError('2d16e51c-007b-4edd-afd2-f7dd02c947f6', `challenge '${context}' not found`);
}
await this.redisClient.del(`webauthn:challenge:${context}`);
const key = await this.userSecurityKeysRepository.findOneBy({
id: response.id,
});

View file

@ -183,7 +183,7 @@ export function genOpenapiSpec(config: Config, includeSelfRef = false) {
},
...(endpoint.meta.limit ? {
'429': {
description: 'To many requests',
description: 'Too many requests',
content: {
'application/json': {
schema: {

View file

@ -585,7 +585,10 @@ export class ClientServerService {
reply.header('X-Robots-Tag', 'noai');
}
const _user = await this.userEntityService.pack(user);
const _user = await this.userEntityService.pack(user, null, {
schema: 'UserDetailed',
userProfile: profile,
});
return await reply.view('user', {
user, profile, me,

View file

@ -124,7 +124,7 @@ export function openInstanceMenu(ev: MouseEvent) {
});
}
if (!instance.impressumUrl && !instance.tosUrl && !instance.privacyPolicyUrl) {
if (instance.impressumUrl != null || instance.tosUrl != null || instance.privacyPolicyUrl != null) {
menuItems.push({ type: 'divider' });
}

View file

@ -36,7 +36,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</component>
</template>
<div :class="$style.divider"></div>
<MkA v-if="$i.isAdmin || $i.isModerator" v-tooltip.noDelay.right="i18n.ts.controlPanel" :class="$style.item" :activeClass="$style.active" to="/admin">
<MkA v-if="$i != null && ($i.isAdmin || $i.isModerator)" v-tooltip.noDelay.right="i18n.ts.controlPanel" :class="$style.item" :activeClass="$style.active" to="/admin">
<i :class="$style.itemIcon" class="ti ti-dashboard ti-fw"></i><span :class="$style.itemText">{{ i18n.ts.controlPanel }}</span>
</MkA>
<button class="_button" :class="$style.item" @click="more">
@ -48,10 +48,10 @@ SPDX-License-Identifier: AGPL-3.0-only
</MkA>
</div>
<div :class="$style.bottom">
<button v-tooltip.noDelay.right="i18n.ts.note" class="_button" :class="[$style.post]" data-cy-open-post-form @click="os.post">
<button v-tooltip.noDelay.right="i18n.ts.note" class="_button" :class="[$style.post]" data-cy-open-post-form @click="() => { os.post(); }">
<i class="ti ti-pencil ti-fw" :class="$style.postIcon"></i><span :class="$style.postText">{{ i18n.ts.note }}</span>
</button>
<button v-tooltip.noDelay.right="`${i18n.ts.account}: @${$i.username}`" class="_button" :class="[$style.account]" @click="openAccountMenu">
<button v-if="$i != null" v-tooltip.noDelay.right="`${i18n.ts.account}: @${$i.username}`" class="_button" :class="[$style.account]" @click="openAccountMenu">
<MkAvatar :user="$i" :class="$style.avatar"/><MkAcct class="_nowrap" :class="$style.acct" :user="$i"/>
</button>
</div>
@ -83,8 +83,12 @@ import { $i, openAccountMenu as openAccountMenu_ } from '@/account.js';
import { defaultStore } from '@/store.js';
import { i18n } from '@/i18n.js';
import { instance } from '@/instance.js';
import { getHTMLElementOrNull } from '@/scripts/get-dom-node-or-null.js';
const iconOnly = ref(false);
const forceIconOnly = ref(window.innerWidth <= 1279);
const iconOnly = computed(() => {
return forceIconOnly.value || (defaultStore.reactiveState.menuDisplay.value === 'sideIcon');
});
const menu = computed(() => defaultStore.state.menu);
const otherMenuItemIndicated = computed(() => {
@ -95,14 +99,10 @@ const otherMenuItemIndicated = computed(() => {
return false;
});
const forceIconOnly = window.innerWidth <= 1279;
function calcViewState() {
iconOnly.value = forceIconOnly || (defaultStore.state.menuDisplay === 'sideIcon');
forceIconOnly.value = window.innerWidth <= 1279;
}
calcViewState();
window.addEventListener('resize', calcViewState);
watch(defaultStore.reactiveState.menuDisplay, () => {
@ -120,8 +120,10 @@ function openAccountMenu(ev: MouseEvent) {
}
function more(ev: MouseEvent) {
const target = getHTMLElementOrNull(ev.currentTarget ?? ev.target);
if (!target) return;
const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkLaunchPad.vue')), {
src: ev.currentTarget ?? ev.target,
src: target,
}, {
closed: () => dispose(),
});

View file

@ -10593,7 +10593,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -11112,7 +11112,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -11179,7 +11179,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -11573,7 +11573,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -11633,7 +11633,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -11756,7 +11756,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -13351,7 +13351,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -14184,7 +14184,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -14531,7 +14531,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -14656,7 +14656,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -15151,7 +15151,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -15624,7 +15624,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -15684,7 +15684,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -15747,7 +15747,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -15806,7 +15806,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -15866,7 +15866,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -16373,7 +16373,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -16648,7 +16648,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -17908,7 +17908,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -17969,7 +17969,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -18020,7 +18020,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -18071,7 +18071,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -18122,7 +18122,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -18173,7 +18173,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -18224,7 +18224,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -18275,7 +18275,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -18512,7 +18512,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -18572,7 +18572,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -18631,7 +18631,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -18690,7 +18690,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -18749,7 +18749,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -18817,7 +18817,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -18885,7 +18885,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -19877,7 +19877,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -20114,7 +20114,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -20174,7 +20174,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -20544,7 +20544,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -21023,7 +21023,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -21191,7 +21191,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -21688,7 +21688,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -21746,7 +21746,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -21804,7 +21804,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -22464,7 +22464,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -22898,7 +22898,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -23142,7 +23142,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -23278,7 +23278,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -23416,7 +23416,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -23550,7 +23550,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -23882,7 +23882,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -23949,7 +23949,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -24279,7 +24279,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -24829,7 +24829,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -26108,7 +26108,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -27398,7 +27398,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
@ -27512,7 +27512,7 @@ export type operations = {
'application/json': components['schemas']['Error'];
};
};
/** @description To many requests */
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];