Replace GitHub URLs with HF equivalents across source code
and install script. Release notes now fetch from CHANGELOG.md
on HF instead of GitHub Releases API.
Co-Authored-By: Claude Big Pickle <noreply@anthropic.com>
feat(tool): decouple AskUserQuestion into standalone question channel
Add a dedicated question service and overlay instead of routing
AskUserQuestion through the permission system. Wire tab/arrow keybindings
in the standalone prompt and clarify the tool prompt with an explicit
parameter-structure example to reduce first-try schema errors.
refactor: remove friend feature, local whisper, doubao & anthropic STT; consolidate voice to Groq
Remove the entire /friend desktop companion feature (Tauri frontend, FriendService,
SSE/STT server, skills, tools, routes) and the 11G Tauri build artifacts. Migrate the
edgeTts helper from friend/tts.ts into services/voice/edgeTTS.ts so auto-TTS survives.
Remove local whisper STT (whisperSTT.ts + whisper_server.py/transcribe.py) and the
doubao + anthropic voice_stream backends, since STT now runs exclusively on Groq
Whisper (whisper-large-v3 / -turbo). Shared STT connection types move into groqSTT.ts
and the voiceProvider setting is narrowed to ['groq'] with a default. Also rework
edgeTTS.ts to use the node-edge-tts package instead of a Python subprocess, dropping
the now-unused scripts/speak.py.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat: integrate ink-picture rendering into ImageShowTool, remove InlineImage
- Move ink-picture dependencies from file: reference to direct source integration
- Remove ink-picture's own node_modules, build, package.json, tsconfig.json, biome.json
- Update all ink-picture imports to use src/ink-picture path alias
- Add ink-picture path alias to tsconfig.json
- Add is-unicode-supported, iterm2-version, jimp, node-fetch, sixel as direct deps
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
refactor: replace custom image rendering with ink-picture across all components
Introduce InlineImage component, ImageShow tool, and image caching/detection
utilities for rendering images directly in the terminal via the Kitty graphics
protocol. Falls back to clickable hyperlinks when protocol is unavailable.
Co-Authored-By: Claude Big Pickle <noreply@anthropic.com>
fix: /friend motion — interrupt hold on new action, drain queue, fix emotion mapping
- MotionController: interrupt hold when new playAction arrives instead of
queueing, so LLM text-message actions are not blocked by stale 10s hold
- MotionController: drain action queue in hold timer callback to prevent
silent drop of queued actions
- App.tsx: remove hold=true from emotion-only messages — action plays once,
emotion timer handles duration independently
- App.tsx: remove awkward emotion→action mappings (neutral→salute,
relaxed→salute, sad→shy) that caused unnatural gestures
Co-Authored-By: Claude Big Pickle <noreply@anthropic.com>