feat(plugins): surface hook capture setup and health#1119
Conversation
Signed-off-by: phernandez <paul@basicmachines.co>
Signed-off-by: phernandez <paul@basicmachines.co>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 68f54fa30a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| - **Hook health:** run | ||
| `basic-memory hook status --harness claude --project-dir <project-root>` with | ||
| the first available `basic-memory`, `bm`, or `uvx basic-memory` launcher. It | ||
| must find the intended settings and report the selected project and capture |
There was a problem hiding this comment.
Require a hook-capable Basic Memory for setup
When a user follows this skill with an older local basic-memory that still satisfies the prerequisite above (>= 0.19.0), this new mandatory smoke test fails because hook status only exists with the new core hook front door. The user can complete the interview and write settings, then be told to fix a project/launcher problem even though they followed the documented install path; bump the prerequisite to a version that includes bm hook status or make this check fall back/optional for older launchers.
Useful? React with 👍 / 👎.
| - Run `basic-memory hook status --harness codex --project-dir <repo-root>` (using | ||
| `bm` or `uvx basic-memory` if needed). Confirm that it finds this repo's | ||
| settings, reports the selected project, and shows the intended capture state. |
There was a problem hiding this comment.
Require a hook-capable Basic Memory for setup
The precondition for this skill accepts any basic-memory/bm that can print a version, but this newly required verification uses hook status, which older Basic Memory installs do not provide. In that environment setup now writes .codex/basic-memory.json and then fails the final check despite a reachable CLI; require a hook-capable version or keep trying a newer launcher such as uvx basic-memory when the first launcher lacks the hook command.
Useful? React with 👍 / 👎.
Why
PR #1070 moved Codex and Claude lifecycle-hook behavior into Basic Memory core, but the host plugin setup and status skills did not expose the new capture controls or health surface. Users could install working hooks while still lacking a guided way to enable event capture, extend redaction, or see whether envelopes were pending and had ever flushed.
Closes #1117.
What Changed
Implementation Details
The plugins remain host-native packaging and guidance only. No hook runtime behavior moved back out of core, and capture remains opt-in.
The status skills treat bm hook status as authoritative for the effective harness configuration. Inbox counters are explicitly described as shared across supported harnesses so a Claude backlog is not misattributed to Codex, or vice versa.
Normalized session and tool_ledger artifacts remain core-owned projections. Codex continues to seed and recall codex_session for deliberate and legacy checkpoints while also querying normalized session notes. This avoids maintaining divergent projector schemas in each plugin.
Testing
Automated
Manual
Risks / Follow-ups