2026-11-06|プロフィール全画面保存・公開投稿・管理 Source実装の確認記録
今回の決定:Masterは「Telegramでの実機動作確認以外を完成させる」と指示。①〜⑤をひとつの下書きとして保持し、どのセクションの[保存]からでも全項目をまとめて保存する。画面②・③にも保存を加え、旧③「戻るのみ」をこの要件の範囲で更新。旧原文は履歴として保持する。
Source実装:既存 profileRepository.ts の同一DB保存トランザクションを全画面から共通利用。画像・動画はTelegram側に保持し参照情報だけSQLへ、自己PR本文はDB外永続オブジェクトでSQLへは pr_ref のみ。公開カードは固定7行で①〜⑤、Like/Loveの各3件、PR短縮、画像/動画初期非表示。閲覧者用3ボタン(プロフ、画像/動画、Like/Love)を共通DMへ接続。
公開・編集の境界:検証済みの投稿先選択と公開内容プレビューに対する本人明示確認でのみ公開。公開版のタグ・媒体・PR参照は不変スナップショットとして保持し、非公開保存後も公開元を自動変更しない。公開更新時は元投稿message_idを保持した編集を用い、結果不明時は照合待ちとして自動再投稿しない。本人用マイ投稿で編集・コピー・転送用出力・非公開・削除の操作導線をSource接続し、非公開/削除は再確認を要求。
実証と未検証:Source型チェック、Botビルド、PostgreSQL実DB保存/読戻し・公開スナップショット/更新・模擬Telegramの非公開/削除、DMのボタン回帰が Profile CI 42089747000 SUCCESS、CM CI 42089747162 SUCCESS。実端末/実公開Topicへの送信・公開後同期/削除・Gserver配備/永続ストレージ・Feature Release gate実受入は未確認。CI_TEST_ONLYは使い捨てDB内のみで本番ゲートは閉じている。
参照先:GateApp-Bot Draft PR #11、現行UI契約、GitHub Current Issue #4。他モジュールの検索索引/募集/ROOM参照同期・削除済みアカウント連動はこのCIで合格したと扱わない。
2026-11-06|プロフィール全画面説明文の整合監査・追記
- Masterの「最初から最後まで利用者が迷わない説明」を受け、A05の初回2行入力→ポジション選択→画面A→②容姿/エリア(親・髪型・体型・全国ブロック・子エリア)→③画像・動画/自己PR→④ #Like→⑤ #Love→プレビュー→非公開保存・保存済再開・キャンセルのBot DM各表示を横断確認した。
- 補足説明が不足していた画面に、目的・操作方法・選択状態・解除方法・戻り先・保存の意味・非公開/公開の境界を追記。③の入力メッセージ削除失敗時の手動削除、画像/動画差替・削除、PR全文差替とPR削除、一覧ページ移動も案内。初回入力失敗時には2行入力例、ポジション入力待ちには選択方法を表示。#Likeは自分、#Loveは相手という区別を両画面で保持。
- 画面A 3/3/2、②の確定ボタン配置、③の戻る1個、④⑤の共通辞書・ページ配置・全ページ保存、既存callback/DB/公開資産保護は変更せず、画面本文だけを調整。もともとの「プロフィール公開前プレビュー」「保存だけでは公開されません」の既決文言も回帰テストに合わせて保持。
- Source/CI: Draft PR #11、HEAD
41c7f65f8b46dc18d0d546843fb8b5e14d9a171f。Profile Source/DM/SQL/Build run 42083212443 SUCCESS、CM回帰 run 42083212826 SUCCESS。
- 状態区別:DM画面説明と非公開プロフィール登録のSource/CIのみ検証。公開先Topicへの投稿・本人公開許諾・投稿同期・端末実機E2Eは未検証/未完成であり、Source PASSを投稿機能全体の完成とは宣言しない。過去の本文と実装履歴は削除しない。
2026-11-06|Master確定:プロフィール④ #Like/⑤ #Love 共通実装・全画面保存
- #Likeは「自分についての特徴・好み・趣味・スタイル」、#Loveは「相手に求める特徴・好み・趣味・スタイル」。各カテゴリー親と候補選択画面の双方に用途別の説明文を表示する。
- 両方とも旧04原辞書の6カテゴリー・140候補(11/22/54/25/16/12)を共用する。選択データは同じプロフィールの
profile_tagsでpurpose=likeとpurpose=loveを分離し、互いの選択は変更しない。募集用の目的タグとも分離。
- カテゴリー親のInlineKeyboardは3/3/2(最終行[↩ 戻る][保存])。候補は各ページ最大12件、原順3列中心。末尾の不足数はその行のボタンだけで表示し、ダミー・空白枠を作らない。存在する方向のページ移動ボタンだけ表示し、候補画面に[↩ 戻る][この分類を解除][保存]を置く。全カテゴリー・全ページから非公開保存できる。
- Telegram標準
callback_queryを用途・候補・本人・revisionで識別。共通inlineSelection.tsの複数選択ON/OFF、同一Botメッセージ更新、選択保持、ページ送り、分類解除、再開、旧callback拒否を使用。ボタン幅のCSS/ピクセル制御はできず、行配列による標準描画のみ採用。
- 画面Aの3/3/2および①〜③は変更しない。既存プロフィール保存トランザクションで非公開保存し、旧タグを無断で削除しない。公開・Topic配信・iOS/Android/PC実機検証は別の受入。
- Source実装Owner:GateApp-Bot Draft PR #11、設計・コードの現在根拠:共通UI契約。Source+DM+PostgreSQLテスト+ビルド CI run 42081094263 SUCCESS、既存CM回帰 run 42081094210 SUCCESS。実Telegram/Deploy/公開E2Eは未検証。
旧案の「#Loveは未決定」「#Likeと同一辞書の利用を禁止」は、Masterの最新決定で失効。過去の原文は履歴として保持する。