Newer
Older
TelosDB / journals / 20260223-0001-ディレクトリ整理とビルド修復.md

作業報告: ディレクトリ構造の大規模整理とTauriビルド(Error 1412)の修復

1. 作業実施の理由と指示

  • 背景: これまでの作業で、srcsrc-tauri などのディレクトリ構造が複雑化しており、またルート直下に public, frontend, scripts, private/tools など、不要なフォルダや散乱したスクリプトが多数存在していた。さらに、その過程でアプリケーションが「Error 1412」を出してクラッシュする状態に陥っていた。
  • 意図と指示: ユーザーより、ルートの雑多なフォルダを機能ごとに整理すること、およびTauriビルド出力(target/ディレクトリ)をルートに再配置したうえで、Error 1412 の解消ならびに正しいビルド通しの確認が求められた。

2. 指摘事項とその対応

  • 指摘: アプリ起動時に「Error 1412: Failed to unregister class Chrome_WidgetWin_0」が発生する。
    • 対応: AIエージェントはログを調査し、Error 1412がWebView2のただの終了症状であり、真の原因はRustバックエンドでのパニック(vec0.dll が見つからないこと)であると特定した。ディレクトリ階層(src-tauri -> src/backend)が変わったことで build.rs 内の Node モジュールの相対パス(../node_modules)がズレていたため、これを ../../node_modules に修正することで解決した。
  • 指摘: LLMモデルなどのファイルが src-tauri/bin/ ごと失われた。
    • 対応: Git管理外 (.gitignore 対象) であったため、整理の過程で一時退避されず削除されたことを報告。現状LLM自動起動はコメントアウトされているため動作に支障はないが、再配置が必要な旨をユーザーに伝達した。
  • 指摘: テストスクリプトもルートに置くべきとの追加要望。
    • 対応: AIエージェントは即座に提案を修正し、scripts/ 内の test_mcp_client.mjs などを新規作成したルート直下の tests/ ディレクトリに移動した。

3. 作業詳細

AIエージェントは以下の作業を実行した:

  • ビルド出力の最適化: src/backend/.cargo/config.toml を作成し、Rustのビルド成果物が d:\develop\TelosDB\target に出力されるよう構成変更。.gitignore のパスも調整した。
  • 不要フォルダの削除: public/、空の frontend/ を削除した。
  • ツール群の集約: Node.jsアプリケーション(gemini-rag-tool)やバッチファイルを tools/ 配下へ統合した。これに伴い、private/scripts/ ディレクトリを削除した。
  • テストの集約: テスト用スクリプトを tests/ に移動した。
  • ドキュメントの整理: document/references/ をそれぞれ docs/specification/ および docs/references/ に移動し、ドキュメント系を統合した。
  • ログの隔離: ルートに散らかっていた log.txt などを logs/ ディレクトリに移動した。

4. AI視点での結果

graph TD
    A[Error 1412 Crash] --> B[Log Analysis]
    B --> C(Identified vec0.dll Missing)
    C --> D[Fix relative path in build.rs]
    D --> E[App Launches Successfully]
    
    F[Messy Root Dir] --> G[Consolidate to func-based folders]
    G --> H[tools/ for scripts]
    G --> I[tests/ for testing code]
    G --> J[docs/ for documentation]
    G --> K[logs/ for logs]

AIエージェントの主導により、ビルドエラーの根本的な原因(パスのズレ)が正しく修正され、アプリが正常に起動することを確認できた。また、ディレクトリ構造が機能・役割ベース(src, tools, tests, docs)で綺麗に再構築され、開発環境としての見通しと保守性が大幅に向上した。一連の変更に伴う内部のパス参照(例:main.mjs の出力先)も漏れなく更新し、完全な状態でタスクを完了した。