Release 1.1.0: undefined-predicate check and docs overhaul - #4
Merged
Merged
Conversation
Version bumped to 1.1.0 in Cargo.toml, Cargo.lock and pyproject.toml. Verifier: - new undefined-predicate check: a body reference to an undefined Predicate-cased name is silently treated as an external table by the compiler, so a typo reads a phantom table and returns nothing. The check flags it and suggests a close defined predicate by edit distance. - lowercase table references and function calls are deliberately left alone. Compiler and parser: - collapse the unused Parse/Compile error variants into Syntax and Generic. - remove the incantation mode from the parser. - restore upstream Logica attribution headers on modified files; add NOTICE. Docs: - new "Why Synalog" page: the business case, what changes in practice, what Synalog is not, and how it compares to text-to-SQL, BI semantic layers, graph databases, RDF stores and vector RAG. - knowledge graphs: why model a graph, what it buys and costs, comparison with a dedicated graph database, a "choosing a time model" decision guide, where bitemporality pays for itself and what it costs. - new runnable examples: temporal_graph.l and bitemporal.l. - regenerate example outputs; remove CLAUDE.md. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The PyPI and Discord badges are the only dynamic shields.io endpoints in the header, so they intermittently rendered as broken images: when the upstream API call is slow or rate-limited shields returns a non-2xx, and GitHub's camo proxy caches that failure. Raise cacheSeconds on both (PyPI 10800 -> 86400, Discord 300 -> 3600) so the proxy refetches far less often, and add the brand logos while there. Changing the URL also mints a fresh camo hash, bypassing any already-cached failure. Point the logo and the LICENSE/NOTICE/SKILL.md links at absolute URLs. PyPI ships this README verbatim as long_description and strips <source>, so the relative paths resolved on GitHub but 404'd there. Keeping <picture> preserves the GitHub dark-mode variant. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Two commits: the CI smoke-test fix already on this branch, and the 1.1.0 release work.
Version bumped to 1.1.0 in
Cargo.toml,Cargo.lockandpyproject.toml.Verifier
src/verifier/undefined.rs). A body reference to an undefinedPredicate-cased name is silently treated as an external database table by the compiler, soCustmer(id:)does not fail — it reads a phantom table and returns nothing. The check flags it and, when a defined predicate is close enough by edit distance, suggests it.Compiler and parser
Parse/Compileerror variants intoSyntaxandGeneric.NOTICE.Docs
temporal_graph.landbitemporal.l.CLAUDE.md.Verification
cargo test: all suites pass (735 + 14 + 18 + 1 + 1, 0 failed, 2 ignored).zensical build: no issues.Note: the branch name predates this work — it was originally just the CI smoke-test fix.
🤖 Generated with Claude Code