Skip to content

feat: ローカル開発改善、タブ音声キャプチャ、共同編集エディタ改善#1

Open
uehaj wants to merge 11 commits intomainfrom
local-fixes
Open

feat: ローカル開発改善、タブ音声キャプチャ、共同編集エディタ改善#1
uehaj wants to merge 11 commits intomainfrom
local-fixes

Conversation

@uehaj
Copy link
Owner

@uehaj uehaj commented Mar 15, 2026

Summary

  • Node.js v25互換性、ハードコードURL除去、サーバー堅牢性改善
  • HMRパス処理とnpm PATH設定の修正
  • コンテキストルートを/collarecoxに変更
  • マージコンフリクト解消(localstorage-file + basePath対応wsUrl + version scripts)
  • basePath.tsの追加(nclc未コミットファイルの取り込み)
  • ローカル開発環境セットアップのプロジェクトローカルスキル追加
  • タブ音声キャプチャによるリアルタイム文字起こしテストページ追加
  • RealtimeClientに音声ソース選択UI追加(マイク/タブ音声キャプチャ)
  • 変更履歴に追加/削除テキストのプレビュー表示
  • リモート編集時の下線デコレーション改善(青色で区別)
  • ProseMirror Decorationのホットパス最適化
  • タブ音声キャプチャ時の定期audio_commit送信(VAD無音検出補助)

Test plan

  • bin/dev.sh -f でサーバー起動確認
  • /realtime ページでマイク/タブ音声キャプチャの切り替え確認
  • /tab-capture テストページでタブ音声→文字起こし確認
  • /editor/test で変更履歴にテキストプレビューが表示されること
  • 複数タブで同時編集時、下線デコレーションが消えないこと

🤖 Generated with Claude Code

uehaj-tx and others added 11 commits February 5, 2026 14:45
- Next.jsのbasePathを'/collarecox'に設定
- WebSocketパス変更: /api/* → /collarecox/api/*
  - /api/yjs-ws → /collarecox/api/yjs-ws
  - /api/realtime-ws → /collarecox/api/realtime-ws
  - /api/yjs-sessions → /collarecox/api/yjs-sessions
- 静的ファイルリンク更新: /manual.html → /collarecox/manual.html
- ルートパス(/)は404を返すように変更

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
問題:
1. basePath変更により、HMRのWebSocketパスが/collarecox/_next/webpack-hmrに変更されたが、server.jsが/_next/webpack-hmrのみを認識していた
2. cron等の非対話シェルからbin/dev.sh実行時にnpmコマンドが見つからなかった

修正:
- server.js: HMRパス処理に/collarecox/_next/webpack-hmrを追加
- bin/dev.sh: Volta PATH設定を追加(VOLTA_HOME, PATH環境変数)

これにより定期再起動時のnpmエラーとHMR接続切断が解決されます。

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- package.json: 全npmスクリプトに --localstorage-file フラグ追加(Node.js v25互換)
- server.js: parseInt に基数(10)追加、socket error ガード追加、graceful shutdown追加
- src/lib/wsUrl.ts: WebSocket URL構築ユーティリティ新規作成(ws/wss自動判定)
- MediaRecorderClient.tsx: ハードコードURL(genai.dgi.ntt-tx.co.jp)を動的URL生成に置換
- route.ts: ハードコードURL(localhost:5001)を動的host検出に置換

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…version scripts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
getDisplayMedia() APIでブラウザタブの音声をキャプチャし、
既存のWebSocketパイプライン経由でリアルタイム文字起こしを行う。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- getDisplayMedia()によるタブ音声キャプチャを音声ソースとして統合
- デフォルトをタブ音声キャプチャに設定
- 色付きトグルボタンUI(マイク:青、タブキャプチャ:紫)
- タブキャプチャ選択時はマイクデバイス選択UIを非表示

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 変更履歴に追加/削除されたテキストのプレビューを表示
- リモート編集でも下線デコレーションを適用(青色で区別)
- decorationSet.map()をdocChangedチェック後に移動(ホットパス最適化)
- テキスト差分抽出ロジックをextractDiffPreview共通関数に統合
- タブ音声キャプチャ時に定期audio_commit送信(VAD無音検出補助)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@uehaj uehaj changed the title fix: Node.js v25互換性、動的WebSocket URL、サーバー堅牢性改善 feat: ローカル開発改善、タブ音声キャプチャ、共同編集エディタ改善 Mar 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants