Claude/check app name t mqpq#54
Open
bassmicrobe wants to merge 36 commits into
Open
Conversation
- READMEを全面的に日本語に翻訳 - オリジナルLESforMacOSのフォークであることを明記 - 元の著作権表示(Lua, Hammerspoon, LESforMacOS authors)を保持 - bassmicrobeのカスタマイズ部分の著作権を追加 - 主な機能一覧、プロジェクト構成、設定項目の説明を追加 - Claude Code開発ワークフローセクションを追加 https://claude.ai/code/session_017dMeoBU7hkkikuskLtEWa1
## 1. LESmain.lua (1908行) を7つのモジュールに分割
- menus/plugin.lua: メニュー構築 (buildPluginMenu, clearcategories等)
- lifecycle/reload.lua: リロード・チート (reloadLES, cheatmenu等)
- shortcuts/macros.lua: キーボードマクロ (quickmacro eventtap等)
- shortcuts/rightclick.lua: 右クリック処理 (firstRightClick等)
- shortcuts/piano.lua: ピアノロールマクロ (modifierHandler等)
- vst/shortcuts.lua: VST固有ショートカット (Kick 2 undo/redo)
- tracking/timer.lua: 時間計測 (coolfunc, timerfunc等)
- lifecycle/appwatch.lua: アプリ監視 (enablemacros, disablemacros等)
- LESmain.luaはスリムなオーケストレーターに
## 2. helpers.luaのシェル依存をLua/Hammerspoon APIに置換
- ShellCopy → io.open/read/write
- ShellCreateDirectory → hs.fs.mkdir (再帰対応)
- ShellOverwriteFile → io.open("w")
- ShellConcatenateFile → io.open("a")
- ShellCreateEmptyFile → io.open("w") + close
- ShellDeleteFile → os.remove / hs.fs.rmdir
- module.luaのls→ioIsFilePresentに置換
- ShellExec/ShellRecursiveCopy/ShellNSOpenは代替なしのため維持
## 3. グローバル変数汚染の修正
- string標準ライブラリを上書きするバグを修正 (menus/plugin.lua)
- filepaths.luaとutil/string.luaのstring引数名をpath/strに変更
- buildPluginMenu内の暗黙グローバルをlocal化
- module.lua内のネスト関数をlocal functionに変更
- proccom.luaのfetchInnerTitleをlocal化
- settings.luaのvalidateValueをlocal化
- buplicate shortcutのループ化 (7/8回の重複削除)
- clear track macroのループ化 (12回のキーストローク重複削除)
- requesttime()の時間計算を簡潔化
https://claude.ai/code/session_017dMeoBU7hkkikuskLtEWa1
- macros.lua: ディスパッチテーブルによるO(1)キー検索、修飾キー1回取得、FabFilter重複コード統合 - proccom.lua: getLiveHsAppObj()に2秒TTLメモ化キャッシュ追加 - timer.lua: 文字列連結キャッシュ、VSTウィンドウタイトル変更検出 - helpers.lua: LuaLS型アノテーション追加 - LuaSkin: C17/C++17コンパイル標準にアップグレード - Xcode: デバッグビルドをdwarf形式に変更(ビルド速度向上) - .luacheckrc: LES固有グローバル変数の包括的定義追加 - .luarc.json: LuaLS設定ファイル追加 - tests/test_helpers.lua: bustedテストスイート新規追加 - requirements.txt: Python依存パッケージをアップデート https://claude.ai/code/session_017dMeoBU7hkkikuskLtEWa1
- Dockerfile.test: Debian bookwormベースのbustedテスト実行環境 - test_helpers.lua → helpers_spec.lua: bustedの_specパターンに合わせてリネーム - hsモック修正: rawset(_G)でグローバル確実設定、ディレクトリ判定対応 - 全23テスト成功(文字列ユーティリティ、IOユーティリティ、ファイル操作ヘルパー) https://claude.ai/code/session_017dMeoBU7hkkikuskLtEWa1
- CHANGELOG.md: 全変更箇所の日本語ドキュメント(モジュール分割、パフォーマンス最適化、バグ修正、テスト、ビルド改善) - CLAUDE.md: Claude Code用プロジェクトコンテキスト(Everything Claude Codeベストプラクティス準拠) - Dockerfile.test: pnpm + Node.js 22追加、luacheck統合、使い方コメント追加 - README.md: テストセクション追加(Docker実行手順)、変更履歴リンク、プロジェクト構成更新 https://claude.ai/code/session_017dMeoBU7hkkikuskLtEWa1
- menus/plugin.lua: 1200件プラグインのパース高速化 - string/table関数をローカルキャッシュ、直接インデックス代入 - hs.inspect()デバッグ出力と12箇所のprint()を除去 - shortcuts/piano.lua: keyhandlereventを事前生成しstart/stopで再利用 - 毎回のeventtap.new()/破棄によるGC圧力を排除 - lifecycle/appwatch.lua: focusedWindow()の重複呼び出しを1回に削減 https://claude.ai/code/session_017dMeoBU7hkkikuskLtEWa1
- ローカルリリースビルド手順(release.sh / build.sh個別ステップ) - DMGインストーラー作成手順(create-dmg) - Apple公証(notarytool)の設定と実行方法 - GitHub Actions自動リリース(vタグプッシュでDMG自動生成) - CHANGELOGのドキュメントセクションを更新 https://claude.ai/code/session_017dMeoBU7hkkikuskLtEWa1
ソースコード→ビルド→DMG→配布の流れを一本の図で表現し、 デバッグビルド(開発用)とリリースビルド→DMG作成(配布用)の 違いが一目でわかるよう再構成 https://claude.ai/code/session_017dMeoBU7hkkikuskLtEWa1
docs/USER_MANUAL.md: - 全体フロー、インストール手順、基本操作の状態遷移図 - 全キーボードショートカット一覧(メイン・編集・トラック操作) - プラグインメニュー操作フロー(menuconfig.iniの書き方含む) - ピアノロールマクロ、スケール/コードメニュー - VSTショートカット(FabFilter Pro-Q 3, Kick 2) - プロジェクト時間トラッキングのシーケンス図 - メニューバー構成図、全設定リファレンス - 設定ファイルの場所、トラブルシューティング判定フロー - イースターエッグ一覧 https://claude.ai/code/session_017dMeoBU7hkkikuskLtEWa1
3層UI構造、起動シーケンス、キーストローク処理パイプライン等を Mermaidフロー図付きで解説する開発者向けドキュメント。 https://claude.ai/code/session_017dMeoBU7hkkikuskLtEWa1
- menus/chooser.lua: hs.chooser による Spotlight 風プラグインインクリメンタル検索
- menus/settingsgui.lua: hs.webview + HTML/CSS の設定パネル(トグルスイッチ・数値入力)
- ui/hud.lua: hs.canvas によるピル型ステータス HUD(緑=アクティブ/橙=一時停止/グレー=非アクティブ)
+ updateMenuBarState() でメニューバーアイコンを状態反映
- menus/bar.lua: 「Search Plugins...」「Settings...」メニュー項目を追加
- lifecycle/appwatch.lua: enablemacros/disablemacros に HUD とメニューバー更新を統合
- shortcuts/macros.lua: Cmd+Shift+1 の一時停止/再開を HUD に統合(hs.alert.show を置換)
- LESmain.lua: 新モジュール 3 件を require に追加
https://claude.ai/code/session_017dMeoBU7hkkikuskLtEWa1
Update PRODUCT_NAME in xcconfig and programName/programBundle in Lua constants to distinguish this fork from upstream. https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
Rename app references in README, USER_MANUAL, CLAUDE.md, and GitHub Actions workflows to match the new app name. https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
Bump targetMaxVersion from 11 to 12 and update docs accordingly. https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
New docs/FEATURE_COMPARISON.md covers user-facing features, developer improvements, build system changes, and documentation additions. Referenced from README. https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
A background Launch Agent monitors for the Ableton Live process and opens LES when detected. Users can toggle this via the "launchwithlive" setting in settings.ini or the settings GUI panel. - New assets: watch_live_launch.sh, les.watch.live.plist - reload.lua generates and installs/removes the Launch Agent dynamically - Settings GUI, USER_MANUAL, and FEATURE_COMPARISON updated https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
Replace ~80 lines of hand-written CSS with Tailwind utility classes. Only toggle switch pseudo-elements remain as custom CSS (~9 lines). Custom theme colors configured via tailwind.config for the dark UI. https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
Move all Tailwind utility classes to a static settings-tw.css file loaded from the app bundle at runtime. No network dependency. https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
- New tracking/pluginstats.lua: records use count, last used, and first-use timestamp per plugin in ~/.les/resources/plugin_stats.json - loadPlugin() now calls pluginStats.recordUse() on every use - Chooser UI enhanced with: - Category filter (based on menuconfig.ini folder structure) - Sort by name, frequency, recent use, or add date - Stats displayed in subText (use count, last used) - Updated USER_MANUAL and FEATURE_COMPARISON docs https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
- New vst/scanner.lua: scans AU (system_profiler) and VST3 (moduleinfo.json) plugins, classifies by metadata + keyword heuristics into categories (Compressor, EQ, Reverb, etc.) - "Scan Plugins..." menu item triggers scan, backs up old menuconfig.ini, and generates categorized replacement - Default menuconfig.ini now ships with Ableton Live built-in plugins pre-categorized (Instruments, Effects, MIDI Effects) - Updated USER_MANUAL and FEATURE_COMPARISON docs https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
Plugin scanner now caches results in plugin_cache.json and only processes new/removed plugins on subsequent runs. New plugins are appended to menuconfig.ini preserving user edits. Added "Force Full Rescan..." menu bar option for manual full rescan. https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
- Plugin Favorites: toggle ★ in the plugin chooser's "お気に入り管理" sub-chooser; favorited plugins appear at the top of the main list - Keyboard Shortcut Cheatsheet (Cmd+Shift+/): floating webview overlay listing all LES shortcuts, accessible without leaving Live - Project Notes (timeline): per-project notes stored as JSON in ~/.les/resources/notes/, opened via menu bar "Project Notes..." with Cmd+Enter to submit and per-note delete support https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
- tracking/notifications.lua 新規作成
- エクスポート完了通知: Live ウィンドウタイトルの "Rendering:" を検知し
完了時に hs.notify で通知(設定: notifyexport)
- 1時間ごとの作業時間通知: timerfunc() から毎秒チェックし、
プロジェクトのセッション時間が新たな1時間を超えたら通知(設定: notifyhourly)
- プロジェクト切り替え時に時間カウンタをリセット
(既に2時間のプロジェクトに切り替えても即通知しない)
- settings.lua: notifyexport / notifyhourly を追加(デフォルト両方 ON)
- settingsgui.lua: 設定 UI にトグルスイッチを追加
- timer.lua: coolfunc / timerfunc にフックを挿入
https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
fork リポジトリには master ブランチが存在しないため、 デフォルトブランチの develop に合わせる。 https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
Hammerspoon上流のドキュメント生成スクリプト(build_docs.py)への 依存を除去。空のdocs.jsonを生成するno-opスクリプトに置き換え、 リリースビルドのBUILD FAILEDを修正。 https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
create-dmgの依存ライブラリ(node-alias)がディスクイメージタイトルを 27文字以内に制限しているため、「Live Enhancement Suite Custom」(30文字) を「LES Custom」に短縮。 https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
リリースアセットのファイル名をCustom付きに統一。 https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
1. AIチャットアシスタント (Cmd+Shift+A) - 浮遊ウィンドウで音楽制作に関するQ&A - プロジェクト名・セッション時間をコンテキストに自動付与 - 会話履歴を保持、クリアボタンでリセット 2. プロジェクトメモAI要約 - プロジェクトメモ画面の「AI要約」ボタンで発動 - 全メモをAIに送信し、進捗・残タスク・次のアクションを要約 - 要約結果はメモとしてタイムラインに追加 3. AIプラグイン提案 - メニューバーから起動、プラグイン使用統計を分析 - 使用傾向に基づいて5〜8個のプラグインを提案 - 追加条件(ジャンル・目的)を入力して再提案可能 4. AIプロジェクト名ジェネレーター - プロジェクトメモ・プラグイン使用状況からコンテキストを収集 - 10個の名前候補をChooser UIで表示 - 選択するとクリップボードにコピー 共通基盤: - ai/openai.lua: hs.http.asyncPostによる非同期API呼び出し - 設定: openaikey (APIキー), openaimodel (モデル名) - 設定GUIにAI設定セクション追加(パスワードマスク付き) https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
USER_MANUAL.md: - プラグインお気に入り、プロジェクトメモ、macOS通知連携、 ショートカット一覧オーバーレイのセクション追加 - AI機能4種(チャット、プラグイン提案、名前生成、メモ要約)の セットアップ手順・使い方・Mermaidフロー図を追加 - ショートカット一覧にCmd+Shift+/とCmd+Shift+Aを追加 - 設定リファレンスにnotifyexport/notifyhourly/openaikey/openaimodelを追加 - ファイル配置図にnotes/、plugin_stats.json、plugin_cache.jsonを追加 - メニューバー図を最新の構成に更新 - DMGファイル名をLiveEnhancementSuiteCustom.dmgに修正 ARCHITECTURE.md: - AI統合アーキテクチャのセクション追加(モジュール構成、データフロー、 通信パターン、設定の各図表) - モジュール依存関係図にai/、tracking/notifications、ui/等を追加 - メニューバー構成図を更新 README.md: - 機能一覧にAIアシスタント、プラグイン検索、通知連携等を追加 - プロジェクト構成にai/、ui/ディレクトリを追加 - リリースリンクをforkリポジトリに修正 https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
- pluginstats/projectnotesにインメモリキャッシュとデバウンス書き込みを実装 - proccomのキャッシュTTLを2秒→5秒に延長、デバッグログをenabledebug条件下に移動 - programMaxTargetを26(macOS Tahoe)に更新 - CI: macos-15ランナー、Xcode 16.2、SDK 15.2に更新 - actions/checkout@v4、upload-artifact@v4に更新 https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
- SDKROOT を MacOSX.sdk シンボリックリンクに変更(バージョン固有パスの不一致を回避) - ci_testbuild.yml を les_build.yml と同じビルド方式に統一(上流 Hammerspoon テストスクリプト依存を削除) https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
Xcode 16.2のモジュールマップ厳格化により、sa_family_tの宣言が Darwin.POSIX.sys.typesモジュールから明示的にインポートされていない とコンパイルエラーになる問題を修正。 https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
- scripts/lint-changed.sh: Lua/ObjC/CI向け軽量静的チェックスクリプト - .claude/settings.json: PostToolUseフックでEdit/Write時に自動実行 - CLAUDE.md: チェックルールをドキュメント化 https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
SimplePing.hと同様、Xcode 16.2のモジュール厳格化で sa_family_tの推移的インクルードが失敗する可能性を予防。 https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
- macOS対応バージョンを12〜26(Tahoe)に修正 - proccomキャッシュTTLを5秒に修正 - インメモリキャッシュ改善(pluginstats/projectnotes)を追加 - CI環境更新(macos-15/Xcode 16.2)を反映 - Xcode 16.2互換性修正を追加 - 自動リントチェックを追加 - GitHub Actions依存関係更新を追加 https://claude.ai/code/session_01EvnDX9bz2vv1xHA36GxN3J
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.