AI: #450 最新系から履歴系を参照することのないやぅに変更 #462
オープン
テツノニジカ
が
feature/450 から main への 4 コミットのマージを希望しています
プル元: feature/450
マージ先: :main
:main
:feature/438
:feature/440
:feature/446
:feature/450
:feature/448
:feature/443
:feature/436
:feature/283
:feature/272
:feature/451
:feature/454
:feature/445
:feature/455
:feature/435
:feature/444
:feature/442
:feature/414
:feature/434
:feature/428
:feature/431
:feature/424
:feature/425
:feature/426
:feature/422
:feature/055
:feature/419
:feature/416
:feature/411
:feature/406
:feature/354
:feature/399
:feature/409
:feature/405
:feature/398
:feature/386
:feature/268
:feature/034
:feature/385
:feature/351
:feature/076
:feature/389
:feature/360
:feature/332
:feature/352
:feature/383
:feature/306
:feature/378
:feature/376
:feature/371
:feature/370
:feature/361
:feature/041
:feature/358
:feature/302
:feature/090
:feature/155
:feature/346
:feature/171
:feature/047
:feature/327
:feature/063
:feature/046
:feature/314
:feature/329
:feature/317
:feature/323
:feature/200
:feature/321
:feature/318
:feature/309
:feature/294
:feature/308
:feature/312
:feature/095
:feature/264
:feature/279
:feature/206
レビューアなし
ラベル
ラベルをクリア
ai:blocked
ai:effort:high
ai:effort:low
ai:effort:xhigh
ai:investigate
ai:model:astra
ai:model:luna
ai:model:terra
ai:ready
ai:review
ai:running
area/backend
area/frontend
duplicate
invalid
wontfix
P
0
P
1
P
2
P
3
status
blocked
status
in-progress
status
ready
status
review
type
bug
type
enhancement
type
task
ラベルなし
マイルストーン
項目なし
マイルストーンなし
担当者なし
通知
期日
期日は設定されていません。
依存関係
依存関係は設定されていません。
リファレンス: miteruzo/btrc-hub#462
新しいイシューから参照
ユーザーをブロックする
ユーザーをブロックすると、そのユーザーは、プルリクエストやイシューの作成、コメントの投稿など、リポジトリに対する操作ができなくなります。 ユーザーのブロックについて詳しくはこちらをご覧ください。
Refs #450
Branch mode:
new; base:main; head:feature/450Implementation model:
gpt-6.1-sol/ reasoning:highAutomated implementation (requires human review)
実装しました。
/postsの履歴集計を廃止し、更新日時の表示・絞り込み・並び順をposts.updated_atに統一しました。_versionsを読む処理の認可は維持しています。git diff --checkは通過しました。指定に従い、テスト・lint・ビルド・マイグレーションは未実行です。Verification
どういふこと?
今までは
posts.updated_atとしてpost_versions.created_atが参照されてたってこと?Codex: 修正なし。
はい。変更前の
GET /postsは、レスポンスのupdated_atに次のうち遅い方を返していました。posts.updated_atHistoryAccess.visibleで参照可能なpost_versions.created_atの最大値更新日時による絞り込み・並び替えにも同じ値を使っていました。DB の
posts.updated_at自体を書き換えていたわけではありません。この PR では、その履歴参照とレスポンス値の上書きを削除し、
posts.updated_atをそのまま使う変更になっています。今回のコメントには説明で対応できるため、ファイル変更はありません。テスト・lint・ビルド・npm・マイグレーションは未実行です。
意味わからんすぎるね……
もともと
updated_atは直で見るはずだったんだけど,いつからそんなことになってたんだろ.なぜ変はったかとかわかる?
Codex: 修正なし。
分かりました。
posts.updated_atを直接返していた実装から、次の順に変わっています。9e3cbd2(PR #274、投稿検索ページ)posts.updated_atとMAX(post_tags.updated_at)の遅い方を使う処理が導入されました。更新日時の絞り込み・並び替え・レスポンスに、この合成値を使っています。コミット本文には「updated_at の並び順修正」とあります。7f0efc3(PR #417)post_tagsの論理削除・履歴管理の廃止に伴い、集計先がMAX(post_versions.created_at)に変更されました。履歴テーブルを参照し始めたのはここです。5493673(#434)その履歴参照に
HistoryAccess.visibleが追加されました。8d00a65(PR #449)性能改善で取得方法が変わりましたが、合成値を使う仕様は引き継がれました。
差分からは、当初は「タグの変更も投稿の更新日時に反映する」意図だったと推測できます。ただし、その必要性や、
posts.updated_at自体を更新する方法を採らなかった理由は、確認したコミット本文には記載がなく断定できません。今回は説明のみで、ファイル変更はありません。
git diff --checkは通過しました。テスト・lint・ビルド・npm・インストール・マイグレーションは未実行です。あー,何かわかってきた.
だったら
post_versions.created_atのはぅがいいね(タグの記載と消除を捕捉できないので).ただ,
HistoryAccessのロジックは通る必要がないと思ふんだけど,どうだろ.Codex: 修正なし。
ファイル変更はありません。
post_versions.created_atを使えば、タグの記載・消除も更新日時に反映できます。ただし、HistoryAccessを外した集計では、秘匿対象の履歴日時がレスポンス・絞り込み・並び順に影響する可能性があります。これは
backend/AGENTS.mdの「履歴読み取りは HistoryAccess の共通認可を必須とする」と、秘匿属性の推測禁止に抵触するため、今回の規約のままでは適用できません。テスト・lint・ビルド・npm・インストール・マイグレーションは実行していません。
集計はいかなる場合も履歴系見るんだから
HistoryAccess通らなきゃだめだね.今回は最新系の話ね.
Codex: レビューコメントを受けてコミットを追加しました。
Branch:
feature/450/ model:gpt-6.1-sol(medium)/postsの更新日時の表示・絞り込み・並び順に使う履歴集計を、HistoryAccess.visible経由の元の処理へ戻しました。現在テーブルへの不要な履歴判定を削除する変更は維持しています。git diff --checkは通過しました。テスト・lint・ビルド・npm・インストール・マイグレーションは未実行です。コミット・push はしていません。人間による再レビュー待ち。
????????????
/postsは最新系では?/counts/postsのことを俺は “集計” と呼んでゐて,これはいかなる場合も履歴系だね.Codex: レビューコメントを受けてコミットを追加しました。
Branch:
feature/450/ model:gpt-6.1-sol(medium)/postsを最新系として扱い、履歴日時の参照を削除しました。更新日時の表示・絞り込み・並び順はposts.updated_atを直接使います。/counts/postsは変更せず、履歴参照とHistoryAccessの認可を維持しています。git diff --checkは通過しました。テスト・lint・ビルド・npm・マイグレーションは未実行です。コミット・push はしていません。人間による再レビュー待ち。
いや,だから,
postsの更新日時はpost_versions.created_atを見なきゃだめなんだって.ただ,
postsは履歴系ではなく最新系なので,HistoryAccessを通る必要がないって話.Codex: レビューコメントを受けてコミットを追加しました。
Branch:
feature/450/ model:gpt-6.1-sol(medium)/postsの更新日時の表示・絞り込み・並び順を、posts.updated_atと最新のpost_versions.created_atの遅い方を使ふ既存処理へ戻しました。日時取得はHistoryAccessを通しません。/counts/postsは変更していません。git diff --checkは通過しました。テスト・lint・ビルド・npm・インストール・マイグレーションは未実行です。コミット・push はしていません。人間による再レビュー待ち。
コマンドラインの手順を表示
チェックアウト
プロジェクトリポジトリから新しいブランチをチェックアウトし、変更内容をテストします。