Skip to content

5.8.0#4160

Merged
pooza merged 29 commits intomainfrom
develop
Mar 15, 2026
Merged

5.8.0#4160
pooza merged 29 commits intomainfrom
develop

Conversation

@pooza
Copy link
Owner

@pooza pooza commented Mar 14, 2026

No description provided.

pooza and others added 4 commits March 14, 2026 07:21
state/codeパラメータなしのアクセスは不正リクエストであり
アプリケーション異常ではないため、alertを経由せず400を返す

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@pooza pooza added this to the 5.8.0 milestone Mar 14, 2026
pooza and others added 7 commits March 15, 2026 09:53
curlによる不正アクセス試行(無効トークンでのメディアアップロード等)で
GatewayError 401が発生した際、alertを経由してSentryに通知されていた。
401はアプリケーション異常ではないためalertをスキップする。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
MEMORY.mdの「リモートが正本」ルールが同期手順に反映されておらず、
端末間で前提が共有されないことがあったため明示的に追加。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 5.8.0: セキュリティレビュー対応に絞り軽量化
- 5.9.0: アーキテクチャ整理(#4144, #4146)
- 5.10.0: WebUI拡張(#4117, #4118)
- マイルストーン管理の原則にボリューム考慮の記載を追加

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Gemfileにbundler-audit追加
- bundler_audit:check rakeタスク作成、lint taskに統合
- sinatra CVE-2025-61921 (ReDoS) をignore(rack 3.2問題のため4.1.1固定中)
- CLAUDE.mdにbundler-audit運用ルールを追記

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Sentry.initにbefore_sendコールバックを追加
- 例外メッセージからトークンパターン(20文字以上の英数字列)と
  内部パス(/home/*, /Users/*)をマスク
- スクラビングパターンはconfig/application.yamlの/sentry/scrub_patternsで設定可能
- テスト4件追加

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@pooza pooza marked this pull request as ready for review March 15, 2026 08:58
pooza and others added 17 commits March 15, 2026 18:09
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Mastodon の投稿編集 API(media_attributes によるメディア説明更新等)を
モロヘイヤ経由で利用できるようにする。
既存の POST /api/:version/statuses ルートのみでは PUT リクエストが
405 Method Not Allowed になっていた。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
PUT /api/v1/statuses/:id パススルーを追加
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
投稿本文(status)の事後編集を防ぎつつ、メディア説明(ALT)の
更新のみを許可するフィルタリングを実装。

- コントローラー: params から media_attributes のみ抽出して転送
- media_attributes がない場合は 422 を返す
- nginx: PUT を reject せずモロヘイヤに転送(フィルタリングはアプリ層で実施)
- api.md: エンドポイントの説明を更新

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
デフォルト(Purpose なし)は media_attributes のみ許可。
Purpose: tag で status パラメータも許可(#3877 ハッシュタグ付け替え用)。
不明な Purpose は 422 で拒否。
nginx サンプルから冗長な if ブロックを削除。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
#4162 PUT /api/v1/statuses/:id に X-Mulukhiya-Purpose ヘッダベースの
フィルタリングを導入。media_attributes のみデフォルト許可、
Purpose: tag で本文更新も許可(#3877 対応準備)。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
クライアント(capsicum)からの ALT 編集リクエスト用。
nginx が Purpose ヘッダの有無でルーティングするため、
クライアントは media_update を指定して PUT を送る。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Purpose ヘッダなしの PUT /statuses/:id を 405 で拒否し、
ヘッダありの場合のみモロヘイヤにルーティングする。
if is evil 問題を回避するため map で一括振り分け。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Mastodon の PUT /api/v1/statuses/:id は status パラメータが必須。
media_update 時は fetch_status で元の投稿を取得し、本文(text)を
そのまま再送することで、クライアントに本文編集を許可せずに
media_attributes の更新を実現する。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
GET /api/v1/statuses/:id は text フィールドを返さないため、
/api/v1/statuses/:id/source を使ってソーステキストを取得する。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- nginx の status_put_backend map から Purpose ヘッダ分岐を削除
  (Mastodon ALT 編集は一旦見送りのため不要)
- 5.8.0 をリリース待ち状態に更新、#4162 を予定リストから削除

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@pooza pooza merged commit cd81548 into main Mar 15, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant