Load hooks per launch instead of installing them globally (#146)
Integrations that can load hooks for a single invocation now get them only from `hcom <tool>`: Claude, Codex, Copilot, Pi, OMP, OpenCode and Kilo. Cursor, Gemini, Kimi and Antigravity keep persistent hooks. Running a tool without hcom is untouched, and child processes of the same tool no longer inherit the parent's hcom hooks. - Add a shared per-run pipeline: prepare the integration, remove legacy installs, sync permission state, inject args/env for the launch. Publish content-addressed artifacts under <HCOM_DIR>/integrations/<tool>/<digest>/, keep generated settings private, sweep idle digests, and remove the tree on full reset. - Merge hcom hooks into the caller's config without clobbering it: Claude settings, exact Codex hook trust, Copilot plugin dirs, Pi/OMP extensions, OpenCode/Kilo config. Injected values stay out of persisted launch args; resume and fork strip replayed hcom values and rebuild the current integration. - Migrate old installs conservatively: remove only hcom-owned entries, keep user hooks and Codex trust as handler positions shift, remove the legacy Codex notify callback, and warn instead of blocking the launch if cleanup fails. - Treat direct Claude/Codex sessions that run `hcom start` as ad-hoc while keeping their native session identity; rebinds move the binding, and resume/fork recover the owning tool from the transcript. - Show per-run vs persistent mode in hooks/status/help, and simplify list labels to TOOL, TOOL* (missing binding) and AD-HOC. - Run OpenCode 2 through a private --standalone server so the per-run plugin always loads; reject --server, which would bypass it. - Codex hooks/list preflight on Windows skips the codex.cmd shim.
A
Anno committed
67348936a34b51c977df4c027c0e35fc95a4330a
Parent: 5cff896
Committed by GitHub <noreply@github.com>
on 9/28/2026, 11:34:31 PM