close review gaps, fix schema-DDL splitter, improve test coverage - #61
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Reviews the five community PRs merged since v0.13.1, fixes the gaps found reviewing them, adds test
coverage at every level of the CI pipeline, and preps the v0.14.0 release (changelog, docs, version bump).
Gaps closed in the merged PRs
NEO4J_DATABASE) threaded the database through the generated app but not throughscaffold-time
ingest.py(_ingest_with_memory_client/_ingest_with_driver/reset_neo4j) or thescaffolded
import_data.pybolt session — so--demo/--ingest/make importwrote to thedefault database while the app read from the configured one, silently producing an empty graph.
All bolt sessions now honor it;
validate_connection()gains adatabaseparam;.env.exampledocuments the variable.
--ontology-file) produced scaffolds with nodata/ontology.yaml(hand-written domainsmatched neither renderer branch). The raw YAML is now copied into the scaffold, the flag works
through the wizard path, and
--ontology-file+--custom-domainis an explicit error.promptslist(legal per the Pydantic model). Hardened.
~/.create-context-graph/custom-domains/leaked into every domain-iterating test (the"football-intelligence" failures reported while developing Fix self-hosted bolt backend ignoring non-default Neo4j database name -- i.e. Aura Free #60). An autouse conftest fixture
isolates the directory.
Pre-existing bug exposed by the new integration coverage
Every schema-DDL consumer split on
;and skipped fragments starting with//— silently droppingthe five indexes/constraints behind comment headers (
person_name,document_title,document_domain,document_name_unique,local_file_fulltextwere never created bymake seed/ingest) and executing a comment tail as garbage Cypher (CypherSyntaxErroron everyschema apply). New shared
split_cypher_statements()fixesingest.py, the generatedgenerate_data.py, andtest_integration.py.Test coverage added (all in existing CI jobs)
tests/test_generated_client_runtime.py(26 tests) executes the renderedcontext_graph_client.py+memory.pyagainst doubles — NAMS dispatch/coercion/tool events,bolt
database=threading,store_messageerror recording,/healtherror classifier. Plus +12 CLI,+5 wizard, +17 template-pin, +9 ontology, +3 custom-domain tests.
test_routes_integration.py—/cypheron NAMS, 503 guards, live storefailure flipping
/healthto degraded and recovering.--integration): explicit-database ingest,validate_connectionaccept/reject,schema DDL asserted to create the previously-dropped indexes.
test_routes.pygains two backend-specific/healthtests (slow runner now alsoscaffolds a bolt project and asserts they ran);
e2e_smoke_test.pyasserts the/healthcontractshape per backend.
Release prep
CHANGELOG.mdv0.14.0 section (features credited per PR author), version 0.13.1 → 0.14.0(
pyproject.toml,__init__.py,uv.lock), docs updated (cli-options.md, Aura guide,custom-domain guide, generated-project-structure,
whats-new.md, generated README), CLAUDE.mdstatus + counts refreshed. No CI workflow changes needed.
Test plan
--slow --functionalsuite (CI matrix job): 1,677 passedpytest tests/test_integration.py --integrationvs throwaway Neo4j 5: 10/10 (2 pre-existing failures fixed)ruff check src/ tests/ scripts/clean