コンテンツにスキップ
Vantage
日本語
Esc
navigateopen⌘Jpreview
このページの内容

変更履歴

Vantage のリリースごとの変更点。新しいものが上。まだプロトタイプ(0.x)のため、リリース間で API が変わることがあります。

Vantage のリリースごとの変更点です。新しいものが上に来ます。

v0.5.3

Squadbase の Project Storage をブラウザから扱うための Skill を同梱しました。^0.5.0 を 指定していればそのまま入ります。

追加

  • project-storage skill を同梱しました。 Squadbase の Project Storage(ユーザーが アップロードしたファイル)を、@squadbase/reactuseStorage() でページやコンポーネント から扱う手順書です。ファイル一覧、画像 / 動画 / PDF の埋め込み(短命な URL の取り直しを 含む)、中身の読み取り、アップロードと削除・移動を扱います。

    配置は他の skill と同じで vantage add skill --all(置き場を選ぶなら --dir)。 ライブラリのコードは変わっていないので、アプリ側の変更は要りません。

v0.5.2

再公開でビルドが差し替わったとき、開いたままのタブが古い chunk を取りに行って動かなくなる 不具合の修正です。^0.5.0 を指定していればそのまま入ります。

修正

  • 再公開したあと、開きっぱなしのタブが自動で新しいビルドに追従するようになりました。 公開されたアプリはビルド単位で配信され、HTML は content hash の付いた chunk を指しています。 アプリを再公開すると、開いたままだったタブはもう配信されていない古いハッシュの chunkを 要求してしまい、ページ遷移(dynamic import)が Failed to fetch dynamically imported module で失敗していました ― 画面はエラー表示のまま 止まり、手でリロードするまで戻りません。

    Vite が出す vite:preloadError(と、同じ失敗が未捕捉の Promise リジェクションとして出る 場合)を捕捉して、一度だけページをリロードし、新しいビルドを読み直すようにしました。 リロードは sessionStorage に置いた 10 秒の cooldown で 1 回に制限しているので、chunk が 本当に取得できないとき(オフライン、あるいは配信から消えたビルド)でもリロードループには ならず、2 回目からは従来どおりエラーバウンダリに落ちます。アプリ側の変更は要りません。

v0.5.1

dark: ユーティリティがテーマトークンと同じスイッチに繋がっていなかった不具合の修正です。 ^0.5.0 を指定していればそのまま入ります。

修正

  • dark: が OS の設定ではなく .dark クラスに従うようになりました。 Tailwind の既定の dark:@media (prefers-color-scheme: dark) ですが、Vantage のトークンは祖先の .dark / [data-theme="dark"] でしか切り替わりません。そのため OS がダークのブラウザでは テーマが二つに割れていました ― 背景・文字色のトークンはライトのまま、dark: の付いた クラスだけが全部効いてしまう。白いカードの上で dark:text-slate-100 の文字が消える、 バッジだけ黒地に反転する、といった症状が出ます。

    // 0.5.0: OS がダークだと、白いカードの上でこの文字が見えなくなっていた
    <div className="text-slate-900 dark:text-slate-100">{name}</div>

    theme.cssdark: をトークンと同じクラスに繋ぎ直しました。.dark / [data-theme="dark"] を自分で付けない限り、アプリは常にライトで描かれます (→ UI とテーマ)。OS の設定に追従させていたつもりのアプリは、 ルート要素へ明示的にクラスを付けてください。

  • color-scheme を宣言するようになりました ― スクロールバー、<select> のポップアップ、 オートフィルといったブラウザ側の UI が、アプリはライトなのに OS 設定でダークになる、という ちぐはぐが解消します。

v0.5.0

ブラウザから開発ターミナルへの転送を Vite ネイティブの仕組みに置き換えました。転送される レベルと出力形式が変わる後方互換でない変更を含むため、0.x の方針に従って minor を上げています。

依存を "@squadbase/vantage": "^0.4.0" と書いているアプリには 0.5.0 は入りません。 ^0.5.0 に上げてください。

変更

  • ブラウザ → ターミナルの転送が Vite の server.forwardConsole になりました (→ CLI リファレンス)― 自前のブリッジを置き換えたことで、未捕捉のエラーが ソースマップを解決した位置とコードフレーム付きで出るようになります。

    1:46:34 PM [vite] (client) [Unhandled error] TypeError: rows.map is not a function
     > src/sales/index.tsx:12:18
        12 |    return <ul>{rows.map((r) => <li key={r.id}>{r.name}</li>)}</ul>
           |                     ^
  • 転送するのは warn / error だけになりました ― 描画のたびに走る 1 本の console.log で サーバー自身の出力が埋もれてしまうためです。設定で戻すことはできません。

追加

  • vantage dev --no-overlay ― エラー時にブラウザへ出る全画面のオーバーレイを消します。 スクリーンショットやデモでオーバーレイが邪魔なとき、あるいはエラーの内容がすでにターミナルへ 転送されていて画面側は素の状態を見たいときに使います。既定はオンのままで、--overlay で 明示することもできます。

v0.4.0

明示した --port が厳格になりました。後方互換でない変更を含むため、0.x の方針に従って minor を上げています。

依存を "@squadbase/vantage": "^0.3.0" と書いているアプリには 0.4.0 は入りません。 ^0.4.0 に上げてください。

変更

  • 明示した --port は厳格になりました(→ CLI リファレンス)― --port 3000 と書くのは、リバースプロキシ・コンテナのポートマッピング・OAuth のリダイレクト URI など プロセスの外側との約束があるからで、黙って 3001 で上がるのは復旧ではなく静かな失敗です (「3000 で誰かが listen しているか」だけを見る監視は、誰も到達できないサーバーを「起動成功」と 報告してしまいます)。--port を省いたときは従来どおり次の空きポートへずれるので、複数の プロジェクトを並べて立ち上げる手軽さは変わりません。
  • --port の値が不正なときはエラーになりました ― 整数でない・範囲外・値が無い場合、 これまでは黙って既定値で起動していました。

追加

  • --strict-port--port を省いたときも、既定ポートが取れなければ起動しません。
  • --no-strict-port--port を明示したときも、埋まっていれば次の空きポートへずらします。 0.3.x までの挙動が必要なときに使ってください。

fullstack の vantage preview は Node サーバーを 1 ポートに bind するだけなので以前から常に 厳格で、--no-strict-port は効きません(その旨を表示します)。

v0.3.1

CLI の起動と、開発サーバー・ビルドの立ち上がりを速くしました。挙動を変える意図の変更は 含まれておらず、すべて後方互換です。

速くなったもの

  • check / routes / docs / search / add / doctor が約 3 倍速くなりました (実測 205ms → 65〜75ms)。これらのコマンドは Vite も Tailwind も使わないのに、CLI が 起動時に必ず読み込んでいました。コマンドごとに必要なものだけを読むようにしています。 エージェントや CI が checkroutes を繰り返し叩く場面ほど効きます。
  • vantage dev の起動が速くなりました ― 起動時にプロジェクトを 4 回走査していたのを 1 回にしました(生成も 2 回 → 1 回)。
  • vantage build でクライアントとサーバーを並列に建てるようになりました (server/ があるプロジェクトのみ)。ログは「Building client…」「Building server…」の 2 行から「Building client and server…」の 1 行になります。
  • vantage check が同じファイルを読み直さなくなりました ― ページモジュールは 3 回、 プロジェクトツリーの走査は 2 回行われていました。大きなアプリほど差が出ます。
  • 開発サーバーの無駄な再走査を減らしました ― ディレクトリが作られるたびに全走査して いたのを、ページや API になり得る場所のときだけにしました。
  • 依存のプリバンドルを先に宣言するようになりました ― UI キットが使う依存 (Base UI・ECharts・TanStack Table など)を Vite に先に伝えるので、初めてその コンポーネントを使ったページを開いたときの「依存が見つかった → ページ全体がリロード」が 起きなくなります(npm / yarn のように依存が巻き上げられる構成のとき)。

追加

  • VANTAGE_PROFILE=1(→ CLI リファレンス)― 任意の vantage コマンドの 各フェーズの所要時間を stderr に出します。「遅い」を測ってから直すための計測口です。 stdout には出さないので --json と併用できます。

v0.3.0

ページの置き場所として src/ を認識するようになりました。後方互換でない変更(src/ を持つ プロジェクトの走査範囲)を含むため、0.x の方針に従って minor を上げています。

依存を "@squadbase/vantage": "^0.2.0" と書いているアプリには 0.3.0 は入りません。 ^0.3.0 に上げてください。

変更

  • ページ探索ルートが src/ の有無だけで決まるようになりました (→ ファイルベースルーティング)― <root>/src があればページはその中だけ、 無ければルート直下。設定は無く、検出されるだけです。1 ファイルのアプリは直下のままでよく、 育ったら src/ を作ってまとめて移せます。server/public/ は常にプロジェクトルート 直下で、src/server/ はスキャンされません。
  • styles.css はページと同じ側から読まれますsrc/ があれば src/styles.css
  • vantage add page / add ui / add block の書き込み先もページ探索ルート基準になりました (src/reports/index.tsxsrc/components/ui/data-table.tsx)。
  • クイックモードにページファイルを渡したときの root が、そのファイルから上に辿って最初に package.json があるディレクトリになりました ― vantage ./demo/src/index.tsx の root は ./demo です(これまでは親ディレクトリ固定で ./demo/src になっていました)。

追加

  • SRC_DIR_SPLIT(エラー)src/ があるのにルート直下にページや styles.css が残って いる、または src/server/ がある場合に指摘します。いずれも「置いたのに動かない」形の事故に なるため、警告ではなくエラーです。
  • SUSPICIOUS_ROUTE_DIR(警告)pages/app/utils/ のような足場に見えるディレクトリ から URL が生まれたときに知らせます(pages/report.tsx/pages/report)。ページ走査は除外 リスト方式なので、リストに無い名前は黙って URL になります。走査自体は止めないので、意図して その URL を作っている場合は無視できます。
  • 同梱の AGENTS.md に「ディレクトリ構造」の節が入り、Skill(vantage-app / vantage-add-feature)も追随しました。配置済みの AGENTS.mdvantage upgrade で 同期されます。

v0.2.3

vantage routes を片側だけに絞れるようになり、各ルートの仕様も出せるようになりました。 すべて追加のみで後方互換です。

追加

  • vantage routes--pages / --apis が付きました(→ CLI リファレンス) ― ページ(+ layout / 404 / error)だけ、API ルートだけに絞れます。排他ではないので、両方 付けても、どちらも付けなくても今までどおり全部出ます。
  • --detail で各ルートの静的な仕様を併記します ― ページは definePage の title / navLabel / description とパスパラメータ、API はメソッドごとsearchParams で読むクエリキー・リクエストボディ(json / formData / text。 分割代入していればキーも)・レスポンスの status と content-type とオブジェクトのキー・ HttpError の status とメッセージが並びます。既存 API の呼び方を確かめるのに、 ハンドラを開かずに済みます。
    • --json と併せると、各要素に spec が増えます。既存のキー(route / file / dynamic / params)はそのままなので、今の読み手を壊しません。
    • 取れるのはソースを読んだだけの推定です(check と同じく、アプリのコードを import も 実行もしません)。実行時に組み立てるキーや、ヘルパー関数の中に隠れた入出力は出てきません ― 仕様の下書きであって契約ではありません。

v0.2.2

vantage add skill が配置先を走査するようになり、チャートがスタイルシートの差し替えにも 追従するようになりました。どちらも後方互換です。

変更

  • vantage add skill が配置済みの Skill を探してからコピーします ― プロジェクト内を 走査して <skill>/SKILL.md を探し、既にあればスキップして場所を報告します。ルート直下 でも .claude/skills/ でも .squadbase/skills/ でも同じなので、再実行しても二重に配置 されません。エージェント側が置き場所の候補を覚えておく必要がなくなります。
    • --force見つかった場所をその場で書き換えます(--dir を明示したときは、そちらが 配置先として優先されます)。配置済みコピーの更新に、前回と同じ --dir を思い出す必要は ありません。
    • 名前を省いた vantage add skill は、一覧と配置場所を出すだけの表示コマンドに なりました(何も書き込まず exit 0)。
    • 同梱の AGENTS.md も更新し、置き場所を ls で当てにいく手順を「CLI が探す」に 置き換えました(配置済みの AGENTS.mdvantage upgrade で同期されます)。

修正

  • EChart が CSS の更新に追従しない場合がありました ― トークンの変化を html / body の属性でしか見ていなかったため、注入済みの <style> の 中身だけが差し替わる経路(開発中の styles.css の書き換え、テーマプリセットの適用など)で DOM のトークンは新しいのにチャートだけ前の色のまま残っていました(リロードで直るため 「プリセットが効いていない」と誤解しやすい状態でした)。スタイルシートの差し替えも監視 対象になり、トークンの値が実際に変わったときだけ描き直します。

v0.2.1

チャートをテーマトークンに追従させ、Select の値とラベルの対応を Vantage 側で組むように しました。API はどちらも後方互換です。

変更

  • EChart がテーマトークンに追従するようになりました ― 系列色は --chart-1--chart-5、軸・凡例・ツールチップは文字色と境界色のトークンから 組まれ、ライト / ダークの切り替えにも追いかけます。ECharts が CSS 変数を読めないのは キャンバスの描画中の話なので、init のタイミングでトークンの実値を解決しています。 系列の色だけ変えたいときは option.color で上書きでき、その場合も軸まわりの追従は 残ります。チャート全体を自前のテーマで描きたいときは theme プロップを渡してください (このときトークン追従は完全に無効になります)。
  • Selectitems を書かなくてよくなりました ― Base UI の SelectValue は選択中の value をそのまま描く部品で、値とラベルが違うと トリガーに kanto のような生の値が出ていました。SelectItem から対応表を組む処理を Vantage 側に入れたので、普通に書けばラベルが出ます。明示した items は今までどおり 優先されるので、既存のコードはそのまま動きます(項目を別のコンポーネントが返している 場合は、これまでどおり items を渡してください)。

修正

  • useSearchParam の JSDoc に載せていた SegmentedControl の例が、存在しない onValueChange を渡していました(正しくは onChange)。
  • 同梱の AGENTS.md と Skill を更新しました ― vantage add ui|block でコピーできるのが data-tablesales-overview の 2 つだけであること、モードは server/ の有無で決まり 「SPA から fullstack へ昇格する」手順ではないこと、配置済みの Skill を先に探すこと。 配置済みの AGENTS.mdvantage upgrade で同期されます。

v0.2.0

vantage add skill の配置先を選べるようにし、相対 import の .js 指定子の規約を廃止しました。 後方互換でない変更(既定の配置先)を含むため、0.x の方針に従って minor を上げています。

依存を "@squadbase/vantage": "^0.1.0" と書いているアプリには 0.2.0 は入りません。 ^0.2.0 に上げてください。

変更

  • vantage add skill --dir <path> ― 配置先をコマンドで指定できるようになりました。 パスはプロジェクトルート(--root を尊重)からの相対で解決され、絶対パスも渡せます。 Claude Code に自動認識させたい場合は --dir .claude/skills、他のエージェント向けには そのツールが期待するディレクトリを指定します(→ エージェントと Skills)。
  • 相対 import の .js 指定子の規約を廃止./components/revenue-chart.js のように 拡張子を書く必要はなくなりました(./components/revenue-chart で構いません)。Vantage の コードは常に Vite / tsup を通り、TypeScript も moduleResolution: "Bundler" で解決する ため、Node が生の指定子を読む経路がそもそもありませんでした。既存の .js 付きの import はそのまま動きます ― 書き換えは不要です。

v0.1.1

一覧・URL 状態・API 呼び出しの hook を追加し、開発時の 2 つの不具合を修正しました。 すべて後方互換です。

追加

  • ルーティングの hookuseRoutes() / useCurrentRoute()@squadbase/vantage/router に追加。ファイルベースルーティングの一覧を そのまま受け取り、ナビゲーションを手で二重管理せずに組めます。
  • URL 同期の状態useSearchParam(常に文字列。既定値/null を書くとキーを消す)と、 JSON 値と関数更新に対応した useSearchState<T> を追加。フィルタやタブの状態を URL に置けます。
  • API 呼び出しの hookuseApiQuery / useApiMutation@squadbase/vantage/query に追加。server/api を JSON で呼び、 エラーは HttpErrorApiError(status / body / requestId)に正規化されます。
  • definePagenavLabel ― ナビゲーションに出す表示名を、ページのタイトルと 独立して指定できるフィールドを追加(→ ページとメタデータ)。

修正

  • dev の SPA フォールバック/sales のような URL に直接アクセスすると、Vite が No matching HTML proxy module found のエラーオーバーレイを出していた問題を修正 (ページ自体は描画されていました)。注入スクリプトの id をシェル文書の URL から 導くようにしました。
  • クエリが paused のまま止まる ― ブラウザのオフライン判定が誤って offline を返すと、 失敗したクエリがエラーにならず停止し、ページが読み込み表示から戻らないことがありました。 管理された QueryClientnetworkMode"always" にして解消(自オリジンの API を 叩くダッシュボードでは、この判定に意味がありません)。

v0.1.0

最初のプロトタイプリリース。設定ファイル不要(config-free)な React ダッシュボード フレームワークの土台一式です。

追加

  • config-free な土台 ― Vite 8 の上に構築。アプリ作者が書くのは index.tsx だけで、 ルーティング・React・TanStack Query・Tailwind v4・UI キット・開発サーバー・ オプションの API サーバー・ビルドはすべて Vantage が所有します。
  • ファイルベースルーティング*.tsx(デフォルトエクスポート)がルートに、 _layout.tsx がレイアウトに、_404.tsx / _error.tsx が not-found / error に、 [param].tsx が動的ルートになります(→ ルーティング)。
  • オプションの API サーバーserver/api/** を足すとバックエンドが有効になり、 dev と本番ビルドで同一に動きます(→ API とサーバー)。
  • UI キットとコンポーネント ― Tailwind v4、shadcn/ui(Base UI 版)、その上に組んだ ダッシュボード向けの複合コンポーネント(→ UI とテーマ)。
  • CLIdev / build / preview / check / routes / add / upgrade (→ CLI リファレンス)。
  • 同梱ドキュメントと検索vantage docs がパッケージ同梱のガイドとコンポーネント リファレンスをオフラインで表示し、vantage search が同じ内容を BM25 で検索します。
  • エージェント向けの配布物vantage add agentsAGENTS.md を、 vantage add skill が Claude Code の Agent Skills をアプリへ配置します (→ エージェントと Skills)。

このページは役に立ちましたか?