Skip to content

v0.10.23

Choose a tag to compare

@hyoshi hyoshi released this 13 Jul 02:53
fd0c41b

Fixed

  • Credential guard now actually blocks. The PreToolUse hooks installed into Claude Code's ~/.claude/settings.json and Codex's ~/.codex/hooks.json used sys.exit(1), which both hosts treat as a non-blocking hook error — reading ~/.mureo/credentials.json was never actually blocked. The guard templates (now shared via a single mureo.credential_guard module so a fix can never again land on one host and miss the other) block with a permissionDecision: "deny" JSON response, protect the entire ~/.mureo tree via realpath + case-folded path matching (closing symlink, tilde, wildcard cred*, and case-insensitive-filesystem ~/.MUREO evasions), and widen coverage to Read|Edit|Write|Grep|Glob|NotebookEdit plus Bash. Codex's hooks.json is now written in the nested {"hooks": {"PreToolUse": [...]}} shape Codex actually loads, migrating mureo's entries out of the legacy top-level list. The installers are upgrade-aware: re-running mureo setup (or the configure UI's per-row Reinstall button) replaces stale hooks in place. (#393)
  • mureo upgrade refreshes installed credential-guard hooks. The post-upgrade refresh now upgrades stale tagged guard hooks on both the Claude Code and Codex surfaces — only where a guard entry actually exists, so a deliberately removed guard is never reinstalled. (#398)
  • Dashboard (re)install buttons report their outcome. The basic-setup rows' (re)install buttons now toast every result — success, "already up to date", and error — instead of reacting only to errors. (#400)

Security

  • Action required for existing installations: the old non-blocking guard stays in place until refreshed. Run mureo upgrade once (or press the credential-guard Reinstall button in the configure UI) to replace the stale hooks. (#393, #398)

Full Changelog: v0.10.22...v0.10.23