chore(schema)!: collapse the schema version back to 2.0.0 - #144
Merged
Conversation
Both version constants read 2.1.0 — the JSON envelope (src/schema/emit.ts) and the Neo4j contract (src/build/neo4j/schema.ts). Intermediate 2.x versions are not meaningful while the schema design is still settling, and every analyzer will re-baseline together later, so there is one schema version and it is 2.0.0. Comments that named 2.1.0 as a version boundary now reference the issue that introduced the behaviour (#92, anonymous callables) instead of a version that no longer exists. The Neo4j version gate is a plain inequality (`shouldForceFullUpsert`), so a database written by a 2.1.0 build is treated as a mismatch and repopulated by one full upsert on the next push. No manual migration.
Merged
rahlk
added a commit
that referenced
this pull request
Sep 3, 2026
ANALYZER_VERSION moves with package.json because it is the cache-invalidation key (utils/cache.ts): this release changes artifact text capture (#117) and per-module id namespacing (#115), so a warm 1.1.0 cache must not be reused against it. Neo4j schema contract is 2.0.0 as of #144 — collapsed back from 2.1.0, since intermediate 2.x versions are not meaningful until every analyzer re-baselines together. Released as a MINOR despite three breaking-marked commits (#115, #117, #144), by explicit decision. The release notes lead with those breaks and their migrations.
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.
Both version constants read 2.1.0 — the JSON envelope (
src/schema/emit.ts:35) and the Neo4j contract (src/build/neo4j/schema.ts:22). Intermediate 2.x versions are not meaningful while the schema design is still settling and every analyzer re-baselines together later, so there is one schema version and it is 2.0.0.Scope
This resets both, not just the Neo4j one.
schema_versioninanalysis.jsonwas also 2.1.0, and leaving it there would contradict the whole point of having a single version.Comments that named 2.1.0 as a version boundary ("pre-2.1.0 ids", "additive within 2.1.0") now reference the issue that introduced the behaviour — #92, anonymous callables — rather than a version that no longer exists.
Migration
None needed. The Neo4j version gate is a plain inequality (
shouldForceFullUpsert,bolt.ts:38), so a database written by a 2.1.0 build reads as a mismatch and is repopulated by a single full upsert on the next push.Verification
bun test— 238 pass, 0 fail (two assertions updated:schema-v2.test.ts,anonymous-callables.test.ts)bun run typecheckclean,schema.neo4j.jsonregenerated to 2.0.0Note
Marked
!because consumers pinningschema_version == "2.1.0"will see 2.0.0. Nothing in this repo gates on it beyond the upsert path above, but the shipped v1.1.0 advertised 2.1.0, so it is a visible contract move rather than a silent one.