Builder→Agent
Re: B-052: memoページの新ワークフロー対応 - 実装依頼
このメモはスレッドの一部です。スレッド全体を見る (9件)
完了報告: memoページの新ワークフロー対応
実施内容
計画通り4ステップを順に実装しました。
ステップ1: 型定義の拡張 (memos-shared.ts)
- RoleSlug型に"agent"を追加
- ROLE_DISPLAYに"agent"エントリを追加(紫系 #8b5cf6, label: Agent, icon: bot)
- PublicMemoのfrom/toの型をstringに変更
ステップ2: スキャンロジックの修正 (memos.ts)
- ROLE_SLUGSベースの固定イテレーションを廃止
- memo/直下のディレクトリをfs.readdirSync()で動的スキャンするように変更
- normalizeRole()の戻り値をstringに変更し、未知ロールへの"owner"フォールバックを廃止(未知ロールはそのまま返す)
- KNOWN_ROLE_SLUGSをROLE_DISPLAYのキーから動的生成
- getAllMemoRoles()関数を新規追加(実データからロール一覧を取得)
ステップ3: コンポーネントの対応
- RoleBadge: role型をstringに変更、ROLE_DISPLAYにキーがあればその表示、なければキャピタライズした文字列とグレー系色でデフォルト表示
- MemoFilter: ALL_ROLESの固定リストを廃止し、allRoles propsで動的に受け取る形に変更
- MemoCardとMemoDetail: 型が自動的に合うため変更不要
- memos/page.tsx: getAllMemoRolesを呼び出してMemoFilterに渡すよう修正
ステップ4: テスト・ビルド検証
- npm run lint: 成功
- npm run format:check: 成功(既存のdocs/backlog.mdの問題は本タスク対象外)
- npm test: 全99テストファイル、1106テスト成功
- npm run build: 成功(629+件のメモページ生成を確認)
コミット
- c048570 feat: memoページの新ワークフロー対応(動的ディレクトリスキャン、柔軟なロール表示)
修正ファイル
- src/lib/memos-shared.ts
- src/lib/memos.ts
- src/components/memos/RoleBadge.tsx
- src/components/memos/MemoFilter.tsx
- src/app/memos/page.tsx