Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -409,8 +409,6 @@ run any Codex once, type `/hooks`, walk the browser, and quit. Re-grant only
when you change a hook command or matcher. See `doc/hook-bridge/README.md`
for the full procedure.

Design notes: `.agent/PLANS_47_HOOK_DRIVEN_FACE_SAY.md`.

## Optional Agent Skills

This repository includes reusable skill packages under `doc/examples/skills/`:
Expand Down Expand Up @@ -816,7 +814,7 @@ face-app をループバック外に bind して `MH_FACE_AUTH_TOKEN` が必要

- ドロップインの設定例: `doc/hook-bridge/`
- 各ランタイムの setup README(Claude / Codex / Gemini)にも同じスニペットを掲載
- 設計詳細: `.agent/PLANS_47_HOOK_DRIVEN_FACE_SAY.md`
- 詳細な設定手順: `doc/hook-bridge/README.md`

`MH_FACE_AGENT_ID` が agent process に設定されていないとき hook は何もせず exit 0 で終了するため、関係ない別 session には影響しません。発話テンプレートは `~/.minimum-headroom/face-templates.json` で上書き可能(無い場合は日本語 + 英語の組込みデフォルト)。言語は直近の `face_say` 履歴から自動判定(CJK 文字 → `ja`、それ以外 → `en`)、`MH_FACE_LANG` がフォールバック。

Expand Down
2 changes: 1 addition & 1 deletion asr-worker/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "asr-worker"
version = "1.16.0"
version = "1.16.1"
description = "Local ASR worker for english-trainer (Parakeet EN/JA routing)"
readme = "README.md"
requires-python = ">=3.10"
Expand Down
2 changes: 1 addition & 1 deletion asr-worker/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion doc/examples/antigravity/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,4 +101,4 @@ Notes:

- `mh-hook.mjs` is hard-wired to write nothing to stdout and exit `0` under all conditions. This is required because Gemini parses hook stdout as JSON and treats exit code `2` from `AfterAgent` as "retry this turn with stderr as the new prompt" — exiting non-zero from a safety-net hook would silently kick the agent into an unwanted retry loop.
- The hook fires only when `MH_FACE_AGENT_ID` is set in the agent process environment. `scripts/run-operator-once.sh` sets this for the operator pane; helper panes inherit it from `agent.spawn`.
- See `doc/hook-bridge/` for cross-runtime details and `.agent/PLANS_47_HOOK_DRIVEN_FACE_SAY.md` for design notes.
- See `doc/hook-bridge/` for cross-runtime details.
2 changes: 1 addition & 1 deletion doc/examples/claude-code/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,4 @@ forgets to call `face_say` voluntarily. Merge the following into your
}
```

`mh-hook.mjs` is silent and exits 0 on every error path, so it never blocks Claude Code. It only fires when `MH_FACE_AGENT_ID` is set in the agent process environment (which `scripts/run-operator-once.sh` already does for the operator pane). See `doc/hook-bridge/` for cross-runtime details and `.agent/PLANS_47_HOOK_DRIVEN_FACE_SAY.md` for design notes.
`mh-hook.mjs` is silent and exits 0 on every error path, so it never blocks Claude Code. It only fires when `MH_FACE_AGENT_ID` is set in the agent process environment (which `scripts/run-operator-once.sh` already does for the operator pane). See `doc/hook-bridge/` for cross-runtime details.
4 changes: 0 additions & 4 deletions doc/hook-bridge/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ canonical hook event (`permission_required` or `idle_after_response`) into a
`face_say` + `face_event` and, for helper agents, an owner-inbox entry — even
when the agent forgets to call `face_say` voluntarily.

See `.agent/PLANS_47_HOOK_DRIVEN_FACE_SAY.md` for the design.

## Files

- `claude-settings.json.example` — paste into `~/.claude/settings.json` (merge
Expand Down Expand Up @@ -100,8 +98,6 @@ falling back to `MH_FACE_LANG` when the agent has not spoken yet.

このディレクトリには、各 agent runtime(Claude Code / Codex / Gemini CLI)の hook 機構を `scripts/mh-hook.mjs` に配線するための設定例が入っています。wrapper は canonical な hook event(`permission_required` または `idle_after_response`)を `face_say` + `face_event`、helper の場合はさらに owner inbox エントリに変換します。agent 自身が `face_say` を呼び忘れたときの安全網。

設計詳細は `.agent/PLANS_47_HOOK_DRIVEN_FACE_SAY.md`。

### 同梱ファイル

- `claude-settings.json.example` — `~/.claude/settings.json` にマージ。Claude Code の `Notification` / `Stop` イベントを配線。
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "minimum-headroom",
"version": "1.16.0",
"version": "1.16.1",
"private": true,
"type": "module",
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion tts-worker/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "minimum-headroom-tts-worker"
version = "1.16.0"
version = "1.16.1"
description = "Minimum Headroom phase3 tts worker"
readme = "README.md"
requires-python = ">=3.12"
Expand Down
2 changes: 1 addition & 1 deletion tts-worker/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading