メインコンテンツへスキップ
AI
TRI+
トライアスロンリザルト分析
選手一覧
フィニッシュタイム計算機
AIコーチの使い方
ログイン
ホーム
changelog
読み込み中...
更新履歴
AI TRI+の更新履歴・リリースノート
v3.5.0
2026-05-13
「トライアスロン リザルト」SEO 強化・OG 画像修正・レース履歴の正しい並び替え
「トライアスロン リザルト」「<大会名> リザルト」をターゲットに /archive、/archive/[event_id]、/archive/[event_id]/[year] のタイトル・description・H1・本文を全面リライト
/archive に CollectionPage + BreadcrumbList、各大会ページに CollectionPage(年度ごとの ItemList 内包)の JSON-LD を追加
全アーカイブ系ルートに hreflang(ja / en / x-default)と keywords メタを付与
/archive にイントロセクション(H2 + 本文)を追加し、フッターにキーワード付きの内部リンクを設置
OG 画像のルート(/opengraph-image)が 404 だった問題を修正(root layout が参照しているのに app/opengraph-image.tsx が存在しなかった)
Next.js 15 の Promise 型 params を await し忘れていた 3 つの OG 画像ルート(/athletes/[name]、/athletes/[name]/[birthYear]、/archive/[event_id])を修正。すべての URL が同一の fallback 画像を返していた
全 OG 画像ルートの params 型注釈を Promise<{ ... }> に揃え、リグレッションを防ぐテスト(2 種類の params で render → 出力が異なることを assert)を追加
選手プロフィールのレース履歴で、同一年内のレースが日付順に並ばないバグを修正(Vietnam 2026 が Colombo 2026 の後ろに表示されていた)。editions.date を SELECT に含めて完全な日付で降順ソート
JTU 系大会の T2 区間ハンドリングを修正:upstream の transition_seconds を最後のセグメントに保存するように変更し、編集ごとに Redis race-data キャッシュを無効化(#98)
BEFORE / AFTER の transition 慣行をカテゴリ単位で検出し、import 時に AFTER に正規化(過去データの T1/T2 がずれていた問題を解決)(#99)
v3.4.0
2026-04-24
AIエージェント対応・名寄せ精度改善・/calculator i18n
AIクローラ(GPTBot / ChatGPT-User / ClaudeBot / PerplexityBot / Google-Extended / CCBot ほか19種)を robots.txt に明示
/.well-known/agents.json(Agents Discovery)、/.well-known/mcp.json(MCP Server Card)、/.well-known/apis.json(APIs.json v0.16)を追加
/llms-full.txt(サイト全体の機械可読インデックス)、/humans.txt を追加
/index.md と /about.md で Markdown 代替コンテンツを配信、Link: rel="alternate" で広報
Link: rel="describedby" と Content-Signals: search=yes, ai-input=yes, ai-train=yes レスポンスヘッダーを公開ページに付与
/archive/{event_id} と /archive/{event_id}/{year} に JSON-LD(SportsEvent + BreadcrumbList)を埋め込み
Romaji ブリッジの誤マージを抑止(姓だけ一致では名寄せしない、名前まで厳密に一致が必要) (#92)
sync 完了後に必ず merge pass を実行(長期間 merge が遅れるケースを防止) (#92 follow-up)
名寄せ処理(Phase 5e canonical birth_year 補正)のトランザクション abort バグを修正(UNIQUE 制約衝突を NOT EXISTS の事前チェックで回避、運用データベースの半壊を防止)
canonical birth_year の大規模クエリを高速化(インポート時の数分短縮)
年齢の記載がないレースでも同一人物を検出する age-group bridge dry-run スクリプトを追加(書き込みなし、TSV 出力)
石丸 / 伸二 ほか、漢字→ローマ字の手動オーバーライドを追加
/calculator の日本語ハードコード文字列を next-intl 化(種目名・ディシプリン見出し・距離ラベル)
距離カテゴリの色とバッジを lib/types/race.ts に集約(chart と archive の色を統一)
Age 列を Age Group(M35-39 形式)に置き換え、エイジグループを動的生成 (#91)
Dead code と未使用 export を削除(knip / depcheck 指摘分)、what-if simulator / estimated-wattage-box を廃止
v3.3.0
2026-04-20
IRONMAN×国内レース自動名寄せ・パフォーマンス改善・日付i18n対応
IRONMANレースと国内レースの選手プロフィールを自動統合(ContactID + ローマ字ブリッジ)
漢字名からローマ字への変換を3層ルックアップで実現(手動オーバーライド → JMnedict辞書89K件 → kuroshiro)
同姓同名の誤マージ防止(姓名両方の一致 + 生年±3年 + ユニークマッチポリシー)
選手検索が吸収済みの名前(漢字・ローマ字)からも検索可能に
マージ済み選手のレース結果重複排除
データインポートのバッチ処理化(エディション100件単位)でメモリ使用量を大幅削減
merge-passスクリプトの全クエリをチャンク化(PostgreSQL共有メモリ制限対応)
PostgreSQL shm-sizeを64MB→2GBに拡張
アーカイブページ・OGP画像の日付表示をi18n対応(?locale=クエリストリング)
選手一覧から不正確な年齢表示を削除
Redisキャッシュ(レースデータ1時間、アーカイブ一覧60秒)によるレスポンス高速化
v3.2.0
2026-04-07
国際化対応・アーカイブページリデザイン・コード品質改善
全パブリックページをnext-intlで国際化(60+ファイル、835+翻訳キー)
英語翻訳を追加: アーカイブ、選手、計算機、About、利用規約、プライバシーポリシー、セキュリティ、404、エラーページ
eslint-plugin-i18nextを導入しハードコード文字列を検出(bun run lint:i18n)
アーカイブページをグリッド/リスト切替・検索機能付きにリデザイン
ページネーションUIを共通CompactPaginationコンポーネントに統一
テーブルセルのパディングをコンパクト化
未使用ファイル44件・未使用依存36件を削除
SQLiteデッドコードを削除、PostgreSQL移行を反映
N+1クエリによるサイト全体の速度低下を修正
bun.lockbのechartsインテグリティチェック失敗を修正
v3.1.0
2026-03-31
PostgreSQL移行・Strava連携・ゼロダウンタイムデプロイ
SQLiteからPostgreSQLに完全移行
Strava連携を実装(OAuth認証、Webhook、アクティビティ同期)
ゼロダウンタイムデータインポート + デプロイ時自動同期
Node.jsを22から24にアップグレード
サイトマップDBクエリの並列化
サイトマップ生成をdata.jsonからPostgreSQLに変更
Webhook ジョブ管理REST APIを実装
ヘルスチェックに最終データリビジョンを含める
アーカイブページ用動的OG画像を追加
sync-dataをバックグラウンド実行しサーバー起動をブロックしないよう修正
X(Twitter)カード用のtwitter:imageメタデータを追加
v3.0.0
2026-03-28
ストレージ再設計・データ正規化・UI大幅改善
TSVパースを廃止し、正規化済みJSON(dist/data.json)→ SQLiteインポートに移行
git submoduleを廃止、ビルド時にGitHubからデータ+画像をダウンロード
種目別偏差値3D散布図を追加(エイジグループ色分け、クリックで選手詳細へ遷移)
パフォーマンス偏差値をレーダーチャートから横棒グラフに変更
タイム分布チャートを総合+エイジグループ統合表示に(パーセンタイルY軸、ドラッグズーム)
順位推移をbump chart風に改善
年代別完走タイム分布を男女並列boxplotに変更
順位詳細にプログレスバーを追加
選手一覧テーブルに居住地列追加、性別をアイコン化(♂/♀)
偏差値推移からDNS/DNF/未完走を除外
T1/T2が0の場合はタイム内訳から非表示に
年齢推定時の注意書きバナーを表示
距離カテゴリ名を統一(SD→スプリント、OD→スタンダード等)
AIモデルをGemini 2.5 Flashに変更(高品質・無料枠大)
ISO 3166-2:JP変換テーブルによる都道府県名表示
天気データをdist/data.jsonからSQLiteに取り込み
選手検索API・選手一覧をSQLite直接クエリに(N+1問題解消)
ページネーションにmeta prev/next追加
フィルタ/ページネートでリロードが発生する問題を修正
api-docsのダークモード対応
i18n対応 - 主要コンポーネントの翻訳キー追加(54キー)
開発環境用docker-compose.yml追加(Redis)
選手プロフィールのリザルト詳細リンクを個人結果ページに変更
v2.8.0
2026-03-27
フロントエンドデザイン刷新・SEO改善・開発基盤強化
大会アーカイブページをエディトリアル風にリデザイン(年度別巨大タイポ、フィルターUI)
選手一覧ページをリスト形式に変更(年齢表示、性別/年齢カテゴリフィルター追加)
選手詳細ページのタブ削除(全レースをインライン表示)、プロフィールヘッダー軽量化
AIコーチページを1ファイルに統合、テーマ対応
API DocsのRedocダークモード対応、クライアントコンポーネント化
レースカードのデザイン刷新(左ボーダー色分けタイム、順位大表示)
レース履歴の選手検索バグと入力率100%超過を修正 (#76)
計算機のやる気・暑熱馴化・血中アルコール係数が結果に反映されない問題を修正
選手詳細の年齢をレース当時ではなく現在の満年齢に修正
全主要ページにcanonicalタグ・構造化データ(WebSite/Organization)追加
サイトマップにai-coach/changelog/api-docsページ追加
husky + biomeによるpre-commit lint、pre-pushテスト自動化
prettierからbiomeに移行
middleware.tsをNext.js 16のproxy規約に移行
Dockerfileをnode:22-alpineベースに統一(better-sqlite3互換性修正)
v2.6.1
2026-03-16
定数リファクタリング
重複していたトレーニング定数を統合構造に整理
ai-coach/page.tsxを566行から67行に分割(6つのコンポーネントに分離)
API共通ミドルウェア(認証ラッパー、レスポンス標準化、バリデーション)を追加
TypeScript ESLint、AI SDK、Stripeなど25パッケージを更新
v2.7.0
2026-03-26
選手識別改善・更新履歴ページ・各種バグ修正
選手を名前+生年で識別し同姓同名データの混在を修正
更新履歴ページを追加しフッターにリンクを設置
Stripe Checkoutに7日間無料トライアルを設定
Cloudflare CDNキャッシュパージスクリプトを追加
サーバーサイドのデータ取得をファイルシステム直接読み込みに変更
race slugの不整合修正
Dockerfileのbunバージョンを1.2に更新
コード重複除去と品質改善
v2.5.0
2025-07-04
サブスクリプション機能・AIトレーニングプラン
Stripeによるサブスクリプション機能を実装
AIトレーニングプラン機能を追加
AIチャット機能を追加
お気に入り選手機能を追加
選手プロフィール表示を追加
年代別パート順位を追加
モバイルランキングチャートの横スクロール修正
v2.4.12
2025-06-14
キャッシュベースAIインサイト表示
キャッシュベースの条件付きAIインサイト表示を実装
v2.4.10
2025-06-13
UI刷新・基盤整備
shadcn-uiに移行(daisyuiから)
選手一覧の表示順を年齢が若い順に変更
キャッシュ戦略を改善
PWA機能を削除
Claude Code GitHub Workflowを追加
v2.3.0
2025-06-13
レースマスターリファクタリング
レースデータ構造の正規化
OGP画像の改善
リザルトデータの公開URLパス
v2.2.0
2025-06-11
キャッシュ改善とCI/CD
Claude Code GitHub Actionsワークフロー
キャッシュTTLを24時間に延長
キャッシュ戦略の改善
v2.1.0
2025-06-10
天草&データ拡充
天草トライアスロン2024データ追加
天候データ更新
福山、長良川大会データ追加
v2.0.0
2025-07-03
サブスクリプション機能
Stripeサブスクリプション(月額/年額プラン)
AIトレーニングプラン生成
AIチャットによるパーソナライズドコーチング
お気に入り選手機能
選手プロフィール表示
年代別パート順位
v1.15.0
2025-06-08
さいのくにとリファクタリング
さいのくにトライアスロンデータ追加
Claude 4による大規模リファクタリング
パンくずナビゲーション
v1.14.0
2025-06-02
データ正規化
レース情報をJSONファイルに分離
大阪、館山の大会データ追加
v1.13.0
2025-05-25
選手ページ拡充
横浜2025、新島2022-2023データ追加
選手詳細ページ改善
選手ページ用OGP画像
v1.12.0
2025-05-08
認証機能
Auth0認証連携
ユーザーダッシュボード
選手一覧・詳細ページ
v1.11.0
2025-05-07
横浜大会過去データ
横浜トライアスロンデータ追加: 2011-2018年
Google Tag Manager連携
v1.10.0
2025-05-06
UI刷新
daisyUIからshadcn-uiに移行
UI全面刷新
v1.9.0
2025-05-05
推定ワット数
スイム・バイク・ランの推定ワット数表示
レスポンシブ対応チャート
レース距離フィルター
v1.8.0
2025-05-03
フィニッシュタイム計算機
フィニッシュタイム計算機
横浜2024データ追加
過去データ(2021-2023)追加
v1.7.0
2025-05-02
偏差値・統計機能
パフォーマンス偏差値
年代別内訳表示
スプリントディスタンス対応
v1.6.0
2025-04-30
複数大会対応
複数大会・年度の対応
レースマスターデータの抽象化
天候データ連携
v1.5.0
2025-04-24
ダークモード対応
ダークモード完全対応
フッターにテーマ切り替えボタン
v1.4.0
2025-04-24
OGP画像とSEO対策
OpenGraph画像生成
robots.txtとサイトマップ
SEOメタデータの最適化
v1.3.0
2025-04-23
AIコーチ機能
AIコーチ分析機能を追加
AIによるレースレビューとトレーニング提案
Upstash RedisによるAIレスポンスキャッシュ
v1.2.0
2025-04-22
ランキングと分析
Google Analytics連携
ランキングの性別内訳表示
DSQ選手の除外処理
v1.1.0
2025-04-21
UIフレームワーク導入
daisyUIコンポーネントライブラリを導入
リザルト表示のUI改善
v1.0.0
2025-04-21
初回リリース
トライアスロンリザルト分析アプリケーション公開
宮古島トライアスロンの結果データをTSVから解析
チェックポイントごとの順位推移チャート