Releases: JSLEEKR/Muji
Releases · JSLEEKR/Muji
v0.5.0 — Security Fixes & Pipeline Integration
What's New
Security Fixes
- Sanitized TTS voice parameter to prevent shell injection (espeak, system, coqui engines)
- PID-based mpv kill in reset.js (no longer kills all system mpv processes)
Improvements
- Replaced CPU busy-wait with
Atomics.waitin BGM lock acquisition - Removed no-op on-file-write hook (reduces unnecessary process spawns)
- Synced README Event Map with actual config messages
- Added MIT LICENSE file
- Added ROUND_LOG for pipeline integration
Tests
- 65 tests, all passing
- 4 cycles of adversarial evaluation (14 bugs found and fixed)
Full Changelog
See CHANGELOG.md for details.
v0.4.0 — ElevenLabs Voices, Wellness Alerts & BGM Singleton
What's New
ElevenLabs Pre-recorded Voices
- 39 voice files (en/ko/ja) generated with ElevenLabs — works offline, no TTS needed
- Pre-recorded files play first, falls back to edge-tts if not found
- Custom voice generation tool:
scripts/tools/generate-voices.js
Dynamic Project Messages
- Session start/end messages include project name (e.g., "git-Muji 프로젝트, 시작할게.")
- Uses edge-tts (free) for real-time synthesis
- Toggle via
notifications.dynamic_project_nameconfig
Wellness Alerts
- Hourly chime: random reminder every hour ("벌써 한 시간 지났어. 잘 되고 있어?")
- Idle detection: care messages after 30min of no activity ("잠깐 산책하고 와.")
- Integrated into pomodoro daemon, also runs standalone:
node scripts/core/pomodoro.js wellness
BGM Singleton Fix
- PID file-based global lock prevents duplicate music playback across multiple Claude Code windows
Custom Voice Generation
ELEVENLABS_API_KEY=sk_xxx node scripts/tools/generate-voices.js
ELEVENLABS_API_KEY=sk_xxx node scripts/tools/generate-voices.js --config config/my-voices.yaml
ELEVENLABS_API_KEY=sk_xxx node scripts/tools/generate-voices.js --only idle_01,idle_02 --lang ko --forceSee config/custom-voices.example.yaml for template.