refactor(core): simplify v0.23 lifecycle and vector surfaces - #1162
Conversation
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: 10fd06baa4
ℹ️ 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".
Signed-off-by: phernandez <paul@basicmachines.co>
|
@codex review |
|
Codex Review: Didn't find any major issues. Another round soon, please! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
Why
The v0.23 release adds lifecycle-envelope capture and first-party Milvus support. Before
shipping those features, this removes compatibility layers and policy surfaces that are not
part of the intended product contract:
This keeps the useful features while reducing accidental complexity before their first stable release.
What Changed
payloads to bounded lifecycle metadata.
falseremainsthe opt-out.
redactKeys/redactPaths, thedetect-secretsdependency, andthe retired projector compatibility shim.
focused regression coverage.
Implementation Details
basic_memory hooknow uses one shared default-on capture policy for Claude and Codex. Envelopecreation copies only the lifecycle fields consumed by archive tooling, and malformed or non-boolean
settings fail closed instead of enabling capture accidentally. Claude's example settings and setup
guidance expose the explicit
falseopt-out without carrying redaction policy.The hook-local
Redactor, its detect-secrets integration, configuration plumbing, and tests weredeleted. Automatic extractive checkpoints now preserve captured transcript and repository context
verbatim. The unrelated general-purpose credential redaction module remains unchanged.
Semantic-vector configuration is now typed as
Literal["pgvector", "milvus"]for external stores.The factory handles sqlite-vec, pgvector, and the built-in Milvus adapter directly. The generic
factory protocol, Python entry-point loader, stale extension-package contract, and their tests were
removed.
The patch removes 1,116 net lines across 27 files.
Testing
Automated
uv run ruff check ...: passed.uv run ruff format --check ...: passed for all 13 Python files.BASIC_MEMORY_ENV=test LOGFIRE_IGNORE_NO_CONFIG=1 uv run pytest -q tests/hooks tests/cli/test_hook_command.py tests/repository/test_semantic_vector_index.py tests/repository/test_milvus_index.py tests/test_codex_plugin_package.py: 208 passed.BASIC_MEMORY_ENV=test LOGFIRE_IGNORE_NO_CONFIG=1 uv run pytest -q tests/cli/test_hook_command.py tests/hooks: 165 passed after the malformed-Claude-settings fail-closed review fix.just typecheck: passed with nine pre-existing Python 3.14 event-loop deprecation warnings.just package-check: passed Claude strict validation, Codex validation, all shared skills,Hermes tests/coverage, and OpenClaw typecheck/lint/build/tests/package dry-run.
just doctor: passed the end-to-end file, database, search, and status flow.git diff --check: passed.Manual
tests/hooks/test_projector.pytotests/hooks/test_archive.pyas a pure rename..codex/directory is not included.references.
Risks / Follow-ups
captureEventswill begin recording bounded local lifecycleenvelopes. Set
captureEventsto the JSON booleanfalseto opt out.intentional; sqlite-vec, pgvector, and first-party Milvus remain supported.
separate cleanup candidates; they are not introduced or modified here.