# [0.10.0-build.20260411] (2026-04-11) * Merge pull request #31 from KGAudioLab/feat/2026-04-09-add-wav-track-support (2328ddb) * doc: updated README.md (eeebf54) * Merge pull request #30 from KGAudioLab/feat/2026-04-09-add-wav-track-support (c8f84d7) * fix: missing tool calling info in the exported conversation JSON and MD (d082c9c) * feat: added bouncing to MP3 feature (d16553e) * feat: add bounce-to-WAV export with offline rendering via Tone.Offline (d486442) * feat: add snap-to-grid toggle for track grid regions and playhead (d94b53d) * feat: add audio region trimming with non-destructive clip offset (1670679) * doc: updated help.md (39401b3) * feat: add bar width multiplier (1x–8x horizontal zoom) for track grid (139684b) * feat: enhanced emulated bash terminal (by using browser's input box pop-up loop) (4917e54) * feat: add Open Project modal with project browser, soft delete, and duplicate (1ff9bfc) * fix: assigned an image as audio track's instrument-preview background (21a1991) * fix: missing media files when renaming + saving the project (83f4bfe) * feat: added `rm` opfs mock bash command (6080acc) * feat: add audio track support with WAV/MP3 playback and looping (fc84edf) * Merge pull request #29 from KGAudioLab/feat/2026-04-08-refactor-data-storage (de29791) * refactor: migrate project storage from IndexedDB to OPFS with folder-based structure (2d3ea33) * refactor: split monolithic App.css into feature-based co-located CSS files (17610f1) * refactor: moved "Add track" button from bottom TrackControl to top-left-spacer for better discoverability (58cb4ce) # [0.9.0-build.20260406] (2026-04-06) * Merge pull request #28 from KGAudioLab/feat/2026-04-05-refactor-tool-calling (5a863fe) * feat: added Claude 4.6 model series options. (63ced27) * feat: added OpenAI SDK with OpenRouter based Claude model support; updated recommended models in README.md (586f0f9) * feat: added model options for GPT-5.4 families; updated default model to gpt-5.4-mini (6c49fbf) * fix: rename `start_beat` to `start` and `end_beat` to `end` in 3 tools. (26b7510) * fix: minor UI enhancements. (ee31ca0) * refactor: migrate agent system from XML tool calling to OpenAI SDK with native function calling (2cd976f) # [0.8.0-build.20260123] (2026-01-23) * Merge pull request #27 from KGAudioLab/feat/2026-01-22-looping (5042477) * docs: updated README.md (8e8c557) * feat: implemented playback looping; fixed an linter error in Toolbar.tsx (1c8361d) * feat: enhanced the note scheduling logic to support loop mode (b767d21) * feat: added upgradeToV3 upgrader (b46442b) * feat: added a hotkey for loop button (78b798e) * feat: implemented change loop setting command (b80e7e8) * feat: implemented UI of looping feature (f367c84) * docs: updated welcome_again.md (20310cc) # [0.7.1-build.20260117] (2026-01-17) * Merge pull request #26 from KGAudioLab/feat/2026-01-17-add-option-allow-persist-api-key-on-non-localhost (59faeff) * fix: added a warning comment (609efab) * docs: updated README.md (8c1ab53) * feat: add option to persist API keys on non-localhost (opt-in security feature) (e8b79ef) # [0.7.0-build.20260117] (2026-01-17) * Merge pull request #25 from KGAudioLab/feat/2025-12-25-more-models (6717cea) * feat: added latest (as of 2025-12-25) GPT and Claude model support (4f4e60f) # [0.6.3-build.20251222] (2025-12-22) * Merge pull request #24 from KGAudioLab/feat/2025-12-19-midi-keyboard-support (ab8c268) * chore: updated README (3b2b359) * Merge pull request #23 from KGAudioLab/feat/2025-12-19-midi-keyboard-support (ef08ec9) * feat: added an option to control playhead animation fps (b44e6fb) * feat: added playback delay configuration (eaee036) * feat: added lookAhead option (aadf9e0) * fix: reduce Tone.js context.lookAhead to reduce MIDI input latency (4b075e8) * feat: added MIDI keyboard support (d3a2fe1) # [0.6.2-build.20251218] (2025-12-18) * Merge pull request #22 from KGAudioLab/feat/2025-12-08-chord-assistant (22c11fd) * feat: implemented chord guide customization feature (5cceec0) * feat: merge `mode_list.json` into `functional_chords.json` (610b81e) # [0.6.1-build.20251216] (2025-12-16) * Merge pull request #21 from KGAudioLab/feat/2025-12-08-chord-assistant (2fc6e56) * test: fixed test errors; skip failing integration tests temporarily (46d3a21) # [0.6.0-build.20251216] (2025-12-16) * Merge pull request #20 from KGAudioLab/feat/2025-12-08-chord-assistant (03b5796) * docs: add Intelligent Chord Assistant feature to README (56be444) * feat: implemented the logic to automatically create a chord when a suitable guide chord is highlighted. (54b227c) * fix: default chord guide note's length to last edited note's length (fbd13ee) * feat: added unit tests for scaleUtil.ts (df722ab) * feat: added highlighted chord guide on piano grid (bdc7fc8) * feat: added logic to get suitable chords (console log only) (8512fb4) * feat: map chords base on each mode (fe9eb79) * feat: added functional chords resource files (2636395) * feat: persistence selected mode (dcd2d89) * fix: display the currently selected mode in the mode dropdown (fa201d1) * feat: add scale highlighting to Piano Roll grid (9e0c0cc) * feat: added mode list dropdown (98ed8a6) * feat: added integration tests (02a7a61) * Merge pull request #19 from KGAudioLab/test/2025-09-03-initial-unit-tests (c5ada0d) * feat: added unit tests for `timeUtil` and `xmlUtil`. (2dcc763) * feat: added unit tests for KGMidiRegion and abcNotationUtil; update all deprecated method `plainToClass` to `plainToInstance`. (2bf5328) * feat: add Vitest unit testing infrastructure with initial test suite. (aa2b199) # [0.5.4-build.20250830] (2025-08-30) * Merge pull request #18 from KGAudioLab/feat/2025-08-29-new-instruments (3f087e2) * feat: added 28 new instruments. (3dae319) # [0.5.3-build.20250829] (2025-08-29) * Merge pull request #17 from KGAudioLab/fix/2025-08-24-misc (d5dbe90) * fix: manually cleaned up the initial changelog. (d601bd1) # [0.5.2-build.20250829] (2025-08-29) * Merge pull request #16 from KGAudioLab/fix/2025-08-24-misc (8eeec39) * fix: use correct token in `release` action. (f93626d) # [0.5.1-build.20250829] (2025-08-29) * Merge pull request #15 from KGAudioLab/fix/2025-08-24-misc (58ba8e9) * fix: use correct token in `release` action. (9230b0f) * Merge pull request #14 from KGAudioLab/fix/2025-08-24-misc (72994b5) * feat: implement automated versioning. (0eac494) * fix: reset mute/solo UI states on project/track changes (62b3a8c) * fix: preserve overlapping notes with same end time in ABC conversion (1fd1486) * feat: implemented select all notes feature. (6445325) * Merge pull request #13 from KGAudioLab/feat/2025-08-24-claude-support (131b99a) * implemented Claude caching breakpoints (OpenRouter version). (b0e589d) * implemented `ClaudeOpenRouterProvider`. (efb161d) * added a configuration option for Claude through OpenRouter. (81c6aeb) * Merge pull request #12 from KGAudioLab/fix/2025-08-16-misc (cd671ea) * added `Disclaimer` section to README. (efee261) * Merge pull request #11 from KGAudioLab/fix/2025-08-16-misc (48c9337) * minor README update. (bc01d42) * Merge pull request #10 from KGAudioLab/fix/2025-08-16-misc (9b095e1) * minor README updates. (042366d) * Merge pull request #9 from KGAudioLab/fix/2025-08-16-misc (7b4b825) * minor README update. (719a184) * Merge pull request #8 from KGAudioLab/fix/2025-08-16-misc (7ac14b3) * rewrote `welcome_new` article; updated readme file; introduced `/help` command. (f2355b2) * added export conversation feature. (0c54332) * added an option to fix the "Zoom can't capture the sound" problem (it is IMPORTANT to choose "share sound" when share screen in Zoom). (c1112f4) * added overview document. (365acda) * optimized ChatBox component. (8b0ddae) * cleaned up the LLM providers. (429efaf) * removed native tool_calls handling from `OpenAIProvider`. (cf4f3ed)