Releases: sktkkoo/Yorishiro
Release list
v0.6.2
Highlights
Yori's face is alive while speaking. Until now Yori spoke with an idle face and a moving mouth. A speech reflex layer now derives brow/eye engagement, phrase-boundary blinks, and prosodic brow flicks from the lip-sync audio signal — no emotion is inferred from the audio, only physiological activation. On top of that, voice_say takes an optional mood, which fades in when the line starts and releases when it ends: an expression that lasts exactly as long as the words it belongs to.
A persona can bring its own body. Drop an avatar.vrm into a persona pack and switching to that persona — from Settings or through persona_goodbye_switch — changes the figure automatically. Previously the body only changed when a VRM path was pasted by hand.
Reflexes stopped being invisible. Trigger.description lets a pack state in one human-readable line what makes a reflex fire, and the new persona_reflex_list MCP tool lists a persona's triggers and responses — including whether it defines its own reflexes or inherits the bundled defaults wholesale.
A readable terminal over a scene. UI packs can set terminal backgroundOpacity (0–1) instead of an all-or-nothing transparency switch. The tint is bridged into the surrounding frame padding, so no gap shows between the panel and the window.
Also in this release
PersonaDefinitionis now two axes: thinking and reflex. The declared-but-unconsumedworldandlogReadingaxes were removed; packs that still declare them keep loading unchanged.- Fixed user packs failing to bundle when
scene.tsx/ui.tsximported a pack-local module such as./lib/palette. - The F2 debug panel's
speechfolder is now opt-in vialocalStorage.setItem("yorishiro:speech-debug", "1"), keepingCommonfor controls that matter whenever you open it. - README leads with the demo video, and the Contributing sections now say plainly that Issues and Discussions are wanted.
Full details: CHANGELOG.md
What's Changed
- 発話反射層 + voice_say mood — 発話中の顔を生かす by @sktkkoo in #60
- refactor(sdk): persona を思考+反射の二軸に — world / logReading 軸を削除 by @sktkkoo in #61
- feat: 反射の可視化 — Trigger.description + persona_reflex_list by @sktkkoo in #62
- feat: persona 切替時に pack 同梱 avatar.vrm を自動適用 by @sktkkoo in #63
- fix(runtime): support pack-relative imports in TSX transpiler by @sktkkoo in #64
- Support terminal background opacity by @sktkkoo in #65
- chore(debug): Speech controls を localStorage opt-in にする by @sktkkoo in #66
Full Changelog: v0.6.1...v0.6.2
v0.6.1
What's Changed
Full Changelog: v0.6.0...v0.6.1
v0.6.0
What's Changed
- Attention light: scene-owned cue for awaiting-input across all sessions by @sktkkoo in #25
- In-app updater: 設定画面から1ボタンで自己更新 by @sktkkoo in #28
- README: Homebrew インストール手順を追加 by @sktkkoo in #29
- [codex] Add project-scoped scene selection by @sktkkoo in #27
- [codex] Update README install and pack security notes by @sktkkoo in #31
- Add per-directory scene selection by @sktkkoo in #30
- Feat/reload curtain by @sktkkoo in #33
- [codex] Rename Charminal to Yorishiro by @sktkkoo in #34
- Reduce runtime frame allocation stutter (folder switch は reload 維持) by @sktkkoo in #35
- [codex] Reduce runtime frame allocation stutter by @sktkkoo in #32
- [codex] Sync terminal glow with attention light cues by @sktkkoo in #36
- [codex] Polish settings labels and project folder paths by @sktkkoo in #38
- [codex] Add persona goodbye switch flow by @sktkkoo in #39
- Journal callback P1 — セッション開始時の記憶想起 by @sktkkoo in #40
- Skip sad pulse for run-slow-completed in presence bridge by @sktkkoo in #41
- README 刷新: 冒頭コピーの磨き込みと未記載機能の追記 by @sktkkoo in #44
- journal 想起に「最近の記憶」を追加、配達経路のない agent では発火しない by @sktkkoo in #43
- CLAI キャラクターガイドラインの追加(IP 管理の公開文書化) by @sktkkoo in #42
- Fix production black screen: move boot styles out of inline <style> by @sktkkoo in #45
- MCP スクショの右下サムネイル表示 + screenshot tool の一本化 by @sktkkoo in #47
- Rename CLAI to Yori and fix Codex $yori skill discovery by @sktkkoo in #48
- Show fixed "Main Agent" label on the main session tab by @sktkkoo in #49
- Stabilize flaky focus assertion in RestoreConfirmDialog test by @sktkkoo in #52
- Clarify character rights scope and model extraction policy by @sktkkoo in #50
- Clarify light alerts and resume agents after workspace switches by @sktkkoo in #54
- お別れの演出強化 — 声を聞き切ってから暗転、姿の切替、去る側の記憶 by @sktkkoo in #53
- Ground journal entries in honest reflection by @sktkkoo in #55
- docs(security): pack provenance boundary — local trusted code, defer integrity to distribution layer by @sktkkoo in #56
- feat(packs): pack schema seam — bundled conformance + client version/platform gate by @sktkkoo in #57
- docs: README・philosophy のコピー磨き+UI小修正 by @sktkkoo in #58
Full Changelog: v0.5.2...v0.6.0
v0.5.2
What's Changed
- fix(ci): run cargo build before fmt to generate build artifacts by @sktkkoo in #2
- feat: custom title bar with settings + sidebar toggle by @sktkkoo in #1
- feat(session-status): terminal awareness for agent attention by @sktkkoo in #3
- feat: GPU shader fireworks (CPU-era look with glow) by @sktkkoo in #4
- [codex] Preserve terminal input lines on clear by @sktkkoo in #5
- fix(session-status): detect Codex and multi-choice permission prompts by @sktkkoo in #7
- feat(ui): トップバーのサイドバーボタンで全画面 UI pack を閉じる by @sktkkoo in #10
- feat(scene-layer): media controls — transform + off-screen cover panel, label/filename fixes by @sktkkoo in #9
- [codex] fix terminal IME composition input by @sktkkoo in #6
- style(simple-room): de-slop the palette — neutral charcoal + sage, flat background by @sktkkoo in #8
- fix(window): タイトルバーでウィンドウをドラッグ移動できるようにする by @sktkkoo in #11
- fix(tutorial): pack説明・影の説明修正・カラーテーマ強化・背景画像案内 by @sktkkoo in #12
- chore: OSS release prep (docs, fresh-clone assets, CoC, test fix) by @sktkkoo in #13
- [codex] reframe README concept docs by @sktkkoo in #14
- [codex] init.js hot reload by @sktkkoo in #15
- Move terminal tabs to the top bar by @sktkkoo in #16
- Filter session tab badge events by @sktkkoo in #17
- [codex] Protect main agent interrupts by @sktkkoo in #18
- Unify reflex-contrast terminology to thinking layer by @sktkkoo in #19
- [codex] Address OSS release blockers by @sktkkoo in #20
- Philosophy 再検討 — 有用性と関係性の統合、反射/偽装の基準、対称性の範囲 by @sktkkoo in #21
- Make awaiting-input badge detection deterministic by @sktkkoo in #23
- Command blocks as internal-only observation structure by @sktkkoo in #22
- Expand diagnostic line vocabulary and cut false positives by @sktkkoo in #24
New Contributors
Full Changelog: v0.5.1...v0.5.2
v0.5.1
0.5.1
- The SDK author guide is now shipped to
~/.charminal/sdk-guide.md(rewritten on every startup), so the inhabitant AI can read the pack-authoring narrative even in packaged builds where the source tree is absent. - Every bundled pack now ships a README, and the
/charmcommand docs reference packs and SDK types through production-available paths (bundled_example_readMCP tool,~/.charminal/sdk.d.ts/sdk-guide.md). - CLAI's idle-triggered TextPhysics mischief is back (a single low-probability roll after a long idle).
- Camera fixes:
camera-movenow works while tracking is off, F2 opens with tracking off by default, and the tutorial camera paths were corrected. - The shoot timeline is now single-flight, so rapid repeated presses no longer overlap.
Full Changelog: v0.5.0...v0.5.1
v0.5.0
0.5.0
- Motion size: a Settings slider and
motionIntensityconfig field (0–3, default 1.0) scale CLAI's idle sway, breathing, and head/posture motion; inhabitants can adjust it through themotion_intensity_setMCP tool. - Richer idle aliveness: idle beat scheduler (glances, micro-aversions, anticipation), eye-lead gaze with head recruitment, physiological state-dependent blink rates (suppressed while reading), and StatePose blending in ProceduralBones.
- User scene packs can be authored as R3F (TSX) components, with live reload from nested source edits.
- Scene layers support a drop-shadow filter.
- Inhabitants can read bundled pack sources through MCP (
bundled_example_read) as authoring references. - The restore UI now lists up to 30 snapshots.
- The first-run tutorial was reworked: fixed sleeps removed, effect shortcuts (F1/F3/F4) demonstrated in place, scene color-theme collaboration shown, and the flow now carries through the pack-creation experience.
- Terminal agent launch is now backed by
TerminalAgentadapters for Claude Code, Codex, and OpenCode. - Codex installs Charminal commands as
$charm-*skills instead of/charm:*slash commands. - OpenCode receives Charminal commands as
/charm-*custom commands throughOPENCODE_CONFIG_CONTENT. - OpenCode persona overlay is injected through
agent.build.promptandagent.plan.promptfile references so primary agents receive Charminal's system prompt. - OpenCode TUI starts with a session-scoped
OPENCODE_TUI_CONFIGtemp config using thesystemtheme, and Charminal sends OpenCode'sSIGUSR2theme refresh hook on scene changes so panel/input colors re-sample the terminal palette without rewriting user OpenCode config files. - Codex and OpenCode now receive Charminal journal/voice reminders through their launch prompt overlays instead of Claude Code hook output.
- Documented that Claude Code hooks are not a cross-agent contract; Codex/OpenCode hook-like surfaces require explicit per-agent capabilities before Charminal treats them as shared behavior.
- Agent
defaultProfilevalues such as"opencode"now launch that agent instead of falling back toterminalAgent. - The Settings Agent dropdown and the Status panel now report the agent that actually launches (honoring
defaultProfile). WhendefaultProfilepins an agent, the dropdown shows that agent and is disabled with a "fixed by defaultProfile" note. - Agent install directories and charm command syntax are now declared by each
TerminalAgentadapter (single source of truth); the Status panel warns if the Rust adapter registry and the TypeScript mirror drift. terminalAgent: "opencode"is accepted in config. OpenCode end-to-end smoke is deferred and remains unverified on this machine.UiAppAPI.setTerminalAgentand related SDK/config types now accept string adapter ids instead of only"claude" | "codex".
Full Changelog: v0.4.0...v0.5.0
v0.4.0
0.4.0
- macOS is now the only supported platform. Windows still compiles but its runtime behavior is unstable, and Linux is not yet available.
- Signed macOS builds are produced through GitHub Actions with code signing and notarization; release assets and private assets are fetched from R2 during CI.
- First-run health diagnostics surface environment problems before they become silent failures.
- A runtime crash recovery boundary keeps the app usable after a render-layer crash.
- Safe mode (
CHARMINAL_SAFE_MODE=1) lets you recover from broken packs. - Pack workbench refinements: kind groups, inline toggles, an active bar, and auto-refresh.
- Pack doctor diagnostics and a
pack diagnoseMCP tool for validating local packs. - Pack repair handoff actions, hardened against id injection and double-click.
- Settings now show each pack's description, author, and trust tier; Quick Actions moved to the top.
- Settings UI labels are localized (Japanese / English); product terms stay in English.
- Render loop scheduling optimized to reduce idle CPU/GPU usage.
- Default bundled fallback scene changed to
simple-room. - Legacy
claipersona removed; onlyclai-enandclai-jaremain.
Full Changelog: v0.3.0-alpha...v0.4.0
v0.3.0-alpha
v0.3.0-alpha
Highlights
- Windows ビルド対応(準備) —
HOME→dirs::home_dir()統一、hooks の PowerShell 分岐、npm shim 検索の platform 対応。動作確認はこれから - デフォルト VRM キャラクターモデル同梱 — CLAI.vrm をバンドル
- Controls MCP — カメラ・ライティングの MCP tools を公開、SDK controls store を scene に統合
- Scene 切替の安定化 — layer override の orphan 問題修正、切替時の state carryover 解消
Features
- Controls MCP tools(
controls_get/controls_set/controls_transition) - SDK scene controls registration + leva 連携
state_getに lighting 情報を追加get_ui_state/set_ui_stateの active scene fallback- グローバル system prompt に Charminal 環境情報フラグメントを追加
- F1 キーで charminal-settings を開く
- Controls transition API
Fixes
- Scene 切替で
sceneLayerOverridesを正しく clear - Scene layer override の auto-create を廃止(no-op + warn に変更)
- ThreeRuntime の default light を削除、lighting は scene pack 専有に
- Animation load 失敗時のエラー握りつぶしを解消
- Tutorial 構成を再設計(モーション → Light → カメラ → Scene → 花火 → Effect 案内)
Refactor / Chore
- Legacy parameter MCP tools を削除
camera-lighting-panelbundled pack を削除(reference pack 化).worktrees/を gitignore + vitest 除外に追加
Docs
- トリガー・リアクションシステムの統合 architecture overview
- Scene controls API の 2-panel 構造を確定
- Scene layer override semantics の決定を記録
~/.charminal/データディレクトリの説明を README に追加
Platform
| Platform | Status |
|---|---|
| macOS (Apple Silicon) | ✅ 動作確認済み |
| macOS (Intel) | 未確認 |
| Windows | |
| Linux | 未対応 |
v0.2.0-alpha
What's New
Session Tabs
Open multiple shell sessions alongside the main agent terminal.
Cmd+T— open a new shell tabCtrl+Tab/Ctrl+Shift+Tab— cycle between tabsCmd+W— close the current tabCmd+1–9— jump to Nth tab
The main agent session is protected and cannot be closed. If it exits unexpectedly, Charminal automatically restarts it. A minimal indicator at the bottom of the screen shows active tabs when two or more sessions exist.
Improvements
- Per-session Tauri commands for multi-session PTY management
- Scene pack theme automatically applied to all terminal sessions
- Attention aura follows the active tab
- Session events emitted to EventBus for ICI integration
- Sessions survive WebView reload
- Replaced WebglAddon with Canvas renderer to avoid WebGL context limit with multiple tabs
Bug Fixes
- Fixed agent process exit with no recovery path (auto-respawn)
- Fixed replace-kill during session spawn triggering false auto-respawn loop
- Fixed terminal layout breaking when switching scene packs with shell tab active
Full Changelog: v0.1.0-alpha...v0.2.0-alpha